fold: fix use of protected_set_expr_location_unshare
[official-gcc.git] / gcc / ChangeLog
blobdbd97af45ffc5690a9888775241709c5a4d6cbf5
1 2022-12-20  Patrick Palka  <ppalka@redhat.com>
3         PR c++/101886
4         * tree.cc (walk_tree_1) <case TREE_VEC>: Walk the elements
5         in forward instead of reverse order.
6         <case VECTOR_CST>: Likewise.
8 2022-12-20  Andrew MacLeod  <amacleod@redhat.com>
10         PR tree-optimization/108139
11         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Do not
12         use equivalences originating from PHIS.
14 2022-12-20  Richard Biener  <rguenther@suse.de>
16         PR d/104749
17         * doc/install.texi (GDC): Document GDC 9.4 or later is required
18         to build the D language frontend.
20 2022-12-20  Jiufu Guo  <guojiufu@linux.ibm.com>
22         PR target/103743
23         * config/rs6000/rs6000-protos.h (can_be_rotated_to_lowbits): New.
24         (can_be_rotated_to_positive_16bits): New.
25         (can_be_rotated_to_negative_15bits): New.
26         * config/rs6000/rs6000.cc (can_be_rotated_to_lowbits): New definition.
27         (can_be_rotated_to_positive_16bits): New definition.
28         (can_be_rotated_to_negative_15bits): New definition.
29         * config/rs6000/rs6000.md (*rotate_on_cmpdi): New define_insn_and_split.
30         (eqne): Move earlier.
32 2022-12-19  Jason Merrill  <jason@redhat.com>
34         * sort.cc: Disable -Wconditionally-supported in
35         CHECKING_P code.
37 2022-12-19  Jason Merrill  <jason@redhat.com>
39         PR c++/64867
40         * configure.ac (strict_warn): Add -Wconditionally-supported.
41         * configure: Regenerate.
43 2022-12-19  Richard Biener  <rguenther@suse.de>
45         PR tree-optimization/108164
46         * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
47         Perform vect_step_op_add update in the appropriate type.
49 2022-12-19  Richard Earnshaw  <rearnsha@arm.com>
51         * config/arm/arm-c.cc (__ARM_FEATURE_CLZ): Fix definition of
52         preprocessor macro when target has CLZ in another ISA.
54 2022-12-19  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
56         * config/riscv/vector.md: Remove vste.
58 2022-12-19  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
60         * config.gcc: Add riscv-vsetvl.o.
61         * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Add VSETVL PASS
62         location.
63         * config/riscv/riscv-protos.h (make_pass_vsetvl): New function.
64         (enum avl_type): New enum.
65         (get_ta): New function.
66         (get_ma): Ditto.
67         (get_avl_type): Ditto.
68         (calculate_ratio): Ditto.
69         (enum tail_policy): New enum.
70         (enum mask_policy): Ditto.
71         * config/riscv/riscv-v.cc (calculate_ratio): New function.
72         (emit_pred_op): change the VLMAX mov codgen.
73         (get_ta): New function.
74         (get_ma): Ditto.
75         (enum tail_policy): Change enum.
76         (get_prefer_tail_policy): New function.
77         (enum mask_policy): Change enum.
78         (get_prefer_mask_policy): New function.
79         * config/riscv/t-riscv: Add riscv-vsetvl.o
80         * config/riscv/vector.md: Adjust attribute and pattern for VSETVL
81         PASS.
82         (@vlmax_avl<mode>): Ditto.
83         (@vsetvl<mode>_no_side_effects): Delete.
84         (vsetvl_vtype_change_only): New MD pattern.
85         (@vsetvl_discard_result<mode>): Ditto.
86         * config/riscv/riscv-vsetvl.cc: New file.
87         * config/riscv/riscv-vsetvl.h: New file.
89 2022-12-19  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
91         * config/riscv/riscv-vector-switch.def (ENTRY): Correct attributes.
93 2022-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
95         PR target/108140
96         * config/aarch64/aarch64-builtins.cc
97         (aarch64_expand_builtin_data_intrinsic): Handle NULL target.
99 2022-12-19  Jakub Jelinek  <jakub@redhat.com>
101         * config/gnu-user.h (LIBHWASAN_EARLY_SPEC): Add libhwasan_preinit.o
102         to link spec if not -shared.
104 2022-12-19  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
106         * config/riscv/riscv-v.cc (emit_vlmax_vsetvl): Pass through VLMUL enum
107         instead of machine mode.
108         * config/riscv/riscv-vector-builtins-bases.cc: Ditto.
109         * config/riscv/riscv.cc (riscv_print_operand): Print LMUL by enum vlmul
110         instead of machine mode.
112 2022-12-19  Jiufu Guo  <guojiufu@linux.ibm.com>
114         PR target/106708
115         * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Add using
116         "li; x?oris" to build constant.
118 2022-12-19  liuhongt  <hongtao.liu@intel.com>
120         PR target/55522
121         * config/i386/gnu-user-common.h (GNU_USER_TARGET_MATHFILE_SPEC):
122         Don't add crtfastmath.o for -shared.
123         * doc/invoke.texi (-shared): Add related documentation.
125 2022-12-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
127         * config.gcc: Determine Solaris minor version.
128         Obsolete *-*-solaris2.11.[0-3]*.
129         * doc/install.texi (Specific, *-*-solaris2*): Document it.
131 2022-12-17  Segher Boessenkool  <segher@kernel.crashing.org>
133         * config/rs6000/rs6000-logue.cc (rs6000_output_function_epilogue):
134         Handle GNU Rust for the tbtab lang field.
136 2022-12-16  John David Anglin  <danglin@gcc.gnu.org>
138         * config/pa/pa.cc (pa_option_override): Disable -fstack-protector.
140 2022-12-16  Vladimir N. Makarov  <vmakarov@redhat.com>
142         Revert:
143         2022-12-15  Vladimir N. Makarov  <vmakarov@redhat.com>
145         * ira-costs.cc: Include print-rtl.h.
146         (record_reg_classes, scan_one_insn): Add code to print debug info.
147         * ira.cc (ira_init_register_move_cost): Check that at least one hard
148         reg of the mode are in the class contents to calculate the
149         register move costs.
151 2022-12-16  Qing Zhao  <qing.zhao@oracle.com>
153         * doc/invoke.texi: Document -Wstrict-flex-arrays option.
154         * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Add two more
155         arguments.
156         (array_bounds_checker::check_array_ref): Issue warnings for
157         -Wstrict-flex-arrays.
158         * opts.cc (finish_options): Issue warning for unsupported combination
159         of -Wstrict_flex_arrays and -fstrict-flex-array.
160         * tree-vrp.cc (execute_ranger_vrp): Enable the pass when
161         warn_strict_flex_array is true.
163 2022-12-16  Palmer Dabbelt  <palmer@rivosinc.com>
165         * config/riscv/riscv.cc (riscv_option_override): Fix comment
166         wording.
168 2022-12-16  Palmer Dabbelt  <palmer@rivosinc.com>
170         * doc/extend.texi (__builtin_riscv_pause): Imply
171         Xgnuzihintpausestate.
173 2022-12-16  Richard Biener  <rguenther@suse.de>
175         PR middle-end/108086
176         * tree-inline.cc (remap_ssa_name): Do not unshare the
177         result from the decl_map.
179 2022-12-16  Richard Biener  <rguenther@suse.de>
181         PR middle-end/108086
182         * tree-inline.cc (copy_bb): Remove handling of (foo *)&this->m
183         substitution which is done in remap_gimple_op_r via
184         re-gimplifying.
186 2022-12-16  Jakub Jelinek  <jakub@redhat.com>
188         PR rtl-optimization/106751
189         * loop-invariant.cc (move_invariant_reg): If preheader bb ends
190         with a JUMP_INSN, split the preheader edge and emit invariants
191         into the new preheader basic block.
193 2022-12-16  Richard Biener  <rguenther@suse.de>
195         PR middle-end/108086
196         * tree-inline.cc (remap_gimple_stmt): Add stmts to the
197         sequence without updating them.  Simplify x == x detection.
199 2022-12-16  Haochen Jiang  <haochen.jiang@intel.com>
201         * config/i386/cmpccxaddintrin.h
202         (__cmpccxadd_epi32): Rename to _cmpccxadd_epi32.
203         (__cmpccxadd_epi64): Rename to _cmpccxadd_epi64.
205 2022-12-15  Vladimir N. Makarov  <vmakarov@redhat.com>
207         * ira-costs.cc: Include print-rtl.h.
208         (record_reg_classes, scan_one_insn): Add code to print debug info.
209         * ira.cc (ira_init_register_move_cost): Check that at least one hard
210         reg of the mode are in the class contents to calculate the
211         register move costs.
213 2022-12-15  Siddhesh Poyarekar  <siddhesh@gotplt.org>
215         * doc/extend.texi (__builtin_dynamic_object_size): Document
216         builtin.
217         * doc/passes.texi
218         (Optimize calls to @code{__builtin_object_size}): Also mention
219         __builtin_dynamic_object_size.
221 2022-12-15  Siddhesh Poyarekar  <siddhesh@gotplt.org>
223         PR middle-end/70090
224         * doc/invoke.texi (-fsanitize=object-size): Use
225         __builtin_dynamic_object_size instead of
226         __builtin_object_size.
228 2022-12-15  Richard Biener  <rguenther@suse.de>
230         PR middle-end/108086
231         * tree-inline.cc (copy_edges_for_bb): Walk stmts backwards for
232         splitting the block to avoid quadratic behavior with setting
233         stmts BB on multliple splits.
235 2022-12-15  Spacetown  <michael.foerderer@gmx.de>
237         PR gcov-profile/107537
238         * gcov.cc (output_branch_count): Add annotation '(fallthrough)'
239         or '(throw)' also to uncovered branches.
241 2022-12-15  Richard Biener  <rguenther@suse.de>
243         PR middle-end/108086
244         * tree-inline.cc (copy_edges_for_bb): Do not update all
245         stmts again.
247 2022-12-15  Jakub Jelinek  <jakub@redhat.com>
249         PR tree-optimization/108095
250         * tree-into-ssa.cc (maybe_register_def): Insert debug stmt
251         on all non-EH edges from asm goto if they have a single
252         predecessor rather than asserting there is at most one such edge.
253         Test whether there are no PHI nodes next to the single predecessor
254         test.
256 2022-12-14  David Faust  <david.faust@oracle.com>
258         PR target/106773
259         * btfout.cc (get_section_name): New function.
260         (btf_collect_datasec): Use it here. Process functions, marking them
261         'extern' and generating DATASEC entries for them as appropriate. Move
262         creation of BTF_KIND_FUNC records to here...
263         (btf_dtd_emit_preprocess_cb): ... from here.
265 2022-12-14  David Faust  <david.faust@oracle.com>
267         PR target/106773
268         * btfout.cc (btf_collect_datasec): Correct size of void entries.
269         (btf_dvd_emit_preprocess_cb): Do not skip emitting variables which
270         refer to void types.
271         (btf_init_postprocess): Create 'const void' type record if needed and
272         adjust variables to refer to it as appropriate.
274 2022-12-14  David Faust  <david.faust@oracle.com>
276         PR target/106773
277         * btfout.cc (btf_collect_datasec): Mark extern variables as such.
278         (btf_dvd_emit_preprocess_cb): Skip non-defining extern variable decl
279         if there is a defining decl for the same variable.
280         (btf_asm_varent): Accomodate 'extern' linkage.
282 2022-12-14  Martin Jambor  <mjambor@suse.cz>
284         * ipa-sra.cc (create_parameter_descriptors): Consider the first
285         parameter of a method safe to dereference.
287 2022-12-14  Martin Jambor  <mjambor@suse.cz>
289         * ipa-sra.cc (loaded_decls): Adjust comment.
290         (scan_expr_access): Also detect assignments of address of local
291         variables to a variable.  Bail out early on SSA_NAMEs and
292         constants as an optimization.
294 2022-12-14  Gaius Mulley  <gaiusmod2@gmail.com>
296         * configure.ac (HAVE_PYTHON): Test for Python3 added.
297         * dwarf2out.cc (gen_compile_unit_die): Check language_string
298         and language to DW_LANG_Modula2.
299         * doc/install.texi: Add m2 as a language.
300         (--disable-libgm2): Documented.  Add make check-m2 to testing selected
301         tests.
302         * doc/sourcebuild.texi (GM2): New prerequisite item.
303         (Python3 modules) New item.
304         (libgm2) Added.
305         (gcc/m2) Added.
306         * configure: Rebuilt.
307         * config.in: Rebuilt.
308         * doc/gm2.texi: New file.
310 2022-12-14  Martin Jambor  <mjambor@suse.cz>
312         * doc/invoke.texi (ipa-sra-ptrwrap-growth-factor): Fix the
313         description.
314         * params.opt (ipa-sra-ptrwrap-growth-factor): Likewise.
316 2022-12-14  Tamar Christina  <tamar.christina@arm.com>
318         PR target/107988
319         * config/aarch64/aarch64.cc
320         (aarch64_vectorize_can_special_div_by_constant): Ensure input and output
321         RTL are registers.
323 2022-12-14  Martin Liska  <mliska@suse.cz>
325         * doc/invoke.texi: Document ipa-sra-ptrwrap-growth-factor.
327 2022-12-14  Richard Biener  <rguenther@suse.de>
329         PR tree-optimization/107617
330         * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def):
331         Handle negative pd.rhs_off.
332         (vn_reference_lookup_3): Properly provide pd.rhs_off
333         for .LEN_STORE on big-endian targets.
335 2022-12-13  Martin Jambor  <mjambor@suse.cz>
337         * ipa-param-manipulation.cc
338         (ipa_param_body_adjustments::modify_expression): Bail out early if
339         there are no replacements.
340         (ipa_param_body_adjustments::modify_assignment): Likewise.
342 2022-12-13  Martin Jambor  <mjambor@suse.cz>
344         * ipa-sra.cc (isra_param_desc): New fields safe_size,
345         conditionally_dereferenceable and safe_size_set.
346         (struct gensum_param_desc): New field conditionally_dereferenceable.
347         (struct isra_param_flow): Updated comment of field unit_size.
348         (ipa_sra_function_summaries::duplicate): Copy the new fields.
349         (isra_call_summary::dump): Dump unit_size when representing safe_size.
350         (dump_gensum_param_descriptor): Dump new flag.
351         (dump_isra_param_descriptor): Dump new fields.
352         (isra_analyze_call): Fill unit_size when it represents known safe
353         size.
354         (check_gensum_access): Instead of disqualifying pointers which are not
355         always dereference, mark them as conditionally dereferencable if loads
356         are frequent enough.
357         (process_scan_results): Copy the conditionally_dereferenceable flag.
358         (isra_write_node_summary): Stream new fields, or assert they are not
359         initialized yet.
360         (isra_read_node_info): Stream new fields.
361         (update_safe_size): New function.
362         (propagate_param_hints_accross_call): Propagate safe_sizes.
363         (propagate_hints_to_all_callees): New function.
364         (adjust_parameter_descriptions): Check conditionally_dereferenceable
365         candidates, rework dumping.
366         (ipa_sra_analysis): Move most of hint propagation for one node to
367         propagate_hints_to_all_callees.  Add another loop to stabilize within
368         SCCs and another one to verify.
370 2022-12-13  Martin Jambor  <mjambor@suse.cz>
372         * ipa-sra.cc (isra_param_desc): New field not_specially_constructed.
373         (struct isra_param_flow): New field constructed_for_calls.
374         (isra_call_summary::dump): Dump the new flag.
375         (loaded_decls): New variable.
376         (dump_isra_param_descriptor): New parameter hints, dump
377         not_specially_constructed if it is true.
378         (dump_isra_param_descriptors): New parameter hints, pass it to
379         dump_isra_param_descriptor.
380         (ipa_sra_function_summaries::duplicate): Duplicate new flag.
381         (create_parameter_descriptors): Adjust comment.
382         (get_gensum_param_desc): Bail out when decl2desc is NULL.
383         (scan_expr_access): Add loaded local variables to loaded_decls.
384         (scan_function): Survive if final_bbs is NULL.
385         (isra_analyze_call): Compute constructed_for_calls flag.
386         (process_scan_results): Be optimistic about size limits.  Do not dump
387         computed param hints when dumpint IPA-SRA structures.
388         (isra_write_edge_summary): Stream constructed_for_calls.
389         (isra_read_edge_summary): Likewise.
390         (ipa_sra_dump_all_summaries): New parameter hints, pass it to
391         dump_isra_param_descriptor.
392         (flip_all_hints_pessimistic): New function.
393         (flip_all_param_hints_pessimistic): Likewise.
394         (propagate_param_hints): Likewise.
395         (disable_unavailable_parameters): Renamed to
396         adjust_parameter_descriptions.  Expand size limits for parameters
397         which are specially contstructed by all callers.  Check limits again.p
398         (ipa_sra_analysis): Pass required hints to ipa_sra_dump_all_summaries.
399         Add hint propagation.
400         (ipa_sra_summarize_function): Initialize and destory loaded_decls,
401         rearrange so that scan_function is called even when there are no
402         candidates.
403         * params.opt (ipa-sra-ptrwrap-growth-factor): New parameter.
405 2022-12-13  Martin Jambor  <mjambor@suse.cz>
407         * ipa-sra.cc (ipa_sra_analysis): Move top-down analysis before
408         bottom-up analysis.  Replace FOR_EACH_VEC_ELT with C++11 iteration.
410 2022-12-13  Martin Jambor  <mjambor@suse.cz>
412         PR ipa/103585
413         * params.opt (ipa-sra-deref-prob-threshold): New parameter.
414         * doc/invoke.texi (ipa-sra-deref-prob-threshold): Document it.
415         * ipa-sra.cc (struct gensum_param_access): New field load_count.
416         (struct gensum_param_desc): New field safe_ref, adjusted comments.
417         (by_ref_count): Renamed to unsafe_by_ref_count, adjusted all uses.
418         (dump_gensum_access): Dump the new field.
419         (dump_gensum_param_descriptor): Likewise.
420         (create_parameter_descriptors): Set safe_ref field, move setting
421         by_ref forward.  Only increment unsafe_by_ref_count for unsafe
422         by_ref parameters.
423         (allocate_access): Initialize new field.
424         (mark_param_dereference): Adjust indentation.  Only add data to
425         bb_dereferences for unsafe by_ref parameters.
426         (scan_expr_access): For loads, accumulate BB counts.
427         (dereference_probable_p): New function.
428         (check_gensum_access): Fix leading comment, add parameter FUN.
429         Check cumulative counts of loads for safe by_ref accesses instead
430         of dereferences.
431         (process_scan_results): Do not propagate dereference distances for
432         safe by_ref parameters.  Pass fun to check_gensum_access.  Safe
433         by_ref params do not need the postdominance check.
435 2022-12-13  Martin Jambor  <mjambor@suse.cz>
437         * ipa-cp.cc (clone_for_param_removal_p): New function.
438         (estimate_local_effects): Call it before considering cloning
439         just to remove unused parameters.
441 2022-12-13  Martin Jambor  <mjambor@suse.cz>
443         PR ipa/103227
444         * ipa-param-manipulation.h (class ipa_param_adjustments): Removed
445         member function get_updated_index_or_split.
446         (class ipa_param_body_adjustments): New overload of
447         register_replacement, new member function append_init_stmts, new
448         member m_split_agg_csts_inits.
449         * ipa-param-manipulation.cc: Include ipa-prop.h.
450         (ipa_param_adjustments::get_updated_index_or_split): Removed.
451         (ipa_param_body_adjustments::register_replacement): New overload, use
452         it from the older one.
453         (ipa_param_body_adjustments::common_initialization): Added the
454         capability to create replacements for conflicting IPA-CP discovered
455         constants.
456         (ipa_param_body_adjustments::ipa_param_body_adjustments): Construct
457         the new member.
458         (ipa_param_body_adjustments::append_init_stmts): New function.
459         * ipa-sra.cc: Include ipa-prop.h.
460         (push_param_adjustments_for_index): Require IPA-CP transformation
461         summary as a parameter, do not create replacements which are known to
462         have constant values.
463         (process_isra_node_results): Find and pass to the above function the
464         IPA-CP transformation summary.
465         * ipa-prop.cc (adjust_agg_replacement_values): Remove the
466         functionality replacing IPA-SRA created scalar parameters with
467         constants.  Simplify, do not require parameter descriptors, do not
468         return anything.
469         (ipcp_transform_function): Simplify now that
470         adjust_agg_replacement_values does not change cfg.  Move definition
471         and initialization of descriptors lower.
472         * tree-inline.cc (tree_function_versioning): Call append_init_stmts of
473         param_body_adjs, if there are any.
475 2022-12-13  Martin Jambor  <mjambor@suse.cz>
477         * ipa-prop.cc (useful_ipcp_transformation_info_p): New function.
478         (write_ipcp_transformation_info): Added a parameter, simplified
479         given that is known not to be NULL.
480         (ipcp_write_transformation_summaries): Write out all useful
481         transformation summaries.
482         (read_ipcp_transformation_info): Simplify given that some info
483         will be read.
484         (read_replacements_section): Remove assert.
485         * lto-cgraph.cc (add_node_to): Also set encode_body for clones.
486         * lto-streamer-out.cc (lto_output): Do not output virtual clones.
488 2022-12-13  Jakub Jelinek  <jakub@redhat.com>
490         PR target/108044
491         * config/i386/i386.md (*concat<half><mode>3_5, *concat<mode><dwi>3_6,
492         *concat<mode><dwi>3_7): Split alternative with =ro output constraint
493         into =r,o,o and use Wd input constraint for the last alternative which
494         is enabled for TARGET_64BIT.  Reject ix86_endbr_immediate_operand
495         in the input constant.
497 2022-12-13  Tamar Christina  <tamar.christina@arm.com>
499         * config/aarch64/aarch64.md (tbranch_<code><mode>3): Use gen_int_mode.
501 2022-12-13  Jakub Jelinek  <jakub@redhat.com>
503         PR tree-optimization/108064
504         * tree-vect-patterns.cc (vect_recog_rotate_pattern): Pass uvectype
505         as 4th argument to append_pattern_def_seq for statements with lhs
506         with utype type.
508 2022-12-13  Richard Biener  <rguenther@suse.de>
510         PR tree-optimization/105801
511         * tree-ssa-ccp.cc (likely_value): .DEFERRED_INIT produces
512         UNDEFINED.
513         * doc/invoke.texi (ftrivial-auto-var-init): Explicitely
514         mention we treat variables without an initializer as
515         undefined also for optimization purposes.
517 2022-12-13  Tom Tromey  <tom@tromey.com>
518             Mark Wielaard  <mark@klomp.org>
519             Marc Poulhiès  <dkm@kataplop.net>
521         * dwarf2out.cc (is_rust): New.
522         (base_type_die): Use DW_ATE_UTF for the Rust 'char' type.
523         (gen_compile_unit_die): Handle "GNU Rust".
525 2022-12-13  Richard Biener  <rguenther@suse.de>
527         PR tree-optimization/108076
528         * tree-if-conv.cc (if_convertible_loop_p_1): Reject blocks
529         with non-local or forced labels that we later remove
530         labels from.
532 2022-12-13  Haochen Gui  <guihaoc@gcc.gnu.org>
534         * config/rs6000/rs6000.md (cbranchcc4): New expander.
536 2022-12-13  Haochen Gui  <guihaoc@gcc.gnu.org>
538         * optabs.cc (prepare_cmp_insn): Return a NULL rtx other than
539         assertion failure when targets don't have cbranch optab or
540         predicate check fails.
542 2022-12-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
544         * config/aarch64/aarch64.cc (aarch64_rtx_costs): Add correct costs
545         for 24-bit and 12-bit shifted immediate add/sub.
546         (TARGET_CONST_ANCHOR): Define.
547         * config/aarch64/predicates.md (aarch64_pluslong_immediate):
548         Fix range check.
550 2022-12-12  Tamar Christina  <tamar.christina@arm.com>
552         * match.pd: Add new rule.
554 2022-12-12  Tamar Christina  <tamar.christina@arm.com>
556         * config/aarch64/aarch64.cc (aarch64_can_change_mode_class): Restrict
557         conversions between partial struct types properly.
559 2022-12-12  Tamar Christina  <tamar.christina@arm.com>
561         * config/aarch64/aarch64.md (*tb<optab><mode>1): Rename to...
562         (*tb<optab><ALLI:mode><GPI:mode>1): ... this.
563         (tbranch_<code><mode>4): New.
564         * config/aarch64/iterators.md(ZEROM, zerom): New.
566 2022-12-12  Tamar Christina  <tamar.christina@arm.com>
568         * dojump.cc (do_jump): Pass along value.
569         (do_jump_by_parts_greater_rtx): Likewise.
570         (do_jump_by_parts_zero_rtx): Likewise.
571         (do_jump_by_parts_equality_rtx): Likewise.
572         (do_compare_rtx_and_jump): Likewise.
573         (do_compare_and_jump): Likewise.
574         * dojump.h (do_compare_rtx_and_jump): New.
575         * optabs.cc (emit_cmp_and_jump_insn_1): Refactor to take optab to check.
576         (validate_test_and_branch): New.
577         (emit_cmp_and_jump_insns): Optiobally take a value, and when value is
578         supplied then check if it's suitable for tbranch.
579         * optabs.def (tbranch_eq$a4, tbranch_ne$a4): New.
580         * doc/md.texi (tbranch_@var{op}@var{mode}4): Document it.
581         * optabs.h (emit_cmp_and_jump_insns): New.
582         * tree.h (tree_zero_one_valued_p): New.
584 2022-12-12  Tamar Christina  <tamar.christina@arm.com>
586         * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
587         (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
588         aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
589         @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
590         reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
591         aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
592         vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
593         (aarch64_simd_dupv2hf): New.
594         * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
595         Add E_V2HFmode.
596         * config/aarch64/iterators.md (VHSDF_P): New.
597         (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
598         Vel, q, vp): Add V2HF.
599         * config/arm/types.md (neon_fp_reduc_add_h): New.
601 2022-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
603         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
604         __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI when appropriate.
605         * config/aarch64/aarch64.h (TARGET_BTI): Define.
607 2022-12-12  Richard Biener  <rguenther@suse.de>
609         * genmatch.cc (dt_simplify::gen): Revert last change.
610         * match.pd: Revert simplification of CONSTUCTOR leaf handling.
611         (&x cmp SSA_NAME): Handle ADDR_EXPR in SSA defs.
612         * fold-const.cc (split_address_to_core_and_offset): Handle
613         ADDR_EXPRs in SSA defs.
614         (address_compare): Likewise.
616 2022-12-12  Richard Biener  <rguenther@suse.de>
618         PR tree-optimization/89317
619         * tree-ssa-ccp.cc (ccp_fold): Handle GIMPLE_COND via
620         gimple_fold_stmt_to_constant_1.
621         * match.pd (&a != &a + c): Apply to pointer_plus with non-ADDR_EXPR
622         base as well.
624 2022-12-11  Richard Biener  <rguenther@suse.de>
626         PR tree-optimization/89317
627         * match.pd ((p + b) - &p->c -> b - offsetof(c)): New patterns.
629 2022-12-11  Richard Biener  <rguenther@suse.de>
631         * genmatch.cc (dt_node::gen_kids): Handle ADDR_EXPR in both
632         the GENERIC and GIMPLE op position.
633         (dt_simplify::gen): Capture both GENERIC and GIMPLE op
634         position for ADDR_EXPR and CONSTRUCTOR.
635         * match.pd: Simplify CONSTRUCTOR leaf handling.
637 2022-12-11  Richard Biener  <rguenther@suse.de>
639         PR tree-optimization/106904
640         * tree.h (strip_zero_offset_components): Declare.
641         * tree.cc (strip_zero_offset_components): Define.
642         * tree-vect-data-refs.cc (vect_create_addr_base_for_vector_ref):
643         Strip zero offset components before building the address.
645 2022-12-10  Jakub Jelinek  <jakub@redhat.com>
647         PR tree-optimization/107997
648         * tree-ssa-loop-ivopts.cc: Include cfganal.h.
649         (create_new_iv) <case IP_END>: If ip_end_pos bb is non-empty and ends
650         with a stmt which ends bb, instead of adding iv update after it split
651         the latch edge and insert iterator into the new latch bb.
653 2022-12-09  Jiufu Guo  <guojiufu@linux.ibm.com>
655         * config/rs6000/rs6000.cc (rs6000_emit_set_const): Remove copy_rtx.
656         (rs6000_emit_set_long_const): Likewise.
658 2022-12-09  Martin Liska  <mliska@suse.cz>
660         * config/i386/i386-builtins.cc (fold_builtin_cpu): Use same path
661         as for PR103661.
662         * doc/extend.texi: Fix "x86-64" use.
664 2022-12-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
666         * config/rtems.h (SUBTARGET_CC1_SPEC): Rename to...
667         (OS_CC1_SPEC): ...this.
668         * gcc.cc (SUBTARGET_CC1_SPEC): Rename to...
669         (OS_CC1_SPEC): ...this.
671 2022-12-09  David Malcolm  <dmalcolm@redhat.com>
673         * Makefile.in (ANALYZER_OBJS): Update for renaming of
674         analyzer/region-model-impl-calls.cc to analyzer/kf.cc.
676 2022-12-09  liuhongt  <hongtao.liu@intel.com>
678         * doc/invoke.texi (x86 options): Document
679         -mlam={none,u48,u57}.
680         * config/i386/i386-opts.h (enum lam_type): New enum.
681         * config/i386/i386.cc (ix86_memtag_can_tag_addresses): New.
682         (ix86_memtag_set_tag): Ditto.
683         (ix86_memtag_extract_tag): Ditto.
684         (ix86_memtag_add_tag): Ditto.
685         (ix86_memtag_tag_size): Ditto.
686         (ix86_memtag_untagged_pointer): Ditto.
687         (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New.
688         (TARGET_MEMTAG_ADD_TAG): Ditto.
689         (TARGET_MEMTAG_SET_TAG): Ditto.
690         (TARGET_MEMTAG_EXTRACT_TAG): Ditto.
691         (TARGET_MEMTAG_UNTAGGED_POINTER): Ditto.
692         (TARGET_MEMTAG_TAG_SIZE): Ditto.
693         (IX86_HWASAN_SHIFT): Ditto.
694         (IX86_HWASAN_TAG_SIZE): Ditto.
695         * config/i386/i386-expand.cc (ix86_expand_call): Untag code
696         pointer.
697         * config/i386/i386-options.cc (ix86_option_override_internal):
698         Error when enable -mlam=[u48|u57] for 32-bit code.
699         * config/i386/i386.opt: Add -mlam=[none|u48|u57].
700         * config/i386/i386-protos.h (ix86_memtag_untagged_pointer):
701         Declare.
702         (ix86_memtag_can_tag_addresses): Ditto.
704 2022-12-08  Marek Polacek  <polacek@redhat.com>
706         * doc/invoke.texi (-fsanitize=address): Suggest options to improve
707         stack traces.
709 2022-12-08  Eugene Rozenfeld  <erozen@microsoft.com>
711         PR ipa/108000
712         * ipa-cp.cc (ipcp_propagate_stage): Fix profile count comparison
714 2022-12-08  David Faust  <david.faust@oracle.com>
716         * config/bpf/bpf.md (bswap<mode>2): New define_insn.
718 2022-12-08  Sebastian Pop  <spop@amazon.com>
720         PR target/98776
721         * config/aarch64/aarch64-protos.h (aarch64_output_patchable_area):
722         Declared.
723         * config/aarch64/aarch64.cc (aarch64_print_patchable_function_entry):
724         Emit an UNSPECV_PATCHABLE_AREA pseudo instruction.
725         (aarch64_output_patchable_area): New.
726         * config/aarch64/aarch64.md (UNSPECV_PATCHABLE_AREA): New.
727         (patchable_area): Define.
729 2022-12-08  Jakub Jelinek  <jakub@redhat.com>
731         PR debug/106719
732         * cfgbuild.cc (find_bb_boundaries): If there are NOTEs in between
733         debug_insn (seen after flow_transfer_insn) and insn, move NOTEs
734         before all the DEBUG_INSNs and split after NOTEs.  If there are
735         other insns like jump table data, clear debug_insn.
737 2022-12-08  Jakub Jelinek  <jakub@redhat.com>
739         PR target/107627
740         * config/i386/i386.md (HALF, half): New mode attributes.
741         (*concat<half><mode>3_5, *concat<mode><dwi>3_6,
742         *concat<mode><dwi>3_7): New define_insn_and_split patterns.
744 2022-12-08  Andrew MacLeod  <amacleod@redhat.com>
746         PR tree-optimization/107985
747         * gimple-range-op.cc
748         (gimple_range_op_handler::gimple_range_op_handler): Check if type
749         of the operands is supported.
750         * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Do
751         not assert if here is no range-op handler.
753 2022-12-08  Jiufu Guo  <guojiufu@linux.ibm.com>
755         * config/rs6000/predicates.md: Use sext_hwi.
756         * config/rs6000/rs6000.cc (num_insns_constant_gpr): Likewise.
757         (darwin_rs6000_legitimate_lo_sum_const_p): Likewise.
758         (mem_operand_gpr): Likewise.
759         (mem_operand_ds_form): Likewise.
760         (rs6000_legitimize_address): Likewise.
761         (rs6000_emit_set_const): Likewise.
762         (rs6000_emit_set_long_const): Likewise.
763         (print_operand): Likewise.
764         (constant_generates_xxspltiw): Remove unnecessary expressions.
765         * config/rs6000/rs6000.md: Use sext_hwi.
767 2022-12-08  Richard Biener  <rguenther@suse.de>
769         PR tree-optimization/107699
770         * match.pd (&a !=/== &a.b + c -> (&a - &a.b) !=/== c): New
771         pattern variant.
773 2022-12-08  Jakub Jelinek  <jakub@redhat.com>
775         * range-op-float.cc (frange_nextafter): For MODE_COMPOSITE_P from
776         denormal or zero, use real_nextafter on DFmode with conversions
777         around it.
778         (frange_arithmetic): For mode_composite, on top of rounding in the
779         right direction accept extra 1ulp error for PLUS/MINUS_EXPR, extra
780         2ulps error for MULT_EXPR and extra 3ulps error for RDIV_EXPR.
782 2022-12-08  Jakub Jelinek  <jakub@redhat.com>
784         PR tree-optimization/107967
785         * range-op-float.cc (frange_arithmetic): Fix a thinko - if
786         inf is negative, use nextafter if !real_less (&result, &value)
787         rather than if real_less (&result, &value).  If result is +-INF
788         while value is finite and -fno-rounding-math, don't do rounding
789         if !inexact or if result is significantly above max representable
790         value or below min representable value.
792 2022-12-07  Max Filippov  <jcmvbkbc@gmail.com>
794         * config.gcc (xtensa*-*-*): Add xtensa-dynconfig.o to extra_objs.
795         * config/xtensa/t-xtensa (TM_H): Add xtensa-dynconfig.h.
796         (xtensa-dynconfig.o): New rule.
797         * config/xtensa/xtensa-dynconfig.c: New file.
798         * config/xtensa/xtensa-protos.h (xtensa_get_config_strings): New
799         declaration.
800         * config/xtensa/xtensa.h (xtensa-config.h): Replace #include
801         with xtensa-dynconfig.h
802         (XCHAL_HAVE_MUL32_HIGH, XCHAL_HAVE_RELEASE_SYNC)
803         (XCHAL_HAVE_S32C1I, XCHAL_HAVE_THREADPTR)
804         (XCHAL_HAVE_FP_POSTINC): Drop definitions.
805         (TARGET_DIV32): Replace with __XCHAL_HAVE_DIV32.
806         (TARGET_CPU_CPP_BUILTINS): Add new 'builtin' variable and loop
807         through string array returned by the xtensa_get_config_strings
808         function call.
810 2022-12-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>
812         PR target/108006
813         * config/aarch64/aarch64.cc (aarch64_expand_sve_const_vector):
814         Fix call to aarch64_move_imm to use SI/DI.
816 2022-12-07  Richard Biener  <rguenther@suse.de>
818         PR ipa/105676
819         * ipa-pure-const.cc (ipa_make_function_pure): Skip also
820         for functions already being const.
822 2022-12-07  Hongyu Wang  <hongyu.wang@intel.com>
824         * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Add
825         m_SAPPHIRERAPIDS, m_ALDERLAKE and m_CORE_ATOM.
827 2022-12-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
829         PR target/107920
830         * config/aarch64/aarch64-sve-builtins-base.cc: Use
831         gsi_replace_with_seq_vops to handle virtual operands, and gate
832         the transform on !flag_non_call_exceptions.
833         * gimple-fold.cc (gsi_replace_with_seq_vops): Make function non static.
834         * gimple-fold.h (gsi_replace_with_seq_vops): Declare.
836 2022-12-07  liuhongt  <hongtao.liu@intel.com>
838         PR target/107970
839         * config/i386/mmx.md (btruncv2sf2): Add TARGET_MMX_WITH_SSE to
840         the condition.
842 2022-12-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
844         * config/aarch64/aarch64.cc (aarch64_bitmask_imm): Use unsigned type.
845         (aarch64_is_mov_xn_imm): New function.
846         (aarch64_move_imm): Refactor, assert mode is SImode or DImode.
847         (aarch64_internal_mov_immediate): Assert mode is SImode or DImode.
848         Simplify special cases.
849         (aarch64_uimm12_shift): Simplify code.
850         (aarch64_clamp_to_uimm12_shift): Likewise.
851         (aarch64_movw_imm): Rename to aarch64_is_movz.
852         (aarch64_float_const_rtx_p): Pass either SImode or DImode to
853         aarch64_internal_mov_immediate.
854         (aarch64_rtx_costs): Likewise.
855         * config/aarch64/aarch64.md (movdi_aarch64): Merge 'N' and 'M'
856         constraints into single 'O'.
857         (mov<mode>_aarch64): Likewise.
858         * config/aarch64/aarch64-protos.h (aarch64_move_imm): Use unsigned.
859         (aarch64_bitmask_imm): Likewise.
860         (aarch64_uimm12_shift): Likewise.
861         (aarch64_is_mov_xn_imm): New prototype.
862         * config/aarch64/constraints.md: Add 'O' for 32/64-bit immediates,
863         limit 'N' to 64-bit only moves.
865 2022-12-06  Qing Zhao  <qing.zhao@oracle.com>
867         * attribs.cc (strict_flex_array_level_of): New function.
868         * attribs.h (strict_flex_array_level_of): Prototype for new function.
869         * doc/invoke.texi: Update -Warray-bounds by specifying the impact from
870         -fstrict-flex-arrays. Also update -Warray-bounds=2 by eliminating its
871         impact on treating trailing arrays as flexible array members.
872         * gimple-array-bounds.cc (get_up_bounds_for_array_ref): New function.
873         (check_out_of_bounds_and_warn): New function.
874         (array_bounds_checker::check_array_ref): Update with call to the above
875         new functions.
876         * tree.cc (array_ref_flexible_size_p): Add one new argument.
877         (component_ref_sam_type): New function.
878         (component_ref_size): Control with level of strict-flex-array.
879         * tree.h (array_ref_flexible_size_p): Update prototype.
880         (enum struct special_array_member): Add two new enum values.
881         (component_ref_sam_type): New prototype.
883 2022-12-06  David Malcolm  <dmalcolm@redhat.com>
885         * doc/analyzer.texi: Drop out-of-date ideas for other checkers.
887 2022-12-06  David Malcolm  <dmalcolm@redhat.com>
889         * Makefile.in (ANALYZER_OBJS): Add analyzer/call-details.o,
890         analyzer/kf-analyzer.o, and kf-lang-cp.o.
892 2022-12-06  Marcel Vollweiler  <marcel@codesourcery.com>
894         * gimplify.cc (optimize_target_teams): Set initial num_teams_upper
895         to "-2" instead of "1" for non-existing num_teams clause in order to
896         disambiguate from the case of an existing num_teams clause with value 1.
898 2022-12-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
900         PR target/107987
901         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>,
902         @mve_vcmp<mve_cmp_op>q_n_f<mode>): Apply vec_duplicate to scalar
903         operand.
905 2022-12-06  Jakub Jelinek  <jakub@redhat.com>
907         PR target/107969
908         * config/i386/i386.md (cbranchbf4, cstorebf4): Guard expanders
909         with the same condition as cbranchsf4 or cstoresf4 expanders.
911 2022-12-06  Richard Biener  <rguenther@suse.de>
913         PR tree-optimization/104475
914         * pointer-query.h (access_ref::ref_nullptr_p): New flag.
915         * pointer-query.cc (access_ref::access_ref): Initialize
916         ref_nullptr_p.
917         (compute_objsize_r): Set ref_nullptr_p if we treat it that way.
918         (access_ref::inform_access): If ref was treated as nullptr
919         based, indicate that.
921 2022-12-06  Jakub Jelinek  <jakub@redhat.com>
923         PR tree-optimization/107972
924         * range-op-float.cc (frange_drop_infs): New function.
925         (float_binary_op_range_finish): Add DIV_OP2 argument.  If DIV_OP2 is
926         false and lhs is finite or if DIV_OP2 is true and lhs is non-zero and
927         not NAN, r must be finite too.
928         (foperator_div::op2_range): Pass true to DIV_OP2 of
929         float_binary_op_range_finish.
931 2022-12-06  Jakub Jelinek  <jakub@redhat.com>
933         PR tree-optimization/107975
934         * range-op-float.cc (foperator_mult::op1_range,
935         foperator_div::op1_range, foperator_div::op2_range): Just
936         return float_binary_op_range_finish result if lhs is known
937         NAN, or the other operand is known NAN or UNDEFINED.
939 2022-12-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
941         * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Use dup
942         and zip1 for interleaving elements in vector initializer.
944 2022-12-05  Richard Biener  <rguenther@suse.de>
946         PR middle-end/40635
947         * tree-into-ssa.cc (rewrite_update_phi_arguments): Only
948         update the argument when the reaching definition is different
949         from the current argument.  Keep an existing argument
950         location.
952 2022-12-05  Richard Biener  <rguenther@suse.de>
954         PR tree-optimization/106868
955         * gimple-ssa-warn-access.cc (pass_waccess::gimple_call_return_arg_ref):
956         Inline into single user ...
957         (pass_waccess::check_dangling_uses): ... here and adjust the
958         call and the PHI case to require that ref.aref is the address
959         of the decl.
961 2022-12-05  Jakub Jelinek  <jakub@redhat.com>
963         PR middle-end/106805
964         * match.pd (cmp @0 REAL_CST@1): Don't optimize x cmp NaN
965         or NaN cmp x to false/true for cmp >/>=/</<= if -ftrapping-math.
967 2022-12-05  Jakub Jelinek  <jakub@redhat.com>
969         PR tree-optimization/107879
970         * range-op-float.cc (foperator_mult::op1_range): If both
971         lhs and op2 ranges contain zero or both ranges contain
972         some infinity, set r range to zero_to_inf_range depending on
973         signbit_known_p.
974         (foperator_div::op2_range): Similarly for lhs and op1 ranges.
975         (foperator_div::op1_range): If lhs range contains zero and op2
976         range contains some infinity or vice versa, set r range to
977         zero_to_inf_range depending on signbit_known_p.
978         (foperator_div::rv_fold): Fix up condition for returning known NAN.
980 2022-12-05  Richard Biener  <rguenther@suse.de>
982         PR tree-optimization/107833
983         PR tree-optimization/107839
984         * cfghooks.cc: Include tree.h.
985         * tree-ssa-loop-im.cc (movement_possibility): Wrap and
986         make stmts using any ssa_name_maybe_undef_p operand
987         to preserve execution.
988         (loop_invariant_motion_in_fun): Call mark_ssa_maybe_undefs
989         to init maybe-undefined status.
990         * tree-ssa-loop-ivopts.cc (ssa_name_maybe_undef_p,
991         ssa_name_set_maybe_undef, ssa_name_any_use_dominates_bb_p,
992         mark_ssa_maybe_undefs): Move ...
993         * tree-ssa.cc: ... here.
994         * tree-ssa.h (ssa_name_any_use_dominates_bb_p,
995         mark_ssa_maybe_undefs): Declare.
996         (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): Define.
998 2022-12-05  Andrew Pinski  <pinskia@gmail.com>
1000         PR tree-optimization/107956
1001         * tree-vect-patterns.cc (vect_recog_mask_conversion_pattern):
1002         Check for NULL LHS on masked loads.
1004 2022-12-05  Kewen Lin  <linkw@linux.ibm.com>
1005             Richard Sandiford   <richard.sandiford@arm.com>
1007         PR tree-optimization/107412
1008         * gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Use
1009         untruncated type for the length, and avoid to_constant and tree
1010         arithmetic for subtraction.
1012 2022-12-02  Bernhard Reutner-Fischer  <rep.dot.nop@gmail.com>
1013             Jason Merrill  <jason@redhat.com>
1015         * function.cc (init_function_start): Use DECL_RESULT location
1016         for -Waggregate-return warning.
1018 2022-12-02  Andrew MacLeod  <amacleod@redhat.com>
1020         * fold-const.cc (fold_unary_loc): Check TREE_TYPE of node.
1021         (tree_invalid_nonnegative_warnv_p): Likewise.
1023 2022-12-02  Jason Merrill  <jason@redhat.com>
1025         * gcc.cc (validate_switches): Reset suffix/starred on loop.
1027 2022-12-02  Vladimir N. Makarov  <vmakarov@redhat.com>
1029         * lra-constraints.cc (curr_insn_transform): Check available hard
1030         regs for pseudo and its subreg to decide what to reload.
1032 2022-12-02  liuhongt  <hongtao.liu@intel.com>
1034         * config/i386/i386-expand.cc
1035         (ix86_expand_fast_convert_bf_to_sf): Use extendbfsf2_1 for
1036         nonimmediate operand.
1038 2022-12-02  Martin Liska  <mliska@suse.cz>
1040         * configure: Regenerate.
1042 2022-12-02  Jakub Jelinek  <jakub@redhat.com>
1044         PR target/106577
1045         * config/i386/i386-expand.cc (ix86_vector_duplicate_value): Save/restore
1046         recog_data around recog_memoized calls.
1048 2022-12-02  Michael Collison  <collison@rivosinc.com>
1050         * match.pd ((x & 0x1) == 0) ? y : z <op> y
1051         -> (-(typeof(y))(x & 0x1) & z) <op> y.
1053 2022-12-02  Richard Biener  <rguenther@suse.de>
1055         PR tree-optimization/107946
1056         * params.opt (-param=max-unswitch-depth=): New.
1057         * doc/invoke.texi (--param=max-unswitch-depth): Document.
1058         * tree-ssa-loop-unswitch.cc (init_loop_unswitch_info): Honor
1059         --param=max-unswitch-depth
1061 2022-12-02  Eric Gallager  <egallager@gcc.gnu.org>
1063         PR bootstrap/59447
1064         * configure: Regenerate.
1065         * configure.ac: Document --with-dwarf2 flag as also
1066         applying to later DWARF standards.
1067         * doc/install.texi: Likewise.
1069 2022-12-02  liuhongt  <hongtao.liu@intel.com>
1071         PR target/107934
1072         * config/i386/i386.md (extendbfsf2_1): Change type from
1073         sseishft to sseishft1.
1075 2022-12-01  Alex Coplan  <alex.coplan@arm.com>
1077         * varasm.cc (assemble_variable): Fix type confusion bug when
1078         checking for ".vtable_map_vars" section.
1080 2022-12-01  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
1082         * config/riscv/riscv-v.cc (emit_pred_op): Adapt for mask mode.
1083         * config/riscv/vector.md: Remove Tail && make policy operand for mask mode mov.
1085 2022-12-01  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
1087         * config/riscv/riscv-protos.h (enum vlmul_type): New enum.
1088         (get_vlmul): New function.
1089         (get_ratio): Ditto.
1090         * config/riscv/riscv-v.cc (struct mode_vtype_group): New struct.
1091         (ENTRY): Adapt for attributes.
1092         (enum vlmul_type): New enum.
1093         (get_vlmul): New function.
1094         (get_ratio): New function.
1095         * config/riscv/riscv-vector-switch.def (ENTRY): Adapt for attributes.
1096         * config/riscv/riscv.cc (ENTRY): Ditto.
1097         * config/riscv/vector.md (false,true): Add attributes.
1099 2022-12-01  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
1101         * config/riscv/constraints.md (Wdm): New constraint.
1102         * config/riscv/predicates.md (direct_broadcast_operand): New predicate.
1103         * config/riscv/riscv-protos.h (RVV_VLMAX): New macro.
1104         (emit_pred_op): Refine function.
1105         * config/riscv/riscv-selftests.cc (run_const_vector_selftests): New function.
1106         (run_broadcast_selftests): Ditto.
1107         (BROADCAST_TEST): New tests.
1108         (riscv_run_selftests): More tests.
1109         * config/riscv/riscv-v.cc (emit_pred_move): Refine function.
1110         (emit_vlmax_vsetvl): Ditto.
1111         (emit_pred_op): Ditto.
1112         (expand_const_vector): New function.
1113         (legitimize_move): Add constant vector support.
1114         * config/riscv/riscv.cc (riscv_print_operand): New asm print rule for const vector.
1115         * config/riscv/riscv.h (X0_REGNUM): New macro.
1116         * config/riscv/vector-iterators.md: New attribute.
1117         * config/riscv/vector.md (vec_duplicate<mode>): New pattern.
1118         (@pred_broadcast<mode>): New pattern.
1120 2022-12-01  Paul-Antoine Arras  <pa@codesourcery.com>
1122         * config/gcn/gcn-opts.h (TARGET_FIJI): -march=fiji.
1123         (TARGET_VEGA10): -march=gfx900.
1124         (TARGET_VEGA20): -march=gfx906.
1125         (TARGET_GFX908): -march=gfx908.
1126         (TARGET_GFX90a): -march=gfx90a.
1127         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Define a builtin that
1128         uniquely maps to '-march'.
1130 2022-12-01  Richard Biener  <rguenther@suse.de>
1132         PR tree-optimization/107937
1133         * gimple-predicate-analysis.h (predicate::is_true): New.
1134         (predicate::is_false): Likewise.
1135         (predicate::empty_val): Likewise.
1136         (uninit_analysis::uninit_analysis): Properly initialize
1137         def_preds.
1138         * gimple-predicate-analysis.cc (simplify_1b): Indicate
1139         whether the chain became empty.
1140         (predicate::simplify): Release emptied chain before removing it.
1141         (predicate::normalize): Replace temporary object with assertion.
1142         (uninit_analysis::is_use_guarded): Deal with predicates
1143         that simplify to true/false.
1145 2022-12-01  Richard Biener  <rguenther@suse.de>
1147         PR tree-optimization/107935
1148         * tree-ssa-sccvn.cc (visit_phi): Honor forced VARYING on
1149         backedges.
1151 2022-12-01  Jakub Jelinek  <jakub@redhat.com>
1153         PR target/107627
1154         * config/i386/i386.md (*concat<mode><dwi>3_1, *concat<mode><dwi>3_2):
1155         For operands which are zero_extend arguments allow memory if
1156         output operand is a register.
1157         (*concat<mode><dwi>3_3, *concat<mode><dwi>3_4): Likewise.  If
1158         both input operands are memory, use early clobber on output operand.
1159         * config/i386/i386-expand.cc (split_double_concat): Deal with corner
1160         cases where one input is memory and the other is not and the address
1161         of the memory input uses a register we'd overwrite before loading
1162         the memory into a register.
1164 2022-12-01  Haochen Gui  <guihaoc@gcc.gnu.org>
1166         * config/rs6000/rs6000-call.cc (swap_endian_selector_for_mode):
1167         Corrects comments of this function and make them clear.
1169 2022-12-01  liuhongt  <hongtao.liu@intel.com>
1171         PR target/107863
1172         * config/i386/i386-expand.cc (ix86_expand_vec_set_builtin):
1173         Convert op1 to target mode whenever mode mismatch.
1175 2022-12-01  David Malcolm  <dmalcolm@redhat.com>
1177         PR analyzer/106626
1178         * diagnostic-path.h
1179         (diagnostic_path::get_first_event_in_a_function): New decl.
1180         * diagnostic.cc (diagnostic_path::get_first_event_in_a_function):
1181         New.
1182         (diagnostic_path::interprocedural_p): Ignore leading events that
1183         are outside of any function.
1185 2022-12-01  David Malcolm  <dmalcolm@redhat.com>
1187         * Makefile.in (ANALYZER_OBJS): Add analyzer/bounds-checking.o.
1189 2022-12-01  Haochen Gui  <guihaoc@gcc.gnu.org>
1191         PR target/100866
1192         * config/rs6000/rs6000-call.cc (swap_endian_selector_for_mode):
1193         Generate permute index directly for little endian targets.
1194         * config/rs6000/vsx.md (revb_<mode>): Call vprem directly with
1195         corresponding permute indexes.
1197 2022-11-30  John David Anglin  <danglin@gcc.gnu.org>
1199         * config/pa/pa.md (addvdi3): Force operand 2 to a register.
1200         Remove "addi,tsv,*" instruction from unamed pattern.
1201         (subvdi3): Force operand 1 to a register.
1202         Remove "subi,tsv" instruction from from unamed pattern.
1204 2022-11-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1206         * config/aarch64/aarch64.md (aarch64_cpymemdi): Specify clobber of CC reg.
1207         (*aarch64_cpymemdi): Likewise.
1208         (aarch64_movmemdi): Likewise.
1209         (aarch64_setmemdi): Likewise.
1210         (*aarch64_setmemdi): Likewise.
1212 2022-11-30  Martin Liska  <mliska@suse.cz>
1214         * tree-switch-conversion.cc (bit_test_cluster::emit): Remove
1215         dead variable bt_range.
1217 2022-11-30  Iskander Shakirzyanov  <iskander@ispras.ru>
1218             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1220         PR driver/107787
1221         * common.opt (Warray-bounds): Turn into alias of
1222         -Warray-bounds=1.
1223         * builtins.cc (c_strlen): Use OPT_Warray_bounds_
1224         instead of OPT_Warray_bounds.
1225         * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Ditto.
1226         * gimple-array-bounds.cc (array_bounds_checker::check_array_ref,
1227         array_bounds_checker::check_mem_ref,
1228         array_bounds_checker::check_addr_expr,
1229         array_bounds_checker::check_array_bounds): Ditto.
1230         * gimple-ssa-warn-restrict.cc (maybe_diag_access_bounds): Ditto.
1232 2022-11-30  Martin Liska  <mliska@suse.cz>
1234         PR tree-optimization/101301
1235         PR tree-optimization/103680
1236         * tree-switch-conversion.cc (bit_test_cluster::emit):
1237         Handle correctly remaining probability.
1238         (switch_decision_tree::try_switch_expansion): Fix BB's count
1239         where a cluster expansion happens.
1240         (switch_decision_tree::emit_cmp_and_jump_insns): Fill up also
1241         BB count.
1242         (switch_decision_tree::do_jump_if_equal): Likewise.
1243         (switch_decision_tree::emit_case_nodes): Handle special case
1244         for BT expansion which can also fallback to a default BB.
1245         * tree-switch-conversion.h (cluster::cluster): Add
1246         m_default_prob probability.
1248 2022-11-30  Richard Biener  <rguenther@suse.de>
1250         PR tree-optimization/107919
1251         * gimple-predicate-analysis.cc (simplify_1): Rename to ...
1252         (simplify_1a): .. this.
1253         (simplify_1b): New.
1254         (predicate::simplify): Call both simplify_1a and simplify_1b.
1256 2022-11-30  Richard Biener  <rguenther@suse.de>
1258         * tree-ssa-uninit.cc (find_uninit_use): Dump the edge for a
1259         PHI node.
1261 2022-11-30  Richard Biener  <rguenther@suse.de>
1263         PR tree-optimization/107919
1264         * gimple-predicate-analysis.cc (predicate::simplify_2):
1265         Handle predicates of arbitrary length.
1267 2022-11-30  Jakub Jelinek  <jakub@redhat.com>
1269         PR tree-optimization/107835
1270         * tree-chrec.cc (chrec_apply): Don't handle "{a, +, a} (x-1)"
1271         as "a*x" if type is a pointer type.
1273 2022-11-30  Paul-Antoine Arras  <pa@codesourcery.com>
1275         * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Add gfx803.
1276         * config/gcn/t-omp-device: Add gfx803.
1278 2022-11-30  Lulu Cheng  <chenglulu@loongson.cn>
1280         * config/loongarch/linux.h (STACK_CHECK_MOVING_SP):
1281         Define this macro to 1.
1282         * config/loongarch/loongarch.cc (STACK_CLASH_PROTECTION_GUARD_SIZE):
1283         Size of guard page.
1284         (loongarch_first_stack_step): Return the size of the first drop stack
1285         according to whether stack checking is performed.
1286         (loongarch_emit_probe_stack_range): Adjust the method of stack checking in prologue.
1287         (loongarch_output_probe_stack_range): Delete useless code.
1288         (loongarch_expand_prologue): Adjust the method of stack checking in prologue.
1289         (loongarch_option_override_internal): Enforce that interval is the same
1290         size as size so the mid-end does the right thing.
1291         * config/loongarch/loongarch.h (STACK_CLASH_MAX_UNROLL_PAGES):
1292         New macro decide whether to loop stack detection.
1294 2022-11-30  David Malcolm  <dmalcolm@redhat.com>
1296         PR analyzer/103546
1297         * doc/invoke.texi (Static Analyzer Options): Add isatty, ferror,
1298         fileno, and getc to the list of functions known to the analyzer.
1300 2022-11-29  Richard Biener  <rguenther@suse.de>
1302         PR tree-optimization/107852
1303         * tree-ssa-sccvn.cc (visit_phi): Use equivalences recorded
1304         as predicated values to elide more redundant PHIs.
1306 2022-11-29  Richard Biener  <rguenther@suse.de>
1308         PR tree-optimization/106995
1309         * tree-if-conv.cc (pass_if_conversion::execute): Also redirect the
1310         versioning condition to the original loop if this very loop
1311         vanished during CFG cleanup.
1313 2022-11-29  Richard Biener  <rguenther@suse.de>
1315         PR tree-optimization/107898
1316         * gimple-ssa-warn-alloca.cc (alloca_call_type): Check
1317         the type of the alloca argument is compatible with size_t
1318         before querying ranges.
1320 2022-11-29  Richard Biener  <rguenther@suse.de>
1322         PR ipa/107897
1323         * multiple_target.cc (pass_target_clone::gate): Disable
1324         after errors.
1326 2022-11-29  Martin Liska  <mliska@suse.cz>
1328         * configure: Regenerate.
1330 2022-11-29  YunQiang Su  <yunqiang.su@cipunited.com>
1332         * configure.ac: add description for
1333         AC_DEFINE(ENABLE_MULTIARCH, 1)
1335 2022-11-28  Andrew Pinski  <apinski@marvell.com>
1337         * match.pd ((A / (1 << B)) -> (A >> B).):
1338         Fix comment.
1340 2022-11-28  Sinan  <sinan.lin@linux.alibaba.com>
1342         * config/riscv/riscv.cc (riscv_build_integer): Improve some cases
1343         of loading 64bit constants for rv32.
1345 2022-11-28  Maciej W. Rozycki  <macro@embecosm.com>
1347         * config/riscv/riscv.cc (riscv_emit_int_order_test): Use EQ 0
1348         rather that XOR 1 for LE and LEU operations.
1350 2022-11-28  Richard Biener  <rguenther@suse.de>
1352         PR tree-optimization/107896
1353         * tree-vect-stmts.cc (supportable_widening_operation):
1354         Handle non-vector mode intermediate mode.
1356 2022-11-28  Frolov Daniil  <frolov.da@phystech.edu>
1358         * gimple-ssa-sprintf.cc (fmtresult::type_max_digits): Handle
1359         base == 2.
1360         (tree_digits): Likewise.
1361         (format_integer): Likewise.
1362         (parse_directive): Add cases for %b and %B directives.
1364 2022-11-28  Fei Gao  <gaofei@eswincomputing.com>
1366         * config/riscv/riscv.cc (riscv_first_stack_step): Fix computation
1367         of MIN_FIRST_STEP to cover FP save area too.
1369 2022-11-28  Richard Biener  <rguenther@suse.de>
1371         PR tree-optimization/107493
1372         * tree-scalar-evolution.cc (scev_dfs::follow_ssa_edge_expr):
1373         Only handle no-op and sign-changing conversions.
1375 2022-11-28  Tobias Burnus  <tobias@codesourcery.com>
1377         * config/gcn/gcn.cc (gcn_expand_builtin_1): Work on s1 instead
1378         of s[0:1] and use USE to prevent removal of setting that register.
1379         * config/gcn/gcn.md (prologue_use_di): Remove.
1381 2022-11-28  Yuri Gribov  <y.gribov@samsung.com>
1383         PR sanitizer/106558
1384         * sanopt.cc: Do not optimize out checks for non-SSA addresses.
1386 2022-11-28  Jakub Jelinek  <jakub@redhat.com>
1388         PR target/106875
1389         * config/i386/i386.opt (x_ix86_abi): Remove TargetSave.
1390         (ix86_abi): Replace it with TargetVariable.
1391         * config/i386/i386-options.cc (ix86_function_specific_save,
1392         ix86_function_specific_restore): Don't save and restore x_ix86_abi.
1394 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1396         * config/arm/mve.md (mve_vrmlaldavhq_<supf>v4si,
1397         mve_vrmlaldavhaq_<supf>v4si): Fix spacing vs tabs.
1399 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1401         * config/arm/mve.md (mve_vmlaldavaq_<supf><mode>)
1402         (mve_vmlaldavaxq_s<mode>, mve_vmlaldavaxq_p_<supf><mode>): Fix
1403         spacing vs tabs.
1405 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1407         * config/arm/mve.md (mve_vsubq_n_f<mode>): Fix spacing.
1409 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1411         * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si)
1412         (mve_vaddq_n_<supf><mode>, mve_vaddvaq_<supf><mode>)
1413         (mve_vaddlvaq_<supf>v4si, mve_vaddq_n_f<mode>)
1414         (mve_vaddlvaq_p_<supf>v4si, mve_vaddq<mode>, mve_vaddq_f<mode>):
1415         Fix spacing.
1417 2022-11-28  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
1419         * config/arm/arm_mve.h (__arm_vsubq_x FP): New overloads.
1420         (__arm_vsubq_x Integer): New.
1422 2022-11-28  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
1424         PR target/107515
1425         * config/arm/arm_mve.h (__ARM_mve_typeid): Add float types.
1427 2022-11-28  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
1429         PR target/96795
1430         * config/arm/arm_mve.h (__arm_vaddq): Fix Overloading.
1431         (__arm_vmulq): Likewise.
1432         (__arm_vcmpeqq): Likewise.
1433         (__arm_vcmpneq): Likewise.
1434         (__arm_vmaxnmavq): Likewise.
1435         (__arm_vmaxnmvq): Likewise.
1436         (__arm_vminnmavq): Likewise.
1437         (__arm_vsubq): Likewise.
1438         (__arm_vminnmvq): Likewise.
1439         (__arm_vrshlq): Likewise.
1440         (__arm_vqsubq): Likewise.
1441         (__arm_vqdmulltq): Likewise.
1442         (__arm_vqdmullbq): Likewise.
1443         (__arm_vqdmulhq): Likewise.
1444         (__arm_vqaddq): Likewise.
1445         (__arm_vhaddq): Likewise.
1446         (__arm_vhsubq): Likewise.
1447         (__arm_vqdmlashq): Likewise.
1448         (__arm_vqrdmlahq): Likewise.
1449         (__arm_vmlasq): Likewise.
1450         (__arm_vqdmlahq): Likewise.
1451         (__arm_vmaxnmavq_p): Likewise.
1452         (__arm_vmaxnmvq_p): Likewise.
1453         (__arm_vminnmavq_p): Likewise.
1454         (__arm_vminnmvq_p): Likewise.
1455         (__arm_vfmasq_m): Likewise.
1456         (__arm_vsetq_lane): Likewise.
1457         (__arm_vcmpneq_m): Likewise.
1458         (__arm_vhaddq_x): Likewise.
1459         (__arm_vhsubq_x): Likewise.
1460         (__arm_vqrdmlashq_m): Likewise.
1461         (__arm_vqdmlashq_m): Likewise.
1462         (__arm_vmlaldavaxq_p): Likewise.
1463         (__arm_vmlasq_m): Likewise.
1464         (__arm_vqdmulhq_m): Likewise.
1465         (__arm_vqdmulltq_m): Likewise.
1466         (__arm_viwdupq_m): Likewise.
1467         (__arm_viwdupq_u16): Likewise.
1468         (__arm_viwdupq_u32): Likewise.
1469         (__arm_viwdupq_u8): Likewise.
1470         (__arm_vdwdupq_m): Likewise.
1471         (__arm_vdwdupq_u16): Likewise.
1472         (__arm_vdwdupq_u32): Likewise.
1473         (__arm_vdwdupq_u8): Likewise.
1474         (__arm_vaddlvaq): Likewise.
1475         (__arm_vaddlvaq_p): Likewise.
1476         (__arm_vaddvaq): Likewise.
1477         (__arm_vaddvaq_p): Likewise.
1478         (__arm_vcmphiq_m): Likewise.
1479         (__arm_vmladavaq_p): Likewise.
1480         (__arm_vmladavaxq): Likewise.
1481         (__arm_vmlaldavaxq): Likewise.
1482         (__arm_vrmlaldavhaq_p): Likewise.
1484 2022-11-28  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
1486         PR target/96795
1487         * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Change types.
1488         (__arm_vaddq_m_n_s32): Likewise.
1489         (__arm_vaddq_m_n_s16): Likewise.
1490         (__arm_vaddq_m_n_u8): Likewise.
1491         (__arm_vaddq_m_n_u32): Likewise.
1492         (__arm_vaddq_m_n_u16): Likewise.
1493         (__arm_vaddq_m): Fix Overloading.
1494         (__ARM_mve_coerce3): New.
1496 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1498         * config/arm/mve.md (mve_vabsq_f<mode>): Fix spacing.
1500 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1502         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Fix
1503         spacing.
1504         * config/arm/arm_mve.h (__arm_vcmpgtq_m, __arm_vcmpleq_m)
1505         (__arm_vcmpltq_m, __arm_vcmpneq_m): Add missing defines.
1507 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1509         * config/arm/mve.md (mve_vdupq_n_f<mode>)
1510         (mve_vdupq_n_<supf><mode>, mve_vdupq_m_n_<supf><mode>)
1511         (mve_vdupq_m_n_f<mode>): Fix spacing.
1513 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1515         * config/arm/mve.md (mve_vdwdupq_m_wb_u<mode>_insn): Fix spacing.
1517 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1519         * config/arm/mve.md (mve_vddupq_u<mode>_insn): Fix 'vddup.u'
1520         spacing.
1521         (mve_vddupq_m_wb_u<mode>_insn): Likewise.
1523 2022-11-28  Andrea Corallo  <andrea.corallo@arm.com>
1525         * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Fix
1526         'vmsr' spacing and reg capitalization.
1528 2022-11-28  Richard Biener  <rguenther@suse.de>
1530         PR tree-optimization/107876
1531         * tree-ssa-loop-unswitch.cc (clean_up_after_unswitching): Wipe
1532         dominator info if we removed an edge.
1534 2022-11-28  Richard Biener  <rguenther@suse.de>
1536         PR tree-optimization/107867
1537         * tree-ssa-forwprop.cc (pass_forwprop::execute): Handle
1538         abnormal cleanup after substitution.
1540 2022-11-28  Lulu Cheng  <chenglulu@loongson.cn>
1542         * config/loongarch/loongarch.cc (enum loongarch_load_imm_method):
1543         Remove the member METHOD_INSV that is not currently used.
1544         (struct loongarch_integer_op): Define a new member curr_value,
1545         that records the value of the number stored in the destination
1546         register immediately after the current instruction has run.
1547         (loongarch_build_integer): Assign a value to the curr_value member variable.
1548         (loongarch_move_integer): Adds information for the immediate load instruction.
1549         * config/loongarch/loongarch.md (*movdi_32bit): Redefine as define_insn_and_split.
1550         (*movdi_64bit): Likewise.
1551         (*movsi_internal): Likewise.
1552         (*movhi_internal): Likewise.
1553         * config/loongarch/predicates.md: Return true as long as it is CONST_INT, ensure
1554         that the immediate number is not optimized by decomposition during expand
1555         optimization loop.
1557 2022-11-28  liuhongt  <hongtao.liu@intel.com>
1559         PR target/107748
1560         * config/i386/avx512bf16intrin.h (_mm_cvtsbh_ss): Refined.
1561         * config/i386/i386-builtin-types.def (FLOAT_FTYPE_BFLOAT16):
1562         New function type.
1563         * config/i386/i386-builtin.def (BDESC): New builtin.
1564         * config/i386/i386-expand.cc (ix86_expand_args_builtin):
1565         Handle the builtin.
1566         * config/i386/i386.md (extendbfsf2): New expander.
1567         (extendbfsf2_1): New define_insn.
1568         (truncsfbf2): Ditto.
1570 2022-11-26  Andrew Pinski  <apinski@marvell.com>
1572         PR tree-optimization/103356
1573         * match.pd: ((~a) == b -> a ^ b): New pattern.
1575 2022-11-25  Sandra Loosemore  <sandra@codesourcery.com>
1577         * common.opt (fopenmp-target-simd-clone): New option.
1578         (target_simd_clone_device): New enum to go with it.
1579         * doc/invoke.texi (-fopenmp-target-simd-clone): Document.
1580         * flag-types.h (enum omp_target_simd_clone_device_kind): New.
1581         * omp-simd-clone.cc (auto_simd_fail): New function.
1582         (auto_simd_check_stmt): New function.
1583         (plausible_type_for_simd_clone): New function.
1584         (ok_for_auto_simd_clone): New function.
1585         (simd_clone_create): Add force_local argument, make the symbol
1586         have internal linkage if it is true.
1587         (expand_simd_clones): Also check for cloneable functions with
1588         "omp declare target".  Pass explicit_p argument to
1589         simd_clone.compute_vecsize_and_simdlen target hook.
1590         * opts.cc (default_options_table): Add -fopenmp-target-simd-clone.
1591         * target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN):
1592         Add bool explicit_p argument.
1593         * doc/tm.texi: Regenerated.
1594         * config/aarch64/aarch64.cc
1595         (aarch64_simd_clone_compute_vecsize_and_simdlen): Update.
1596         * config/gcn/gcn.cc
1597         (gcn_simd_clone_compute_vecsize_and_simdlen): Update.
1598         * config/i386/i386.cc
1599         (ix86_simd_clone_compute_vecsize_and_simdlen): Update.
1601 2022-11-25  Tamar Christina  <tamar.christina@arm.com>
1603         PR target/107830
1604         * config/aarch64/aarch64.cc
1605         (aarch64_vectorize_can_special_div_by_constant): Check validity during
1606         codegen phase as well.
1608 2022-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1610         * range-op.cc (operator_bitwise_xor::op1_range): Fix thinko.
1612 2022-11-25  Richard Biener  <rguenther@suse.de>
1614         PR tree-optimization/107865
1615         * tree-cfg.cc (move_sese_region_to_fn): Free the number of
1616         iterations of moved loops.
1618 2022-11-25  Kewen.Lin  <linkw@gcc.gnu.org>
1620         PR target/99889
1621         * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry):
1622         Adjust to call function default_print_patchable_function_entry.
1623         * targhooks.cc (default_print_patchable_function_entry_1): Remove and
1624         move the flags preparation ...
1625         (default_print_patchable_function_entry): ... here, adjust to use
1626         current_function_funcdef_no for label no.
1627         * targhooks.h (default_print_patchable_function_entry_1): Remove.
1628         * varasm.cc (default_elf_asm_named_section): Adjust code for
1629         __patchable_function_entries section support with LPFE label.
1631 2022-11-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
1633         PR tree-optimization/107413
1634         * config/aarch64/aarch64.cc (struct tune_params): Add
1635         fma_reassoc_width to all CPU tuning structures.
1636         (aarch64_reassociation_width): Use fma_reassoc_width.
1637         * config/aarch64/aarch64-protos.h (struct tune_params): Add
1638         fma_reassoc_width.
1640 2022-11-24  Jakub Jelinek  <jakub@redhat.com>
1642         PR middle-end/107317
1643         * asan.cc: Include diagnostic-core.h.
1644         (asan_emit_stack_protection): Return NULL early if seen_error ().
1646 2022-11-24  Aldy Hernandez  <aldyh@redhat.com>
1648         * vr-values.cc (simplify_using_ranges::compare_names): Remove.
1649         (vrp_evaluate_conditional_warnv_with_ops): Remove call to
1650         compare_names.
1651         (simplify_using_ranges::vrp_visit_cond_stmt): Remove use_equiv_p
1652         argument to vrp_evaluate_conditional_warnv_with_ops.
1653         * vr-values.h (class simplify_using_ranges): Remove
1654         compare_names.
1655         Remove use_equiv_p to vrp_evaluate_conditional_warnv_with_ops.
1657 2022-11-24  Aldy Hernandez  <aldyh@redhat.com>
1659         * tree-vrp.cc (overflow_comparison_p_1): Remove follow_assert_exprs.
1660         (overflow_comparison_p): Remove use_equiv_p.
1661         * tree-vrp.h (overflow_comparison_p): Same.
1662         * vr-values.cc (vrp_evaluate_conditional_warnv_with_ops): Remove
1663         use_equiv_p argument to overflow_comparison_p.
1665 2022-11-24  Aldy Hernandez  <aldyh@redhat.com>
1667         * doc/gimple.texi: Remove ASSERT_EXPR references.
1668         * fold-const.cc (tree_expr_nonzero_warnv_p): Same.
1669         (fold_binary_loc): Same.
1670         (tree_expr_nonnegative_warnv_p): Same.
1671         * gimple-array-bounds.cc (get_base_decl): Same.
1672         * gimple-pretty-print.cc (dump_unary_rhs): Same.
1673         * gimple.cc (get_gimple_rhs_num_ops): Same.
1674         * pointer-query.cc (handle_ssa_name): Same.
1675         * tree-cfg.cc (verify_gimple_assign_single): Same.
1676         * tree-pretty-print.cc (dump_generic_node): Same.
1677         * tree-scalar-evolution.cc (scev_dfs::follow_ssa_edge_expr):Same.
1678         (interpret_rhs_expr): Same.
1679         * tree-ssa-operands.cc (operands_scanner::get_expr_operands): Same.
1680         * tree-ssa-propagate.cc
1681         (substitute_and_fold_dom_walker::before_dom_children): Same.
1682         * tree-ssa-threadedge.cc: Same.
1683         * tree-vrp.cc (overflow_comparison_p): Same.
1684         * tree.def (ASSERT_EXPR): Add note.
1685         * tree.h (ASSERT_EXPR_VAR): Remove.
1686         (ASSERT_EXPR_COND): Remove.
1687         * vr-values.cc (simplify_using_ranges::vrp_visit_cond_stmt):
1688         Remove comment.
1690 2022-11-24  Aldy Hernandez  <aldyh@redhat.com>
1692         * Makefile.in: Remove value-range-equiv.o
1693         * gimple-array-bounds.cc
1694         (array_bounds_checker::array_bounds_checker): Remove comment.
1695         * tree-vrp.cc (supported_types_p): Remove use of value_range_equiv.
1696         * value-query.cc (class equiv_allocator): Same.
1697         (range_query::allocate_value_range_equiv): Remove.
1698         (range_query::free_value_range_equiv): Remove.
1699         (range_query::get_value_range): Remove.
1700         * value-query.h (class range_query): Remove get_value_range.
1701         Remove allocate_value_range_equiv.
1702         Remove free_value_range_equiv.
1703         * vr-values.cc (compare_ranges): Replace value_range_equiv with
1704         value_range.
1705         (simplify_using_ranges::get_vr_for_comparison): Same.
1706         (simplify_using_ranges::compare_names): Same.
1707         * vr-values.h: Remove value_range_equiv references.
1708         * value-range-equiv.cc: Removed.
1709         * value-range-equiv.h: Removed.
1711 2022-11-24  Aldy Hernandez  <aldyh@redhat.com>
1713         * doc/invoke.texi: Remove docs for max-vrp-switch-assertions,
1714         vrp1-mode, and vrp2-mode.
1715         * params.opt: Same.
1716         * range-op.cc (masked_increment): Move from tree-vrp.cc.
1717         * tree-vrp.cc (class live_names): Remove.
1718         (live_names::init_bitmap_if_needed): Remove.
1719         (live_names::block_has_live_names_p): Remove.
1720         (live_names::clear_block): Remove.
1721         (live_names::merge): Remove.
1722         (live_names::set): Remove.
1723         (live_names::clear): Remove.
1724         (live_names::live_names): Remove.
1725         (live_names::~live_names): Remove.
1726         (live_names::live_on_block_p): Remove.
1727         (live_names::live_on_edge_p): Remove.
1728         (get_single_symbol): Make static.
1729         (build_symbolic_expr): Remove.
1730         (adjust_symbolic_bound): Remove.
1731         (combine_bound): Remove.
1732         (set_value_range_with_overflow): Remove.
1733         (extract_range_from_pointer_plus_expr): Remove.
1734         (extract_range_from_plus_minus_expr): Remove.
1735         (drop_undefines_to_varying): Remove.
1736         (range_fold_binary_symbolics_p): Remove.
1737         (range_fold_unary_symbolics_p): Remove.
1738         (range_fold_binary_expr): Remove.
1739         (infer_value_range): Remove.
1740         (dump_assert_info): Remove.
1741         (dump_asserts_info): Remove.
1742         (add_assert_info): Remove.
1743         (extract_code_and_val_from_cond_with_ops): Remove.
1744         (masked_increment): Move to range-op.cc.
1745         (register_edge_assert_for_2): Remove.
1746         (find_case_label_index): Remove.
1747         (find_case_label_range): Remove.
1748         (register_edge_assert_for_1): Remove.
1749         (is_masked_range_test): Remove.
1750         (register_edge_assert_for): Remove.
1751         (stmt_interesting_for_vrp): Remove.
1752         (struct case_info): Remove.
1753         (struct assert_locus): Remove.
1754         (class vrp_asserts): Remove.
1755         (vrp_asserts::build_assert_expr_for): Remove.
1756         (vrp_asserts::dump): Remove.
1757         (vrp_asserts::register_new_assert_for): Remove.
1758         (vrp_asserts::finish_register_edge_assert_for): Remove.
1759         (vrp_asserts::find_conditional_asserts): Remove.
1760         (vrp_asserts::compare_case_labels): Remove.
1761         (vrp_asserts::find_switch_asserts): Remove.
1762         (vrp_asserts::find_assert_locations_in_bb): Remove.
1763         (vrp_asserts::find_assert_locations): Remove.
1764         (vrp_asserts::process_assert_insertions_for): Remove.
1765         (vrp_asserts::compare_assert_loc): Remove.
1766         (vrp_asserts::process_assert_insertions): Remove.
1767         (vrp_asserts::insert_range_assertions): Remove.
1768         (vrp_asserts::all_imm_uses_in_stmt_or_feed_cond): Remove.
1769         (vrp_asserts::remove_range_assertions): Remove.
1770         (class vrp_prop): Remove.
1771         (vrp_prop::initialize): Remove.
1772         (enum ssa_prop_result): Remove.
1773         (vrp_prop::visit_stmt): Remove.
1774         (vrp_prop::visit_phi): Remove.
1775         (vrp_prop::finalize): Remove.
1776         (class vrp_folder): Remove.
1777         (vrp_folder::fold_predicate_in): Remove.
1778         (vrp_folder::fold_stmt): Remove.
1779         (vrp_folder::simplify_casted_conds): Remove.
1780         (execute_vrp): Remove.
1781         * tree-vrp.h (struct assert_info): Remove.
1782         (register_edge_assert_for): Remove.
1783         (stmt_interesting_for_vrp): Remove.
1784         (infer_value_range): Remove.
1785         (get_single_symbol): Remove.
1786         (masked_increment): Remove.
1787         (execute_ranger_vrp): Remove.
1788         * vr-values.cc (set_value_range_to_nonnegative): Remove.
1789         (set_value_range_to_truthvalue): Remove.
1790         (vr_values::get_lattice_entry): Remove.
1791         (vr_values::get_value_range): Remove.
1792         (vr_values::range_of_expr): Remove.
1793         (vr_values::value_of_expr): Remove.
1794         (vr_values::value_on_edge): Remove.
1795         (vr_values::value_of_stmt): Remove.
1796         (vr_values::set_def_to_varying): Remove.
1797         (vr_values::set_defs_to_varying): Remove.
1798         (vr_values::update_value_range): Remove.
1799         (symbolic_range_based_on_p): Remove.
1800         (gimple_assign_nonzero_p): Remove.
1801         (gimple_stmt_nonzero_p): Remove.
1802         (vr_values::vrp_stmt_computes_nonzero): Remove.
1803         (vr_values::op_with_constant_singleton_value_range): Remove.
1804         (vr_values::extract_range_for_var_from_comparison_expr): Remove.
1805         (vr_values::extract_range_from_assert): Remove.
1806         (vr_values::extract_range_from_ssa_name): Remove.
1807         (vr_values::extract_range_from_binary_expr): Remove.
1808         (vr_values::extract_range_from_unary_expr): Remove.
1809         (vr_values::extract_range_from_cond_expr): Remove.
1810         (vr_values::extract_range_from_comparison): Remove.
1811         (vr_values::extract_range_from_ubsan_builtin): Remove.
1812         (vr_values::extract_range_basic): Remove.
1813         (vr_values::extract_range_from_assignment): Remove.
1814         (vr_values::adjust_range_with_scev): Remove.
1815         (vr_values::dump): Remove.
1816         (vr_values::vr_values): Remove.
1817         (vr_values::~vr_values): Remove.
1818         (vrp_valueize): Remove.
1819         (vrp_valueize_1): Remove.
1820         (get_output_for_vrp): Remove.
1821         (vr_values::vrp_visit_assignment_or_call): Remove.
1822         (simplify_using_ranges::vrp_evaluate_conditional): Remove.
1823         (vr_values::vrp_visit_switch_stmt): Remove.
1824         (vr_values::extract_range_from_stmt): Remove.
1825         (vr_values::extract_range_from_phi_node): Remove.
1826         (simplify_using_ranges::fold_cond): Add FIXME note.
1827         (vr_values::set_vr_value): Remove.
1828         (vr_values::swap_vr_value): Remove.
1829         * vr-values.h (class vr_values): Remove.
1830         (get_output_for_vrp): Remove.
1832 2022-11-24  Hongyu Wang  <hongyu.wang@intel.com>
1834         PR target/107692
1835         * common/config/i386/i386-common.cc (ix86_optimization_table):
1836         Enable loop unroll O2, disable -fweb and -frename-registers
1837         by default.
1838         * config/i386/i386-options.cc
1839         (ix86_override_options_after_change):
1840         Disable small loop unroll when funroll-loops enabled, reset
1841         cunroll_grow_size when it is not explicitly enabled.
1842         (ix86_option_override_internal): Call
1843         ix86_override_options_after_change instead of calling
1844         ix86_recompute_optlev_based_flags and ix86_default_align
1845         separately.
1846         * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll
1847         factor if -munroll-only-small-loops enabled.
1848         * loop-init.cc (pass_rtl_unroll_loops::gate): Do not enable
1849         loop unrolling for -O2-speed.
1850         (pass_rtl_unroll_loops::execute): Rmove
1851         targetm.loop_unroll_adjust check.
1853 2022-11-23  Ramana Radhakrishnan  <ramana.gcc@gmail.com>
1855         * config/arm/types.md: Update comment.
1856         (is_neon_type): Add neon_fcmla, neon_fcadd.
1858 2022-11-23  Jonathan Wakely  <jwakely@redhat.com>
1860         * doc/invoke.texi (C++ Dialect Options): Recommend using
1861         -Wdelete-non-virtual-dtor instead of -Wnon-virtual-dtor.
1863 2022-11-23  Jakub Jelinek  <jakub@redhat.com>
1865         PR bootstrap/107722
1866         * diagnostic.cc (test_diagnostic_get_location_text): Test
1867         special_fname_builtin () rather than "<built-in>" and expect
1868         special_fname_builtin () concatenated with ":" for it.
1870 2022-11-23  Martin Liska  <mliska@suse.cz>
1872         * Makefile.in: Set DO_LINK_MUTEX.
1874 2022-11-23  Lulu Cheng  <chenglulu@loongson.cn>
1875             xujiahao  <xujiahao@loongson.cn>
1877         * config/loongarch/constraints.md (ZD): New constraint.
1878         * config/loongarch/loongarch-def.c: Initial number of parallel prefetch.
1879         * config/loongarch/loongarch-tune.h (struct loongarch_cache):
1880         Define number of parallel prefetch.
1881         * config/loongarch/loongarch.cc (loongarch_option_override_internal):
1882         Set up parameters to be used in prefetching algorithm.
1883         * config/loongarch/loongarch.md (prefetch): New template.
1885 2022-11-23  Marek Polacek  <polacek@redhat.com>
1887         Revert:
1888         2022-11-23  Marek Polacek  <polacek@redhat.com>
1890         * Makefile.in: Set LD_PICFLAG.  Use it.  Set enable_host_pie.
1891         Remove NO_PIE_CFLAGS and NO_PIE_FLAG.  Pass LD_PICFLAG to
1892         ALL_LINKERFLAGS.  Use the "pic" build of libiberty if --enable-host-pie.
1893         * configure.ac (--enable-host-shared): Don't set PICFLAG here.
1894         (--enable-host-pie): New check.  Set PICFLAG and LD_PICFLAG after this
1895         check.
1896         * configure: Regenerate.
1897         * doc/install.texi: Document --enable-host-pie.
1899 2022-11-23  Marek Polacek  <polacek@redhat.com>
1901         Revert:
1902         2022-11-23  Marek Polacek  <polacek@redhat.com>
1904         * configure.ac (--enable-host-bind-now): New check.  Add
1905         -Wl,-z,now to LD_PICFLAG if --enable-host-bind-now.
1906         * configure: Regenerate.
1907         * doc/install.texi: Document --enable-host-bind-now.
1909 2022-11-23  Marek Polacek  <polacek@redhat.com>
1911         * configure.ac (--enable-host-bind-now): New check.  Add
1912         -Wl,-z,now to LD_PICFLAG if --enable-host-bind-now.
1913         * configure: Regenerate.
1914         * doc/install.texi: Document --enable-host-bind-now.
1916 2022-11-23  Marek Polacek  <polacek@redhat.com>
1918         * Makefile.in: Set LD_PICFLAG.  Use it.  Set enable_host_pie.
1919         Remove NO_PIE_CFLAGS and NO_PIE_FLAG.  Pass LD_PICFLAG to
1920         ALL_LINKERFLAGS.  Use the "pic" build of libiberty if --enable-host-pie.
1921         * configure.ac (--enable-host-shared): Don't set PICFLAG here.
1922         (--enable-host-pie): New check.  Set PICFLAG and LD_PICFLAG after this
1923         check.
1924         * configure: Regenerate.
1925         * doc/install.texi: Document --enable-host-pie.
1927 2022-11-22  Jeff Law  <jlaw@ventanamicro.com>
1929         * tree-ssa-dom.cc (record_edge_info): Fix thinko in last commit.
1931 2022-11-22  Jeff Law  <jlaw@ventanamicro.com>
1933         * tree-ssa-dom.cc (record_edge_info): Fix comment typos.
1935 2022-11-22  Jeff Law  <jeffreyalaw@gmail.com>
1937         * config/riscv/riscv.cc (riscv_get_separate_components): Do not
1938         do shrink-wrapping for a frame with a variable size.
1940 2022-11-22  Siddhesh Poyarekar  <siddhesh@gotplt.org>
1942         * tree-object-size.cc (todo): New variable.
1943         (object_sizes_execute): Use it.
1944         (strdup_object_size): New function.
1945         (call_object_size): Use it.
1947 2022-11-22  Eric Botcazou  <ebotcazou@adacore.com>
1949         * tree-loop-distribution.cc (loop_distribution::classify_builtin_ldst):
1950         Bail out if source and destination do not have the same storage order.
1952 2022-11-22  Martin Jambor  <mjambor@suse.cz>
1954         * ipa-sra.cc (ipa_sra_dump_all_summaries): Dump edge summaries even
1955         for non-candidates.
1957 2022-11-22  Martin Jambor  <mjambor@suse.cz>
1959         * ipa-cp.cc (push_agg_values_from_edge): Do not consider constants
1960         in unused aggregate parameters.
1962 2022-11-22  Martin Jambor  <mjambor@suse.cz>
1964         * ipa-param-manipulation.h (ipa_param_body_adjustments): Removed
1965         member m_split_modifications_p.
1966         * ipa-param-manipulation.cc
1967         (ipa_param_body_adjustments::common_initialization): Do not set
1968         m_split_modifications_p.
1969         (ipa_param_body_adjustments::ipa_param_body_adjustments): Remove
1970         initializations of m_split_modifications_p.
1971         (ipa_param_body_adjustments::modify_call_stmt): Check that
1972         m_replacements is empty instead of m_split_modifications_p.
1974 2022-11-22  Martin Jambor  <mjambor@suse.cz>
1976         PR ipa/107661
1977         * ipa-cp.cc (push_agg_values_from_edge): New parameter
1978         optimize_self_recursion, use it to decide whether to pass interim to
1979         the helper function.
1980         (find_aggregate_values_for_callers_subset): Pass true in the new
1981         parameter of push_agg_values_from_edge.
1982         (cgraph_edge_brings_all_agg_vals_for_node): Pass false in the new
1983         parameter of push_agg_values_from_edge.
1985 2022-11-22  Tobias Burnus  <tobias@codesourcery.com>
1986             Andrew Stubbs  <ams@codesourcery.com>
1988         * config/gcn/gcn-builtins.def (FIRST_CALL_THIS_THREAD_P,
1989         GET_STACK_LIMIT): Add new builtins.
1990         * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand them.
1991         * config/gcn/gcn.md (prologue_use): Add "register_operand" as
1992         arg to match_operand.
1993         (prologue_use_di): New; DI insn_and_split variant of the former.
1995 2022-11-22  Richard Biener  <rguenther@suse.de>
1997         PR tree-optimization/107803
1998         * tree-ssa-propagate.cc (substitute_and_fold_dom_walker): Add
1999         need_ab_cleanup member.
2000         (substitute_and_fold_dom_walker::before_dom_children): When
2001         a stmt can no longer transfer control flow abnormally set
2002         need_ab_cleanup.
2003         (substitute_and_fold_engine::substitute_and_fold): Cleanup
2004         abnormal control flow.
2006 2022-11-22  Richard Biener  <rguenther@suse.de>
2008         PR tree-optimization/107672
2009         * tree-vect-stmts.cc (supportable_widening_operation): Avoid
2010         type_for_mode on vector modes.
2012 2022-11-22  Richard Biener  <rguenther@suse.de>
2014         PR tree-optimization/107766
2015         * tree-vect-slp-patterns.cc (complex_mul_pattern::matches):
2016         Use *node to check for FP vector types.
2018 2022-11-22  liuhongt  <hongtao.liu@intel.com>
2020         * config/i386/mmx.md (*mov<mode>_internal): Add
2021         ix86_hard_reg_move_ok to condition.
2023 2022-11-22  liuhongt  <hongtao.liu@intel.com>
2025         * config/i386/i386.cc (ix86_can_change_mode_class): Also guard
2026         size of TO.
2027         (ix86_hard_regno_mode_ok): Remove VALID_AVX512FP16_SCALAR_MODE
2028         * config/i386/i386.h (VALID_AVX512FP16_SCALAR_MODE): Merged to
2029         ..
2030         (VALID_AVX512F_SCALAR_MODE): .. this, also add HImode.
2031         (VALID_SSE_REG_MODE): Add DI/HImode.
2033 2022-11-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2035         * config/rtems.h (SUBTARGET_CC1_SPEC): Undef and define.
2037 2022-11-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2039         * gcc.cc (SUBTARGET_CC1_SPEC): Define if not defined.
2040         (cc1_spec): Append SUBTARGET_CC1_SPEC.
2042 2022-11-21  Dimitar Dimitrov  <dimitar@dinux.eu>
2044         * doc/sourcebuild.texi (sockets): Document new check.
2046 2022-11-21  Andrew Carlotti  <andrew.carlotti@arm.com>
2048         * tree-ssa-loop.h (tree_niter_desc): Update comment.
2050 2022-11-21  Andrew Carlotti  <andrew.carlotti@arm.com>
2052         * tree-ssa-loop-niter.cc
2053         (number_of_iterations_exit_assumptions): Modify to call...
2054         (number_of_iterations_bitcount): ...this new function.
2055         (number_of_iterations_popcount): Now called by the above.
2056         Refactor, and extract popcount expression builder to...
2057         (build_popcount_expr): this new function.
2059 2022-11-21  Andrew Carlotti  <andrew.carlotti@arm.com>
2061         * tree-ssa-loop-niter.cc (ssa_defined_by_minus_one_stmt_p): Move
2062         (number_of_iterations_popcount): Move, and remove separate prototype.
2064 2022-11-21  Andrew Carlotti  <andrew.carlotti@arm.com>
2066         * tree-ssa-loop-niter.cc (number_of_iterations_exit_assumptions):
2067         Move at_stmt assignment.
2069 2022-11-21  Christophe Lyon  <christophe.lyon@arm.com>
2071         * genmultilib: Fix options and dirnames/osdirnames sanity check.
2073 2022-11-21  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2075         PR target/107786
2076         * config/riscv/riscv.md
2077         (*branch<ANYI:mode>_shiftedarith_equals_zero): Wrap ANYI
2078         in a subreg, as our branch instructions only supports X.
2080 2022-11-21  Jakub Jelinek  <jakub@redhat.com>
2082         PR target/107748
2083         * config/i386/avx512fp16intrin.h (_mm512_castph512_ph128,
2084         _mm512_castph512_ph256, _mm512_castph128_ph512,
2085         _mm512_castph256_ph512, _mm512_set1_pch): Uglify names of local
2086         variables and union members.
2087         * config/i386/avx512fp16vlintrin.h (_mm256_castph256_ph128,
2088         _mm256_castph128_ph256, _mm256_set1_pch, _mm_set1_pch): Likewise.
2089         * config/i386/smmintrin.h (_mm_extract_ps): Likewise.
2091 2022-11-21  Christophe Lyon  <christophe.lyon@arm.com>
2093         * genmultilib: Add sanity check.
2095 2022-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2097         * config/arm/arm.cc (arm_attribute_table) <cmse_nonsecure_call>:
2098         Change decl_required field to false.
2099         (arm_handle_cmse_nonsecure_call): Deal with a TYPE node.
2101 2022-11-21  Andrew Pinski  <apinski@marvell.com>
2103         * gimplify.cc (gimplify_modify_expr): If
2104         either *from_p or *to_p were error_operand
2105         return early.
2107 2022-11-21  liuhongt  <hongtao.liu@intel.com>
2109         * config/i386/i386-builtins.cc (def_builtin): Handle "shared"
2110         avx512bf16vl-avxneconvert builtins.
2112 2022-11-20  Jakub Jelinek  <jakub@redhat.com>
2114         PR target/107183
2115         * reg-stack.cc (next_flags_user): Add DEBUG_SEEN argument.
2116         If >= 0 and a DEBUG_INSN would be otherwise returned, set
2117         DEBUG_SEEN to 1 and ignore it.
2118         (swap_rtx_condition): Add DEBUG_SEEN argument.  In >= 0
2119         mode only set DEBUG_SEEN to 1 if problematic DEBUG_ISNSs
2120         were seen and revert all changes on success in that case.
2121         Don't try to recog_memoized DEBUG_INSNs.
2122         (compare_for_stack_reg): Adjust swap_rtx_condition caller.
2123         If it returns true and debug_seen is 1, call swap_rtx_condition
2124         again with debug_seen -1.
2126 2022-11-20  Jeff Law  <jlaw@ventanamicro.com>
2128         PR other/104044
2129         * config/mn10300/mn10300.cc (mn10300_print_operand): Remove
2130         extraneous semicolon.
2131         * config/nvptx/nvptx.cc (nvptx_goacc_reduction_fini): Likewise.
2133 2022-11-19  Andrew Pinski  <apinski@marvell.com>
2135         PR middle-end/14840
2136         * tree-core.h (tree_code_type): Constexprify
2137         by including all-tree.def.
2138         (tree_code_length): Likewise.
2139         * tree.cc (tree_code_type): Remove.
2140         (tree_code_length): Remove.
2142 2022-11-19  Thomas Schwinge  <thomas@codesourcery.com>
2144         * config/nvptx/nvptx.h (STARTFILE_SPEC): Fix 'crt0.o' for
2145         '-mmainkernel'.
2147 2022-11-19  Jonathan Wakely  <jwakely@redhat.com>
2148             LIU Hao  <lh_mouse@126.com>
2150         * system.h [INCLUDE_MUTEX]: Include header for std::mutex.
2152 2022-11-19  Jakub Jelinek  <jakub@redhat.com>
2154         PR target/107628
2155         * config/i386/i386-protos.h (ix86_expand_fast_convert_bf_to_sf):
2156         Declare.
2157         * config/i386/i386-expand.cc (ix86_expand_fast_convert_bf_to_sf): New
2158         function.
2159         * config/i386/i386.md (cbranchbf4, cstorebf4): Use it.
2161 2022-11-19  Jeff Chapman II  <jchapman@lock3software.com>
2162             Andrew Sutton   <asutton@lock3software.com>
2163             Andrew Marmaduke  <amarmaduke@lock3software.com>
2164             Michael Lopez  <mlopez@lock3software.com>
2165             Jason Merrill   <jason@redhat.com>
2167         * doc/invoke.texi: Document contracts flags.
2169 2022-11-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2171         * config/riscv/bitmanip.md (*minmax): Additional pattern for
2172         min/max against constants that are extension-invariant.
2173         * config/riscv/iterators.md (minmax_optab): Add an iterator
2174         that has only min and max rtl.
2176 2022-11-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2178         * config/riscv/bitmanip.md
2179         (*branch<X:mode>_mask_twobits_equals_singlebit):
2180         Handle "if ((a & T) == C)" using Zbs, when T has 2 bits set and C
2181         has one of these tow bits set.
2182         * config/riscv/predicates.md (const_twobits_not_arith_operand):
2183         New predicate.
2185 2022-11-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2187         * config/riscv/bitmanip.md (*<or_optab>i<mode>_extrabit):
2188         New pattern for binvi+binvi/xori and bseti+bseti/ori
2189         (*andi<mode>_extrabit): New pattern for bclri+bclri/andi
2190         * config/riscv/iterators.md (any_or): Match or and ior
2191         * config/riscv/predicates.md (const_twobits_operand):
2192         New predicate.
2193         (uimm_extra_bit_operand): New predicate.
2194         (uimm_extra_bit_or_twobits): New predicate.
2195         (not_uimm_extra_bit_operand): New predicate.
2196         (not_uimm_extra_bit_or_nottwobits): New predicate.
2197         * config/riscv/riscv.h (UIMM_EXTRA_BIT_OPERAND):
2198         Helper for the uimm_extra_bit_operand and
2199         not_uimm_extra_bit_operand predicates.
2201 2022-11-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2203         * config/riscv/bitmanip.md: Handle corner-cases for combine
2204         when chaining slli(.uw)? + addw
2205         * config/riscv/riscv-protos.h (riscv_shamt_matches_mask_p):
2206         Define prototype.
2207         * config/riscv/riscv.cc (riscv_shamt_matches_mask_p):
2208         Helper for evaluating the relationship between two operands.
2210 2022-11-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2212         * config/riscv/bitmanip.md: Add a define_split to optimize
2213         slliw + addiw + divw into sh[123]add + divw.
2215 2022-11-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2217         * config/riscv/predicates.md (shifted_const_arith_operand): New predicate.
2218         (uimm_extra_bit_operand): New predicate.
2219         * config/riscv/riscv.md (*branch<ANYI:mode>_shiftedarith_equals_zero):
2220         New pattern.
2221         (*branch<ANYI:mode>_shiftedmask_equals_zero): New pattern.
2223 2022-11-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2225         * config/riscv/bitmanip.md (*bsetidisi): New pattern.
2227 2022-11-18  Richard Purdie  <richard.purdie@linuxfoundation.org>
2229         * doc/invoke.texi: Document prefix-maps don't affect directives.
2231 2022-11-18  Andrew Pinski  <apinski@marvell.com>
2233         PR middle-end/107705
2234         * function.cc (aggregate_value_p): Return 0 if
2235         the function type was an error operand.
2237 2022-11-18  Andrew Pinski  <apinski@marvell.com>
2239         PR c/106764
2240         PR c/106765
2241         PR c/107307
2242         * gimplify.cc (gimplify_compound_lval): Return GS_ERROR
2243         if gimplify_expr had return GS_ERROR.
2244         (gimplify_call_expr): Likewise.
2246 2022-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2248         * config/aarch64/atomics.md (*aarch64_atomic_load<ALLX:mode>_rcpc_sext):
2249         Use <GPI:w>  for destination format.
2250         * config/aarch64/iterators.md (w_sz): Delete.
2252 2022-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2254         * config/aarch64/aarch64.h (TARGET_RCPC2): Define.
2255         * config/aarch64/atomics.md (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
2256         Adjust output template.
2257         (*aarch64_atomic_load<ALLX:mode>_rcpc_sex): Guard on TARGET_RCPC2.
2258         Adjust output template.
2259         * config/aarch64/iterators.md (w_sz): New mode attr.
2261 2022-11-18  Richard Biener  <rguenther@suse.de>
2263         PR tree-optimization/107647
2264         * tree-vect-slp-patterns.cc (addsub_pattern::recognize): Only
2265         allow FMA generation with -ffp-contract=fast for FP types.
2266         (complex_mul_pattern::matches): Likewise.
2268 2022-11-18  Jinyang He  <hejinyang@loongson.cn>
2270         PR target/107713
2271         * config/loongarch/sync.md
2272         (atomic_cas_value_exchange_7_<mode>): New define_insn.
2273         (atomic_exchange): Use atomic_cas_value_exchange_7_si instead of
2274         atomic_cas_value_cmp_and_7_si.
2276 2022-11-17  Andrew Pinski  <apinski@marvell.com>
2278         PR middle-end/107734
2279         * match.pd (perm + vector op pattern): Clear the sbitmap before
2280         use.
2282 2022-11-17  Aldy Hernandez  <aldyh@redhat.com>
2284         PR tree-optimization/107732
2285         * range-op-float.cc (foperator_abs::op1_range): Early exit when
2286         result is undefined.
2288 2022-11-17  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2290         * config/riscv/bitmanip.md (*bclri<mode>_nottwobits): New pattern.
2291         (*bclridisi_nottwobits): New pattern, handling the sign-bit.
2292         * config/riscv/predicates.md (const_nottwobits_operand):
2293         New predicate.
2295 2022-11-17  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2297         * config/riscv/bitmanip.md: Add a splitter to generate
2298         polarity-reversed masks from a set bit using bexti + addi.
2300 2022-11-17  mtsamis  <manolis.tsamis@vrull.eu>
2302         * config/riscv/riscv.cc (struct machine_function): Add array to store
2303         register wrapping information.
2304         (riscv_for_each_saved_reg): Skip registers that are wrapped separetely.
2305         (riscv_get_separate_components): New function.
2306         (riscv_components_for_bb): Likewise.
2307         (riscv_disqualify_components): Likewise.
2308         (riscv_process_components): Likewise.
2309         (riscv_emit_prologue_components): Likewise.
2310         (riscv_emit_epilogue_components): Likewise.
2311         (riscv_set_handled_components): Likewise.
2312         (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
2313         (TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
2314         (TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
2315         (TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
2316         (TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
2317         (TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
2319 2022-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2321         * config/aarch64/atomics.md (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
2322         Add mode size check to condition.
2323         (*aarch64_atomic_load<ALLX:mode>_rcpc_sext): Likewise.
2325 2022-11-17  Aldy Hernandez  <aldyh@redhat.com>
2327         PR tree-optimization/68097
2328         * gimple-fold.cc (gimple_stmt_nonnegative_warnv_p): Call
2329         range_of_stmt for floats.
2331 2022-11-17  Lili Cui  <lili.cui@intel.com>
2333         * config/i386/x86-tune.def
2334         (X86_TUNE_AVX256_MOVE_BY_PIECES): Add alderlake.
2335         (X86_TUNE_AVX256_STORE_BY_PIECES): Ditto.
2337 2022-11-17  Tamar Christina  <tamar.christina@arm.com>
2339         PR tree-optimization/107717
2340         * match.pd: Ensure same SSA_NAME.
2342 2022-11-17  Tamar Christina  <tamar.christina@arm.com>
2344         * match.pd: Replace GET_MODE_WIDER_MODE with
2345         custom code.
2347 2022-11-17  Aldy Hernandez  <aldyh@redhat.com>
2349         * range-op-float.cc (range_operator_float::fold_range): Make check
2350         for maybe_isnan more readable.
2352 2022-11-17  Kewen Lin  <linkw@linux.ibm.com>
2354         * gimple-fold.cc (gimple_fold_partial_load_store_mem_ref): Use
2355         tree_fits_shwi_p rather than tree_fits_uhwi_p as bias is signed.
2357 2022-11-17  Jia-Wei Chen  <jiawei@iscas.ac.cn>
2359         * config/riscv/riscv.cc (riscv_expand_epilogue):
2360         Do not emit useless add sp, sp, 0 instrutions.
2362 2022-11-17  Jeff Law  <jlaw@ventanamicro.com>
2364         * config/sh/sh_treg_combine.cc: Include tm-preds.h.
2365         (t_reg_operand): Remove bogus prototype.
2366         (negt_reg_operand): Likewise.
2368 2022-11-16  Marek Polacek  <polacek@redhat.com>
2370         PR c++/106649
2371         * doc/invoke.texi: Document -Winvalid-constexpr.
2373 2022-11-16  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2375         * config/riscv/bitmanip.md: Add split covering
2376         "(a & (1 << BIT_NO)) ? 0 : 1".
2378 2022-11-16  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2380         * config/riscv/bitmanip.md (*bext<mode>): Add an additional
2381         pattern that allows the 3rd argument to zero_extract to be
2382         an Xmode register operand.
2384 2022-11-16  Richard Biener  <rguenther@suse.de>
2386         PR tree-optimization/107686
2387         * tree-ssa-forwprop.cc (optimize_vector_load): Restrict
2388         VEC_UNPACK support to integral typed bitfield refs.
2390 2022-11-16  Richard Biener  <rguenther@suse.de>
2392         PR middle-end/107679
2393         * tree-into-ssa.cc (maybe_register_def): Use new temporary if
2394         we require an uninitialized value for a parameter decl.
2396 2022-11-16  Alexander Monakov  <amonakov@ispras.ru>
2398         PR target/107676
2399         * doc/invoke.texi (-mrelax-cmpxchg-loop): Reword description.
2401 2022-11-16  Alexander Monakov  <amonakov@ispras.ru>
2403         PR target/87832
2404         * config/i386/znver.md: (znver1_fp_op_mul): Correct cycles in
2405         the reservation.
2406         (znver1_fp_op_mul_load): Ditto.
2407         (znver1_mmx_mul): Ditto.
2408         (znver1_mmx_load): Ditto.
2409         (znver1_ssemul_ss_ps): Ditto.
2410         (znver1_ssemul_ss_ps_load): Ditto.
2411         (znver1_ssemul_avx256_ps): Ditto.
2412         (znver1_ssemul_avx256_ps_load): Ditto.
2413         (znver1_ssemul_sd_pd): Ditto.
2414         (znver1_ssemul_sd_pd_load): Ditto.
2415         (znver2_ssemul_sd_pd): Ditto.
2416         (znver2_ssemul_sd_pd_load): Ditto.
2417         (znver1_ssemul_avx256_pd): Ditto.
2418         (znver1_ssemul_avx256_pd_load): Ditto.
2419         (znver1_sseimul): Ditto.
2420         (znver1_sseimul_avx256): Ditto.
2421         (znver1_sseimul_load): Ditto.
2422         (znver1_sseimul_avx256_load): Ditto.
2423         (znver1_sseimul_di): Ditto.
2424         (znver1_sseimul_load_di): Ditto.
2426 2022-11-16  Alexander Monakov  <amonakov@ispras.ru>
2428         PR target/87832
2429         * config/i386/znver.md (znver1_fdiv): New automaton.
2430         (znver1-fdiv): New unit.
2431         (znver1_fp_op_div): Correct unit and cycles in the reservation.
2432         (znver1_fp_op_div_load): Ditto.
2433         (znver1_fp_op_idiv_load): Ditto.
2434         (znver2_fp_op_idiv_load): Ditto.
2435         (znver1_ssediv_ss_ps): Ditto.
2436         (znver1_ssediv_ss_ps_load): Ditto.
2437         (znver1_ssediv_sd_pd): Ditto.
2438         (znver1_ssediv_sd_pd_load): Ditto.
2439         (znver1_ssediv_avx256_ps): Ditto.
2440         (znver1_ssediv_avx256_ps_load): Ditto.
2441         (znver1_ssediv_avx256_pd): Ditto.
2442         (znver1_ssediv_avx256_pd_load): Ditto.
2444 2022-11-16  Tobias Burnus  <tobias@codesourcery.com>
2445             Andrew Stubbs  <ams@codesourcery.com>
2447         * config/gcn/gcn-builtins.def (KERNARG_PTR): Add.
2448         * config/gcn/gcn.cc (gcn_init_builtin_types): Change siptr_type_node,
2449         sfptr_type_node and voidptr_type_node from FLAT to ADDR_SPACE_DEFAULT.
2450         (gcn_expand_builtin_1): Handle GCN_BUILTIN_KERNARG_PTR.
2451         (gcn_oacc_dim_size): Return in ADDR_SPACE_FLAT.
2453 2022-11-16  David Malcolm  <dmalcolm@redhat.com>
2455         * Makefile.in (ANALYZER_OBJS): Add analyzer/checker-event.o.
2457 2022-11-16  Max Filippov  <jcmvbkbc@gmail.com>
2459         PR target/107645
2460         * config/m68k/predicates.md (symbolic_operand): Return false
2461         when UNSPEC is under the CONST node.
2463 2022-11-16  Christoph Müllner  <christoph.muellner@vrull.eu>
2465         * doc/invoke.texi: Fix PRU/RISC-V option list formatting.
2467 2022-11-16  Tobias Burnus  <tobias@codesourcery.com>
2469         * config/nvptx/mkoffload.cc (process): Recognize '$nohost$...'
2470         besides tailing '$nohost' as being for reverse offload.
2472 2022-11-16  Jakub Jelinek  <jakub@redhat.com>
2474         PR tree-optimization/107668
2475         * range-op-float.cc (float_binary_op_range_finish): Set VARYING
2476         also when r is UNDEFINED.
2478 2022-11-16  Kewen Lin  <linkw@linux.ibm.com>
2480         PR rtl-optimization/90259
2481         * function.cc (rest_of_handle_thread_prologue_and_epilogue): Add
2482         parameter fun, and call function purge_all_dead_edges.
2483         (pass_thread_prologue_and_epilogue::execute): Name unamed parameter
2484         as fun, and use it for rest_of_handle_thread_prologue_and_epilogue.
2486 2022-11-15  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2488         * config/riscv/riscv-builtins.cc (struct riscv_builtin_description):
2489         add the pause machine-dependent builtin with no result and no
2490         arguments; mark it as always present (pause is a true hint
2491         that encodes into a fence-insn, if not supported with the new
2492         pause semantics).
2493         * config/riscv/riscv-ftypes.def: Add type for void -> void.
2494         * config/riscv/riscv.md (riscv_pause): Add risc_pause and
2495         UNSPECV_PAUSE
2496         * doc/extend.texi: Document __builtin_riscv_pause.
2497         * optabs.cc (maybe_gen_insn): Allow nops == 0 (void -> void).
2499 2022-11-15  David Faust  <david.faust@oracle.com>
2501         * config/bpf/bpf.cc (bpf_expand_builtin): Avoid use of uninitialized
2502         variable in error case.
2504 2022-11-15  David Malcolm  <dmalcolm@redhat.com>
2506         PR analyzer/106140
2507         * doc/invoke.texi (Static Analyzer Options): Add
2508         -Wanalyzer-fd-phase-mismatch and -Wanalyzer-fd-type-mismatch.  Add
2509         "socket", "bind", "listen", "accept", and "connect" to the list of
2510         functions known to the analyzer.
2512 2022-11-15  David Malcolm  <dmalcolm@redhat.com>
2514         PR analyzer/106302
2515         * Makefile.in (ANALYZER_OBJS): Add analyzer/analyzer-language.o.
2516         (GTFILES): Add analyzer/analyzer-language.cc.
2517         * doc/analyzer.texi: Document __analyzer_dump_named_constant.
2519 2022-11-15  Lewis Hyatt  <lhyatt@gmail.com>
2521         * json.h (class string): Add M_LEN member to store the length of
2522         the data.  Add constructor taking an explicit length.
2523         * json.cc (string::string):  Implement the new constructor.
2524         (string::print): Support printing strings that are not
2525         null-terminated.  Escape embdedded null bytes on output.
2526         (test_writing_strings): Test the new null-byte-related features of
2527         json::string.
2529 2022-11-15  Lewis Hyatt  <lhyatt@gmail.com>
2531         * diagnostic.cc (diagnostic_get_location_text): Use
2532         special_fname_builtin () rather than a hardcoded string (which was
2533         also incorrectly left untranslated previously.)
2534         * input.cc (special_fname_builtin): New function.
2535         (expand_location_1): Use special_fname_builtin () rather than a
2536         hard-coded string.
2537         (test_builtins): Likewise.
2538         * input.h (special_fname_builtin): Declare.
2540 2022-11-15  Lewis Hyatt  <lhyatt@gmail.com>
2542         * tree-diagnostic.cc (maybe_unwind_expanded_macro_loc): Handle ad-hoc
2543         location in return value of linemap_resolve_location().
2545 2022-11-15  Jonathan Wakely  <jwakely@redhat.com>
2547         * doc/cpp.texi (Pragmas): Use @item and @itemx for region
2548         pragmas.
2550 2022-11-15  Maciej W. Rozycki  <macro@embecosm.com>
2552         * ira-color.cc (assign_hard_reg): Remove duplicate `memset' over
2553         `full_costs'.
2555 2022-11-15  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2557         * config/aarch64/atomics.md
2558         (*aarch64_atomic_load<ALLX:mode>_rcpc_zext): New pattern.
2559         (*aarch64_atomic_load<ALLX:mode>_rcpc_sext): New pattern.
2561 2022-11-15  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2562             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2564         * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New Macro.
2565         (TARGET_RCPC): New Macro.
2566         * config/aarch64/atomics.md (atomic_load<mode>): Change into an expand.
2567         (aarch64_atomic_load<mode>_rcpc): New define_insn for ldapr.
2568         (aarch64_atomic_load<mode>): Rename of old define_insn for ldar.
2569         * config/aarch64/iterators.md (UNSPEC_LDAP): New unspec enum value.
2570         * doc/invoke.texi (rcpc): Ammend documentation to mention the effects
2571         on code generation.
2573 2022-11-15  Hongyu Wang  <hongyu.wang@intel.com>
2575         PR target/98167
2576         * match.pd: New perm + vector op patterns for int and fp vector.
2578 2022-11-15  Andrew Pinski  <apinski@marvell.com>
2580         * doc/invoke.texi: Remove Score option section.
2582 2022-11-15  Andrew Pinski  <apinski@marvell.com>
2584         * doc/extend.texi: Remove picoChip builtin section.
2585         * doc/invoke.texi: Remove picoChip option section.
2587 2022-11-15  Andrew Pinski  <apinski@marvell.com>
2589         * doc/extend.texi: Remove MeP documentation.
2590         * doc/invoke.texi: Remove MeP Options documentation.
2592 2022-11-15  Andrew Pinski  <apinski@marvell.com>
2594         * doc/invoke.texi: Fix opindex for mcall-aixdesc and mcall-openbsd.
2596 2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2598         Revert:
2599         2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2601         * config/riscv/riscv-cores.def (RISCV_TUNE): Add ventana-vt1.
2602         (RISCV_CORE): Ditto.
2603         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): Ditto.
2604         * config/riscv/riscv.cc: Add tune_info for ventana-vt1.
2605         * doc/invoke.texi: Document -mcpu= and -mtune with ventana-vt1.
2607 2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2609         Revert:
2610         2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2612         * config/riscv/riscv.cc (enum riscv_fusion_pairs): Add symbolic
2613         constants to identify supported fusion patterns.
2614         (struct riscv_tune_param): Add fusible_op field.
2615         (riscv_macro_fusion_p): Implement.
2616         (riscv_fusion_enabled_p): Implement.
2617         (riscv_macro_fusion_pair_p): Implement and recognize fusible
2618         idioms for Ventana VT1.
2619         (TARGET_SCHED_MACRO_FUSION_P): Point to riscv_macro_fusion_p.
2620         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Point to
2621         riscv_macro_fusion_pair_p.
2623 2022-11-14  Maciej W. Rozycki  <macro@embecosm.com>
2625         * ira-build.cc (create_insn_allocnos): Fix documentation.
2627 2022-11-14  Tamar Christina  <tamar.christina@arm.com>
2629         * match.pd: Remove returns.
2631 2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2633         * config/riscv/bitmanip.md (orcb<mode>2): Add orc.b as an
2634         unspec.
2635         * config/riscv/riscv.md: Add UNSPEC_ORC_B.
2637 2022-11-14  Tamar Christina  <tamar.christina@arm.com>
2639         * target.def: Fix typo.
2641 2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2643         * config/riscv/riscv.cc (enum riscv_fusion_pairs): Add symbolic
2644         constants to identify supported fusion patterns.
2645         (struct riscv_tune_param): Add fusible_op field.
2646         (riscv_macro_fusion_p): Implement.
2647         (riscv_fusion_enabled_p): Implement.
2648         (riscv_macro_fusion_pair_p): Implement and recognize fusible
2649         idioms for Ventana VT1.
2650         (TARGET_SCHED_MACRO_FUSION_P): Point to riscv_macro_fusion_p.
2651         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Point to
2652         riscv_macro_fusion_pair_p.
2654 2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2656         * config/riscv/riscv-cores.def (RISCV_TUNE): Add ventana-vt1.
2657         (RISCV_CORE): Ditto.
2658         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): Ditto.
2659         * config/riscv/riscv.cc: Add tune_info for ventana-vt1.
2660         * doc/invoke.texi: Document -mcpu= and -mtune with ventana-vt1.
2662 2022-11-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2664         * config/aarch64/aarch64-option-extensions.def (cssc): Define.
2665         * config/aarch64/aarch64.h (AARCH64_ISA_CSSC): Define.
2666         (TARGET_CSSC): Likewise.
2667         * config/aarch64/aarch64.md (*aarch64_abs<mode>2_cssc_ins): New define_insn.
2668         (abs<mode>2): Adjust for the above.
2669         (aarch64_umax<mode>3_insn): New define_insn.
2670         (umax<mode>3): Adjust for the above.
2671         (*aarch64_popcount<mode>2_cssc_insn): New define_insn.
2672         (popcount<mode>2): Adjust for the above.
2673         (<optab><mode>3): New define_insn.
2674         * config/aarch64/constraints.md (Usm): Define.
2675         (Uum): Likewise.
2676         * doc/invoke.texi (AArch64 options): Document +cssc.
2677         * config/aarch64/iterators.md (MAXMIN_NOUMAX): New code iterator.
2678         * config/aarch64/predicates.md (aarch64_sminmax_immediate): Define.
2679         (aarch64_sminmax_operand): Likewise.
2680         (aarch64_uminmax_immediate): Likewise.
2681         (aarch64_uminmax_operand): Likewise.
2683 2022-11-14  Tamar Christina  <tamar.christina@arm.com>
2685         * config/aarch64/aarch64-sve2.md (@aarch64_bitmask_udiv<mode>3): New.
2687 2022-11-14  Tamar Christina  <tamar.christina@arm.com>
2689         * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): New.
2690         * config/aarch64/aarch64.cc (aarch64_vectorize_can_special_div_by_constant): New.
2692 2022-11-14  Tamar Christina  <tamar.christina@arm.com>
2694         * expmed.h (expand_divmod): Pass tree operands down in addition to RTX.
2695         * expmed.cc (expand_divmod): Likewise.
2696         * explow.cc (round_push, align_dynamic_address): Likewise.
2697         * expr.cc (force_operand, expand_expr_divmod): Likewise.
2698         * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod):
2699         Likewise.
2700         * target.h: Include tree-core.
2701         * target.def (can_special_div_by_const): New.
2702         * targhooks.cc (default_can_special_div_by_const): New.
2703         * targhooks.h (default_can_special_div_by_const): New.
2704         * tree-vect-generic.cc (expand_vector_operation): Use it.
2705         * doc/tm.texi.in: Document it.
2706         * doc/tm.texi: Regenerate.
2707         * tree-vect-patterns.cc (vect_recog_divmod_pattern): Check for support.
2708         * tree-vect-stmts.cc (vectorizable_operation): Likewise.
2710 2022-11-14  Tamar Christina  <tamar.christina@arm.com>
2712         * generic-match-head.cc: Include langooks.
2713         * gimple-match-head.cc: Likewise.
2714         * match.pd: Add fneg/fadd rule.
2716 2022-11-14  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
2718         * config/arm/arm-cpus.in (cortex-x1c): Define new CPU.
2719         * config/arm/arm-tables.opt: Regenerate.
2720         * config/arm/arm-tune.md: Likewise.
2721         * doc/invoke.texi: Document Cortex-X1C CPU.
2723 2022-11-14  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
2725         * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-X3
2726         CPU.
2727         * config/aarch64/aarch64-tune.md: Regenerate.
2728         * doc/invoke.texi: Document Cortex-X3 CPU.
2730 2022-11-14  Andrew Pinski  <apinski@marvell.com>
2732         * doc/invoke.texi: Fix @opindex
2733         for m80387 option.
2735 2022-11-14  Andrew Pinski  <apinski@marvell.com>
2737         * doc/invoke.texi: Remove the front - from
2738         some @opindex.
2740 2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
2742         * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add ampere1a.
2743         * config/aarch64/aarch64-cost-tables.h: Add ampere1a_extra_costs.
2744         * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
2745         Define a new fusion pair for A+B+1/A-B-1 (i.e., add/subtract two
2746         registers and then +1/-1).
2747         * config/aarch64/aarch64-tune.md: Regenerate.
2748         * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
2749         idiom-matcher for the new fusion pair.
2750         * doc/invoke.texi: Add ampere1a.
2752 2022-11-14  Richard Biener  <rguenther@suse.de>
2754         * match.pd: Remove duplicates.
2756 2022-11-14  Martin Liska  <mliska@suse.cz>
2758         * doc/contrib.texi: Port from Sphinx.
2759         * doc/cpp.texi: Likewise.
2760         * doc/install.texi: Likewise.
2761         * doc/invoke.texi: Likewise.
2763 2022-11-14  Martin Liska  <mliska@suse.cz>
2765         Revert:
2766         2022-11-14  Martin Liska  <mliska@suse.cz>
2768         * doc/cpp/character-sets.rst: New file.
2769         * doc/cpp/conditional-syntax.rst: New file.
2770         * doc/cpp/conditional-uses.rst: New file.
2771         * doc/cpp/conditionals.rst: New file.
2772         * doc/cpp/conf.py: New file.
2773         * doc/cpp/copyright.rst: New file.
2774         * doc/cpp/deleted-code.rst: New file.
2775         * doc/cpp/diagnostics.rst: New file.
2776         * doc/cpp/environment-variables.rst: New file.
2777         * doc/cpp/gnu-free-documentation-license.rst: New file.
2778         * doc/cpp/header-files.rst: New file.
2779         * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: New file.
2780         * doc/cpp/header-files/computed-includes.rst: New file.
2781         * doc/cpp/header-files/include-operation.rst: New file.
2782         * doc/cpp/header-files/include-syntax.rst: New file.
2783         * doc/cpp/header-files/once-only-headers.rst: New file.
2784         * doc/cpp/header-files/search-path.rst: New file.
2785         * doc/cpp/header-files/system-headers.rst: New file.
2786         * doc/cpp/header-files/wrapper-headers.rst: New file.
2787         * doc/cpp/implementation-defined-behavior.rst: New file.
2788         * doc/cpp/implementation-details.rst: New file.
2789         * doc/cpp/implementation-limits.rst: New file.
2790         * doc/cpp/index.rst: New file.
2791         * doc/cpp/indices-and-tables.rst: New file.
2792         * doc/cpp/initial-processing.rst: New file.
2793         * doc/cpp/invocation.rst: New file.
2794         * doc/cpp/line-control.rst: New file.
2795         * doc/cpp/macros.rst: New file.
2796         * doc/cpp/macros/concatenation.rst: New file.
2797         * doc/cpp/macros/directives-within-macro-arguments.rst: New file.
2798         * doc/cpp/macros/function-like-macros.rst: New file.
2799         * doc/cpp/macros/macro-arguments.rst: New file.
2800         * doc/cpp/macros/macro-pitfalls.rst: New file.
2801         * doc/cpp/macros/object-like-macros.rst: New file.
2802         * doc/cpp/macros/predefined-macros.rst: New file.
2803         * doc/cpp/macros/stringizing.rst: New file.
2804         * doc/cpp/macros/undefining-and-redefining-macros.rst: New file.
2805         * doc/cpp/macros/variadic-macros.rst: New file.
2806         * doc/cpp/obsolete-features.rst: New file.
2807         * doc/cpp/other-directives.rst: New file.
2808         * doc/cpp/overview.rst: New file.
2809         * doc/cpp/pragmas.rst: New file.
2810         * doc/cpp/preprocessor-output.rst: New file.
2811         * doc/cpp/the-preprocessing-language.rst: New file.
2812         * doc/cpp/tokenization.rst: New file.
2813         * doc/cpp/traditional-lexical-analysis.rst: New file.
2814         * doc/cpp/traditional-macros.rst: New file.
2815         * doc/cpp/traditional-miscellany.rst: New file.
2816         * doc/cpp/traditional-mode.rst: New file.
2817         * doc/cpp/traditional-warnings.rst: New file.
2818         * doc/cppinternals/conf.py: New file.
2819         * doc/cppinternals/copyright.rst: New file.
2820         * doc/cppinternals/cppinternals.rst: New file.
2821         * doc/cppinternals/cpplib.rst: New file.
2822         * doc/cppinternals/files.rst: New file.
2823         * doc/cppinternals/index.rst: New file.
2824         * doc/cppinternals/indices-and-tables.rst: New file.
2825         * doc/cppinternals/internal-representation-of-macros.rst: New file.
2826         * doc/cppinternals/just-which-line-number-anyway.rst: New file.
2827         * doc/cppinternals/lexing-a-line.rst: New file.
2828         * doc/cppinternals/lexing-a-token.rst: New file.
2829         * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: New file.
2830         * doc/cppinternals/macro-expansion-overview.rst: New file.
2831         * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: New file.
2832         * doc/cppinternals/multiple-include-optimization.rst: New file.
2833         * doc/cppinternals/overview.rst: New file.
2834         * doc/cppinternals/representation-of-line-numbers.rst: New file.
2835         * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: New file.
2836         * doc/gcc/binary-compatibility.rst: New file.
2837         * doc/gcc/c++-implementation-defined-behavior.rst: New file.
2838         * doc/gcc/c-implementation-defined-behavior.rst: New file.
2839         * doc/gcc/c-implementation-defined-behavior/architecture.rst: New file.
2840         * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: New file.
2841         * doc/gcc/c-implementation-defined-behavior/characters.rst: New file.
2842         * doc/gcc/c-implementation-defined-behavior/declarators.rst: New file.
2843         * doc/gcc/c-implementation-defined-behavior/environment.rst: New file.
2844         * doc/gcc/c-implementation-defined-behavior/floating-point.rst: New file.
2845         * doc/gcc/c-implementation-defined-behavior/hints.rst: New file.
2846         * doc/gcc/c-implementation-defined-behavior/identifiers.rst: New file.
2847         * doc/gcc/c-implementation-defined-behavior/integers.rst: New file.
2848         * doc/gcc/c-implementation-defined-behavior/library-functions.rst: New file.
2849         * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: New file.
2850         * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: New file.
2851         * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: New file.
2852         * doc/gcc/c-implementation-defined-behavior/statements.rst: New file.
2853         * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst:
2854         New file.
2855         * doc/gcc/c-implementation-defined-behavior/translation.rst: New file.
2856         * doc/gcc/conditionally-supported-behavior.rst: New file.
2857         * doc/gcc/conf.py: New file.
2858         * doc/gcc/contributing-to-gcc-development.rst: New file.
2859         * doc/gcc/contributors-to-gcc.rst: New file.
2860         * doc/gcc/copyright.rst: New file.
2861         * doc/gcc/exception-handling.rst: New file.
2862         * doc/gcc/extensions-to-the-c++-language.rst: New file.
2863         * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: New file.
2864         * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: New file.
2865         * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst:
2866         New file.
2867         * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst:
2868         New file.
2869         * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: New file.
2870         * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst:
2871         New file.
2872         * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: New file.
2873         * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: New file.
2874         * doc/gcc/extensions-to-the-c++-language/type-traits.rst: New file.
2875         * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: New file.
2876         * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst:
2877         New file.
2878         * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: New file.
2879         * doc/gcc/extensions-to-the-c-language-family.rst: New file.
2880         * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: New file.
2881         * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: New file.
2882         * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: New file.
2883         * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst:
2884         New file.
2885         * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst:
2886         New file.
2887         * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: New file.
2888         * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: New file.
2889         * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: New file.
2890         * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst:
2891         New file.
2892         * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst:
2893         New file.
2894         * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst:
2895         New file.
2896         * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: New file.
2897         * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: New file.
2898         * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: New file.
2899         * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: New file.
2900         * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: New file.
2901         * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst:
2902         New file.
2903         * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: New file.
2904         * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: New file.
2905         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst:
2906         New file.
2907         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst:
2908         New file.
2909         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst:
2910         New file.
2911         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst:
2912         New file.
2913         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst:
2914         New file.
2915         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst:
2916         New file.
2917         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst:
2918         New file.
2919         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst:
2920         New file.
2921         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst:
2922         New file.
2923         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst:
2924         New file.
2925         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst:
2926         New file.
2927         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst:
2928         New file.
2929         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst:
2930         New file.
2931         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst:
2932         New file.
2933         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst:
2934         New file.
2935         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst:
2936         New file.
2937         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst:
2938         New file.
2939         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst:
2940         New file.
2941         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst:
2942         New file.
2943         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst:
2944         New file.
2945         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst:
2946         New file.
2947         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst:
2948         New file.
2949         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst:
2950         New file.
2951         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst:
2952         New file.
2953         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst:
2954         New file.
2955         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst:
2956         New file.
2957         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst:
2958         New file.
2959         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst:
2960         New file.
2961         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst:
2962         New file.
2963         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst:
2964         New file.
2965         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst:
2966         New file.
2967         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst:
2968         New file.
2969         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst:
2970         New file.
2971         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst:
2972         New file.
2973         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst:
2974         New file.
2975         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst:
2976         New file.
2977         * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: New file.
2978         * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst:
2979         New file.
2980         * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst:
2981         New file.
2982         * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: New file.
2983         * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: New file.
2984         * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: New file.
2985         * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst:
2986         New file.
2987         * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: New file.
2988         * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst:
2989         New file.
2990         * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: New file.
2991         * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: New file.
2992         * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst:
2993         New file.
2994         * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: New file.
2995         * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: New file.
2996         * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: New file.
2997         * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst:
2998         New file.
2999         * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: New file.
3000         * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst:
3001         New file.
3002         * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst:
3003         New file.
3004         * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: New file.
3005         * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: New file.
3006         * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: New file.
3007         * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst:
3008         New file.
3009         * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: New file.
3010         * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst:
3011         New file.
3012         * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst:
3013         New file.
3014         * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst:
3015         New file.
3016         * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst:
3017         New file.
3018         * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: New file.
3019         * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst:
3020         New file.
3021         * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: New file.
3022         * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst:
3023         New file.
3024         * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: New file.
3025         * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst:
3026         New file.
3027         * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: New file.
3028         * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst:
3029         New file.
3030         * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: New file.
3031         * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: New file.
3032         * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: New file.
3033         * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst:
3034         New file.
3035         * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst:
3036         New file.
3037         * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst:
3038         New file.
3039         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst:
3040         New file.
3041         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst:
3042         New file.
3043         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst:
3044         New file.
3045         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst:
3046         New file.
3047         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst:
3048         New file.
3049         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst:
3050         New file.
3051         * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst:
3052         New file.
3053         * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst:
3054         New file.
3055         * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst:
3056         New file.
3057         * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst:
3058         New file.
3059         * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst:
3060         New file.
3061         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst:
3062         New file.
3063         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst:
3064         New file.
3065         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst:
3066         New file.
3067         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst:
3068         New file.
3069         * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst:
3070         New file.
3071         * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst:
3072         New file.
3073         * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst:
3074         New file.
3075         * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst:
3076         New file.
3077         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst:
3078         New file.
3079         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst:
3080         New file.
3081         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst:
3082         New file.
3083         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst:
3084         New file.
3085         * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst:
3086         New file.
3087         * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst:
3088         New file.
3089         * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst:
3090         New file.
3091         * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst:
3092         New file.
3093         * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst:
3094         New file.
3095         * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst:
3096         New file.
3097         * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst:
3098         New file.
3099         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst:
3100         New file.
3101         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst:
3102         New file.
3103         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst:
3104         New file.
3105         * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: New file.
3106         * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: New file.
3107         * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst:
3108         New file.
3109         * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst:
3110         New file.
3111         * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst:
3112         New file.
3113         * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst:
3114         New file.
3115         * doc/gcc/funding.rst: New file.
3116         * doc/gcc/gcc-command-options.rst: New file.
3117         * doc/gcc/gcc-command-options/c++-modules.rst: New file.
3118         * doc/gcc/gcc-command-options/compiling-c++-programs.rst: New file.
3119         * doc/gcc/gcc-command-options/description.rst: New file.
3120         * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: New file.
3121         * doc/gcc/gcc-command-options/gcc-developer-options.rst: New file.
3122         * doc/gcc/gcc-command-options/machine-dependent-options.rst: New file.
3123         * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: New file.
3124         * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst:
3125         New file.
3126         * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: New file.
3127         * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: New file.
3128         * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: New file.
3129         * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: New file.
3130         * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: New file.
3131         * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: New file.
3132         * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: New file.
3133         * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: New file.
3134         * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: New file.
3135         * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: New file.
3136         * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: New file.
3137         * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: New file.
3138         * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: New file.
3139         * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: New file.
3140         * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: New file.
3141         * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: New file.
3142         * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: New file.
3143         * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: New file.
3144         * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: New file.
3145         * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst:
3146         New file.
3147         * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: New file.
3148         * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: New file.
3149         * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: New file.
3150         * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: New file.
3151         * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: New file.
3152         * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: New file.
3153         * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: New file.
3154         * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: New file.
3155         * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: New file.
3156         * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: New file.
3157         * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: New file.
3158         * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: New file.
3159         * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: New file.
3160         * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: New file.
3161         * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: New file.
3162         * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: New file.
3163         * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: New file.
3164         * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: New file.
3165         * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: New file.
3166         * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: New file.
3167         * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: New file.
3168         * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: New file.
3169         * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: New file.
3170         * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: New file.
3171         * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: New file.
3172         * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst:
3173         New file.
3174         * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: New file.
3175         * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: New file.
3176         * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: New file.
3177         * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: New file.
3178         * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: New file.
3179         * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: New file.
3180         * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: New file.
3181         * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: New file.
3182         * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: New file.
3183         * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: New file.
3184         * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: New file.
3185         * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: New file.
3186         * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: New file.
3187         * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: New file.
3188         * doc/gcc/gcc-command-options/option-summary.rst: New file.
3189         * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: New file.
3190         * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: New file.
3191         * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst:
3192         New file.
3193         * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: New file.
3194         * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: New file.
3195         * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: New file.
3196         * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: New file.
3197         * doc/gcc/gcc-command-options/options-for-directory-search.rst: New file.
3198         * doc/gcc/gcc-command-options/options-for-linking.rst: New file.
3199         * doc/gcc/gcc-command-options/options-that-control-optimization.rst: New file.
3200         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: New file.
3201         * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
3202         New file.
3203         * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: New file.
3204         * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: New file.
3205         * doc/gcc/gcc-command-options/program-instrumentation-options.rst: New file.
3206         * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst:
3207         New file.
3208         * doc/gcc/gcc-command-options/using-precompiled-headers.rst: New file.
3209         * doc/gcc/gcc.rst: New file.
3210         * doc/gcc/gcov-dump.rst: New file.
3211         * doc/gcc/gcov-tool.rst: New file.
3212         * doc/gcc/gcov.rst: New file.
3213         * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: New file.
3214         * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: New file.
3215         * doc/gcc/gcov/introduction-to-gcov.rst: New file.
3216         * doc/gcc/gcov/invoking-gcov.rst: New file.
3217         * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: New file.
3218         * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: New file.
3219         * doc/gcc/general-public-license-3.rst: New file.
3220         * doc/gcc/gnu-free-documentation-license.rst: New file.
3221         * doc/gcc/gnu-objective-c-features.rst: New file.
3222         * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: New file.
3223         * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: New file.
3224         * doc/gcc/gnu-objective-c-features/exceptions.rst: New file.
3225         * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: New file.
3226         * doc/gcc/gnu-objective-c-features/garbage-collection.rst: New file.
3227         * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: New file.
3228         * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: New file.
3229         * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: New file.
3230         * doc/gcc/gnu-objective-c-features/synchronization.rst: New file.
3231         * doc/gcc/gnu-objective-c-features/type-encoding.rst: New file.
3232         * doc/gcc/gnu.rst: New file.
3233         * doc/gcc/have-you-found-a-bug.rst: New file.
3234         * doc/gcc/how-and-where-to-report-bugs.rst: New file.
3235         * doc/gcc/how-to-get-help-with-gcc.rst: New file.
3236         * doc/gcc/index.rst: New file.
3237         * doc/gcc/indices-and-tables.rst: New file.
3238         * doc/gcc/known-causes-of-trouble-with-gcc.rst: New file.
3239         * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: New file.
3240         * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst:
3241         New file.
3242         * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst:
3243         New file.
3244         * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst:
3245         New file.
3246         * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: New file.
3247         * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: New file.
3248         * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: New file.
3249         * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: New file.
3250         * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst:
3251         New file.
3252         * doc/gcc/language-standards-supported-by-gcc.rst: New file.
3253         * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: New file.
3254         * doc/gcc/language-standards-supported-by-gcc/c-language.rst: New file.
3255         * doc/gcc/language-standards-supported-by-gcc/d-language.rst: New file.
3256         * doc/gcc/language-standards-supported-by-gcc/go-language.rst: New file.
3257         * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst:
3258         New file.
3259         * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: New file.
3260         * doc/gcc/lto-dump.rst: New file.
3261         * doc/gcc/programming-languages-supported-by-gcc.rst: New file.
3262         * doc/gcc/reporting-bugs.rst: New file.
3263         * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: New file.
3264         * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: New file.
3265         * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: New file.
3266         * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: New file.
3267         * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: New file.
3268         * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst:
3269         New file.
3270         * doc/gccint/analysis-and-representation-of-loops.rst: New file.
3271         * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: New file.
3272         * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: New file.
3273         * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: New file.
3274         * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: New file.
3275         * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: New file.
3276         * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: New file.
3277         * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst:
3278         New file.
3279         * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: New file.
3280         * doc/gccint/analyzer-internals.rst: New file.
3281         * doc/gccint/collect2.rst: New file.
3282         * doc/gccint/conf.py: New file.
3283         * doc/gccint/contributing-to-gcc-development.rst: New file.
3284         * doc/gccint/contributors-to-gcc.rst: New file.
3285         * doc/gccint/control-flow-graph.rst: New file.
3286         * doc/gccint/control-flow-graph/basic-blocks.rst: New file.
3287         * doc/gccint/control-flow-graph/edges.rst: New file.
3288         * doc/gccint/control-flow-graph/liveness-information.rst: New file.
3289         * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: New file.
3290         * doc/gccint/control-flow-graph/profile-information.rst: New file.
3291         * doc/gccint/copyright.rst: New file.
3292         * doc/gccint/debugging-the-analyzer.rst: New file.
3293         * doc/gccint/funding.rst: New file.
3294         * doc/gccint/gcc-and-portability.rst: New file.
3295         * doc/gccint/general-public-license-3.rst: New file.
3296         * doc/gccint/generic.rst: New file.
3297         * doc/gccint/generic/attributes-in-trees.rst: New file.
3298         * doc/gccint/generic/c-and-c++-trees.rst: New file.
3299         * doc/gccint/generic/declarations.rst: New file.
3300         * doc/gccint/generic/deficiencies.rst: New file.
3301         * doc/gccint/generic/expressions.rst: New file.
3302         * doc/gccint/generic/functions.rst: New file.
3303         * doc/gccint/generic/language-dependent-trees.rst: New file.
3304         * doc/gccint/generic/overview.rst: New file.
3305         * doc/gccint/generic/statements.rst: New file.
3306         * doc/gccint/generic/types.rst: New file.
3307         * doc/gccint/gimple-api.rst: New file.
3308         * doc/gccint/gimple.rst: New file.
3309         * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: New file.
3310         * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: New file.
3311         * doc/gccint/gimple/exception-handling.rst: New file.
3312         * doc/gccint/gimple/gimple-instruction-set.rst: New file.
3313         * doc/gccint/gimple/gimple-sequences.rst: New file.
3314         * doc/gccint/gimple/manipulating-gimple-statements.rst: New file.
3315         * doc/gccint/gimple/operands.rst: New file.
3316         * doc/gccint/gimple/sequence-iterators.rst: New file.
3317         * doc/gccint/gimple/statement-and-operand-traversals.rst: New file.
3318         * doc/gccint/gimple/temporaries.rst: New file.
3319         * doc/gccint/gimple/tuple-representation.rst: New file.
3320         * doc/gccint/gimple/tuple-specific-accessors.rst: New file.
3321         * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: New file.
3322         * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: New file.
3323         * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: New file.
3324         * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: New file.
3325         * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: New file.
3326         * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: New file.
3327         * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: New file.
3328         * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: New file.
3329         * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: New file.
3330         * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: New file.
3331         * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: New file.
3332         * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: New file.
3333         * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: New file.
3334         * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: New file.
3335         * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: New file.
3336         * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: New file.
3337         * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: New file.
3338         * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: New file.
3339         * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: New file.
3340         * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: New file.
3341         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: New file.
3342         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: New file.
3343         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: New file.
3344         * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: New file.
3345         * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: New file.
3346         * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: New file.
3347         * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: New file.
3348         * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: New file.
3349         * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: New file.
3350         * doc/gccint/gnu-free-documentation-license.rst: New file.
3351         * doc/gccint/guidelines-for-diagnostics.rst: New file.
3352         * doc/gccint/guidelines-for-options.rst: New file.
3353         * doc/gccint/host-common.rst: New file.
3354         * doc/gccint/host-configuration.rst: New file.
3355         * doc/gccint/host-filesystem.rst: New file.
3356         * doc/gccint/host-makefile-fragments.rst: New file.
3357         * doc/gccint/host-misc.rst: New file.
3358         * doc/gccint/index.rst: New file.
3359         * doc/gccint/indices-and-tables.rst: New file.
3360         * doc/gccint/interfacing-to-gcc-output.rst: New file.
3361         * doc/gccint/introduction.rst: New file.
3362         * doc/gccint/language-front-ends-in-gcc.rst: New file.
3363         * doc/gccint/link-time-optimization.rst: New file.
3364         * doc/gccint/link-time-optimization/design-overview.rst: New file.
3365         * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: New file.
3366         * doc/gccint/link-time-optimization/lto-file-sections.rst: New file.
3367         * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: New file.
3368         * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst:
3369         New file.
3370         * doc/gccint/machine-descriptions.rst: New file.
3371         * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: New file.
3372         * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: New file.
3373         * doc/gccint/machine-descriptions/conditional-execution.rst: New file.
3374         * doc/gccint/machine-descriptions/constant-definitions.rst: New file.
3375         * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: New file.
3376         * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: New file.
3377         * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: New file.
3378         * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: New file.
3379         * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: New file.
3380         * doc/gccint/machine-descriptions/example-of-defineinsn.rst: New file.
3381         * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: New file.
3382         * doc/gccint/machine-descriptions/instruction-attributes.rst: New file.
3383         * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: New file.
3384         * doc/gccint/machine-descriptions/iterators.rst: New file.
3385         * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: New file.
3386         * doc/gccint/machine-descriptions/operand-constraints.rst: New file.
3387         * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: New file.
3388         * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst:
3389         New file.
3390         * doc/gccint/machine-descriptions/predicates.rst: New file.
3391         * doc/gccint/machine-descriptions/rtl-template.rst: New file.
3392         * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: New file.
3393         * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: New file.
3394         * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: New file.
3395         * doc/gccint/makefile-fragments.rst: New file.
3396         * doc/gccint/match-and-simplify.rst: New file.
3397         * doc/gccint/memory-management-and-type-information.rst: New file.
3398         * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst:
3399         New file.
3400         * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst:
3401         New file.
3402         * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst:
3403         New file.
3404         * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: New file.
3405         * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst:
3406         New file.
3407         * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: New file.
3408         * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst:
3409         New file.
3410         * doc/gccint/option-file-format.rst: New file.
3411         * doc/gccint/option-properties.rst: New file.
3412         * doc/gccint/option-specification-files.rst: New file.
3413         * doc/gccint/passes-and-files-of-the-compiler.rst: New file.
3414         * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: New file.
3415         * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst:
3416         New file.
3417         * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: New file.
3418         * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: New file.
3419         * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: New file.
3420         * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: New file.
3421         * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: New file.
3422         * doc/gccint/plugins.rst: New file.
3423         * doc/gccint/plugins/building-gcc-plugins.rst: New file.
3424         * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: New file.
3425         * doc/gccint/plugins/giving-information-about-a-plugin.rst: New file.
3426         * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: New file.
3427         * doc/gccint/plugins/interacting-with-the-pass-manager.rst: New file.
3428         * doc/gccint/plugins/keeping-track-of-available-passes.rst: New file.
3429         * doc/gccint/plugins/loading-plugins.rst: New file.
3430         * doc/gccint/plugins/plugin-api.rst: New file.
3431         * doc/gccint/plugins/recording-information-about-pass-execution.rst: New file.
3432         * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: New file.
3433         * doc/gccint/rtl-representation.rst: New file.
3434         * doc/gccint/rtl-representation/access-to-operands.rst: New file.
3435         * doc/gccint/rtl-representation/access-to-special-operands.rst: New file.
3436         * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: New file.
3437         * doc/gccint/rtl-representation/bit-fields.rst: New file.
3438         * doc/gccint/rtl-representation/comparison-operations.rst: New file.
3439         * doc/gccint/rtl-representation/constant-expression-types.rst: New file.
3440         * doc/gccint/rtl-representation/conversions.rst: New file.
3441         * doc/gccint/rtl-representation/declarations.rst: New file.
3442         * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: New file.
3443         * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: New file.
3444         * doc/gccint/rtl-representation/insns.rst: New file.
3445         * doc/gccint/rtl-representation/machine-modes.rst: New file.
3446         * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: New file.
3447         * doc/gccint/rtl-representation/reading-rtl.rst: New file.
3448         * doc/gccint/rtl-representation/registers-and-memory.rst: New file.
3449         * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: New file.
3450         * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: New file.
3451         * doc/gccint/rtl-representation/rtl-object-types.rst: New file.
3452         * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: New file.
3453         * doc/gccint/rtl-representation/side-effect-expressions.rst: New file.
3454         * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: New file.
3455         * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: New file.
3456         * doc/gccint/rtl-representation/vector-operations.rst: New file.
3457         * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: New file.
3458         * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: New file.
3459         * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: New file.
3460         * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst:
3461         New file.
3462         * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst:
3463         New file.
3464         * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst:
3465         New file.
3466         * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: New file.
3467         * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst:
3468         New file.
3469         * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst:
3470         New file.
3471         * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: New file.
3472         * doc/gccint/source-tree-structure-and-build-system.rst: New file.
3473         * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst:
3474         New file.
3475         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: New file.
3476         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst:
3477         New file.
3478         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst:
3479         New file.
3480         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst:
3481         New file.
3482         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/building-documentation.rst:
3483         New file.
3484         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst:
3485         New file.
3486         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst:
3487         New file.
3488         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst:
3489         New file.
3490         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst:
3491         New file.
3492         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst:
3493         New file.
3494         * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst:
3495         New file.
3496         * doc/gccint/standard-header-file-directories.rst: New file.
3497         * doc/gccint/static-analyzer.rst: New file.
3498         * doc/gccint/target-macros.rst: New file.
3499         * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: New file.
3500         * doc/gccint/target-macros/addressing-modes.rst: New file.
3501         * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: New file.
3502         * doc/gccint/target-macros/anchored-addresses.rst: New file.
3503         * doc/gccint/target-macros/c++-abi-parameters.rst: New file.
3504         * doc/gccint/target-macros/condition-code-status.rst: New file.
3505         * doc/gccint/target-macros/controlling-debugging-information-format.rst: New file.
3506         * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: New file.
3507         * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: New file.
3508         * doc/gccint/target-macros/d-abi-parameters.rst: New file.
3509         * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: New file.
3510         * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst:
3511         New file.
3512         * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: New file.
3513         * doc/gccint/target-macros/defining-the-output-assembler-language.rst: New file.
3514         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst:
3515         New file.
3516         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
3517         New file.
3518         * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst:
3519         New file.
3520         * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
3521         New file.
3522         * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
3523         New file.
3524         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
3525         New file.
3526         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
3527         New file.
3528         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst:
3529         New file.
3530         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst:
3531         New file.
3532         * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
3533         New file.
3534         * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: New file.
3535         * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: New file.
3536         * doc/gccint/target-macros/emulating-tls.rst: New file.
3537         * doc/gccint/target-macros/implementing-the-varargs-macros.rst: New file.
3538         * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: New file.
3539         * doc/gccint/target-macros/layout-of-source-language-data-types.rst: New file.
3540         * doc/gccint/target-macros/miscellaneous-parameters.rst: New file.
3541         * doc/gccint/target-macros/mode-switching-instructions.rst: New file.
3542         * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst:
3543         New file.
3544         * doc/gccint/target-macros/position-independent-code.rst: New file.
3545         * doc/gccint/target-macros/register-classes.rst: New file.
3546         * doc/gccint/target-macros/register-usage.rst: New file.
3547         * doc/gccint/target-macros/run-time-target-specification.rst: New file.
3548         * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: New file.
3549         * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
3550         New file.
3551         * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst:
3552         New file.
3553         * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst:
3554         New file.
3555         * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst:
3556         New file.
3557         * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst:
3558         New file.
3559         * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst:
3560         New file.
3561         * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst:
3562         New file.
3563         * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst:
3564         New file.
3565         * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst:
3566         New file.
3567         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
3568         New file.
3569         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
3570         New file.
3571         * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst:
3572         New file.
3573         * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
3574         New file.
3575         * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst:
3576         New file.
3577         * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst:
3578         New file.
3579         * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst:
3580         New file.
3581         * doc/gccint/target-macros/storage-layout.rst: New file.
3582         * doc/gccint/target-macros/support-for-nested-functions.rst: New file.
3583         * doc/gccint/target-macros/the-global-targetm-variable.rst: New file.
3584         * doc/gccint/target-makefile-fragments.rst: New file.
3585         * doc/gccint/testsuites.rst: New test.
3586         * doc/gccint/testsuites/ada-language-testsuites.rst: New test.
3587         * doc/gccint/testsuites/c-language-testsuites.rst: New test.
3588         * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: New test.
3589         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst:
3590         New test.
3591         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst:
3592         New test.
3593         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst:
3594         New test.
3595         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst:
3596         New test.
3597         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst:
3598         New test.
3599         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst:
3600         New test.
3601         * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: New test.
3602         * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: New test.
3603         * doc/gccint/testsuites/support-for-testing-gcov.rst: New test.
3604         * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: New test.
3605         * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: New test.
3606         * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: New test.
3607         * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: New test.
3608         * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: New test.
3609         * doc/gccint/the-gcc-low-level-runtime-library.rst: New file.
3610         * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst:
3611         New file.
3612         * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst:
3613         New file.
3614         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst:
3615         New file.
3616         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst:
3617         New file.
3618         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst:
3619         New file.
3620         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst:
3621         New file.
3622         * doc/gccint/the-language.rst: New file.
3623         * doc/gccint/user-experience-guidelines.rst: New file.
3624         * doc/install/binaries.rst: New file.
3625         * doc/install/building.rst: New file.
3626         * doc/install/building/building-a-cross-compiler.rst: New file.
3627         * doc/install/building/building-a-native-compiler.rst: New file.
3628         * doc/install/building/building-in-parallel.rst: New file.
3629         * doc/install/building/building-the-ada-compiler.rst: New file.
3630         * doc/install/building/building-the-d-compiler.rst: New file.
3631         * doc/install/building/building-with-profile-feedback.rst: New file.
3632         * doc/install/conf.py: New file.
3633         * doc/install/configuration.rst: New file.
3634         * doc/install/copyright.rst: New file.
3635         * doc/install/downloading-gcc.rst: New file.
3636         * doc/install/final-installation.rst: New file.
3637         * doc/install/gnu-free-documentation-license.rst: New file.
3638         * doc/install/host-target-specific-installation-notes-for-gcc.rst: New file.
3639         * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: New test.
3640         * doc/install/how-to-interpret-test-results.rst: New file.
3641         * doc/install/index.rst: New file.
3642         * doc/install/indices-and-tables.rst: New file.
3643         * doc/install/installing-gcc.rst: New file.
3644         * doc/install/passing-options-and-running-multiple-testsuites.rst: New test.
3645         * doc/install/prerequisites.rst: New file.
3646         * doc/install/submitting-test-results.rst: New file.
3647         * doc/install/testing.rst: New file.
3649 2022-11-14  Martin Liska  <mliska@suse.cz>
3651         * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: Revert.
3653 2022-11-14  Martin Liska  <mliska@suse.cz>
3655         Revert:
3656         2022-11-14  Martin Liska  <mliska@suse.cz>
3658         * common/common-target.def: Port to RST.
3659         * target.def: Port to RST.
3661 2022-11-14  Martin Liska  <mliska@suse.cz>
3663         Revert:
3664         2022-11-09  Martin Liska  <mliska@suse.cz>
3666         * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: Use tm.rst.in file.
3667         * doc/gccint/target-macros/addressing-modes.rst: Likewise.
3668         * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: Likewise.
3669         * doc/gccint/target-macros/anchored-addresses.rst: Likewise.
3670         * doc/gccint/target-macros/c++-abi-parameters.rst: Likewise.
3671         * doc/gccint/target-macros/condition-code-status.rst: Likewise.
3672         * doc/gccint/target-macros/controlling-debugging-information-format.rst: Likewise.
3673         * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: Likewise.
3674         * doc/gccint/target-macros/d-abi-parameters.rst: Likewise.
3675         * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: Likewise.
3676         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
3677         Likewise.
3678         * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
3679         Likewise.
3680         * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
3681         Likewise.
3682         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
3683         Likewise.
3684         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
3685         Likewise.
3686         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst:
3687         Likewise.
3688         * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
3689         Likewise.
3690         * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: Likewise.
3691         * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: Likewise.
3692         * doc/gccint/target-macros/emulating-tls.rst: Likewise.
3693         * doc/gccint/target-macros/implementing-the-varargs-macros.rst: Likewise.
3694         * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: Likewise.
3695         * doc/gccint/target-macros/layout-of-source-language-data-types.rst: Likewise.
3696         * doc/gccint/target-macros/miscellaneous-parameters.rst: Likewise.
3697         * doc/gccint/target-macros/mode-switching-instructions.rst: Likewise.
3698         * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst:
3699         Likewise.
3700         * doc/gccint/target-macros/register-classes.rst: Likewise.
3701         * doc/gccint/target-macros/register-usage.rst: Likewise.
3702         * doc/gccint/target-macros/run-time-target-specification.rst: Likewise.
3703         * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
3704         Likewise.
3705         * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst:
3706         Likewise.
3707         * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst:
3708         Likewise.
3709         * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst:
3710         Likewise.
3711         * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst:
3712         Likewise.
3713         * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst:
3714         Likewise.
3715         * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst:
3716         Likewise.
3717         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
3718         Likewise.
3719         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
3720         Likewise.
3721         * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst:
3722         Likewise.
3723         * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
3724         Likewise.
3725         * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst:
3726         Likewise.
3727         * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst:
3728         Likewise.
3729         * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst:
3730         Likewise.
3731         * doc/gccint/target-macros/storage-layout.rst: Likewise.
3732         * doc/gccint/target-macros/support-for-nested-functions.rst: Likewise.
3734 2022-11-14  Martin Liska  <mliska@suse.cz>
3736         Revert:
3737         2022-11-14  Martin Liska  <mliska@suse.cz>
3739         * Makefile.in: Support Sphinx based documentation.
3740         * configure: Regenerate.
3741         * configure.ac: Support Sphinx based documentation.
3742         * genhooks.cc (struct s_hook): Emit tm.rst.in file.
3744 2022-11-14  Martin Liska  <mliska@suse.cz>
3746         Revert:
3747         2022-11-09  Martin Liska  <mliska@suse.cz>
3749         * doc/gccint/target-macros/tm.rst.in: New file.
3751 2022-11-14  Martin Liska  <mliska@suse.cz>
3753         Revert:
3754         2022-11-14  Martin Liska  <mliska@suse.cz>
3756         * doc/analyzer.texi: Removed.
3757         * doc/avr-mmcu.texi: Removed.
3758         * doc/bugreport.texi: Removed.
3759         * doc/cfg.texi: Removed.
3760         * doc/collect2.texi: Removed.
3761         * doc/compat.texi: Removed.
3762         * doc/configfiles.texi: Removed.
3763         * doc/configterms.texi: Removed.
3764         * doc/contrib.texi: Removed.
3765         * doc/contribute.texi: Removed.
3766         * doc/cpp.texi: Removed.
3767         * doc/cppdiropts.texi: Removed.
3768         * doc/cppenv.texi: Removed.
3769         * doc/cppinternals.texi: Removed.
3770         * doc/cppopts.texi: Removed.
3771         * doc/cppwarnopts.texi: Removed.
3772         * doc/extend.texi: Removed.
3773         * doc/fragments.texi: Removed.
3774         * doc/frontends.texi: Removed.
3775         * doc/gcc.texi: Removed.
3776         * doc/gccint.texi: Removed.
3777         * doc/gcov-dump.texi: Removed.
3778         * doc/gcov-tool.texi: Removed.
3779         * doc/gcov.texi: Removed.
3780         * doc/generic.texi: Removed.
3781         * doc/gimple.texi: Removed.
3782         * doc/gnu.texi: Removed.
3783         * doc/gty.texi: Removed.
3784         * doc/headerdirs.texi: Removed.
3785         * doc/hostconfig.texi: Removed.
3786         * doc/implement-c.texi: Removed.
3787         * doc/implement-cxx.texi: Removed.
3788         * doc/include/fdl.texi: Removed.
3789         * doc/include/funding.texi: Removed.
3790         * doc/include/gcc-common.texi: Removed.
3791         * doc/include/gpl_v3.texi: Removed.
3792         * doc/install.texi: Removed.
3793         * doc/interface.texi: Removed.
3794         * doc/invoke.texi: Removed.
3795         * doc/languages.texi: Removed.
3796         * doc/libgcc.texi: Removed.
3797         * doc/loop.texi: Removed.
3798         * doc/lto-dump.texi: Removed.
3799         * doc/lto.texi: Removed.
3800         * doc/makefile.texi: Removed.
3801         * doc/match-and-simplify.texi: Removed.
3802         * doc/md.texi: Removed.
3803         * doc/objc.texi: Removed.
3804         * doc/optinfo.texi: Removed.
3805         * doc/options.texi: Removed.
3806         * doc/passes.texi: Removed.
3807         * doc/plugins.texi: Removed.
3808         * doc/poly-int.texi: Removed.
3809         * doc/portability.texi: Removed.
3810         * doc/rtl.texi: Removed.
3811         * doc/service.texi: Removed.
3812         * doc/sourcebuild.texi: Removed.
3813         * doc/standards.texi: Removed.
3814         * doc/tm.texi: Removed.
3815         * doc/tree-ssa.texi: Removed.
3816         * doc/trouble.texi: Removed.
3817         * doc/ux.texi: Removed.
3818         * doc/tm.texi.in: Removed.
3820 2022-11-14  Martin Liska  <mliska@suse.cz>
3822         Revert:
3823         2022-11-09  Martin Liska  <mliska@suse.cz>
3825         * target.def: Use proper lexers for target macros.
3826         * doc/gccint/target-macros/tm.rst.in: Re-generate.
3828 2022-11-14  Martin Liska  <mliska@suse.cz>
3830         Revert:
3831         2022-11-09  Martin Liska  <mliska@suse.cz>
3833         * Makefile.in: Support --with-sphinx-build.
3834         * configure.ac:
3835         * configure: Regenerate.
3837 2022-11-14  Martin Liska  <mliska@suse.cz>
3839         Revert:
3840         2022-11-14  Martin Liska  <mliska@suse.cz>
3842         * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst:
3843         Fix cross manual refs.
3844         * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst:
3845         Likewise.
3847 2022-11-14  Martin Liska  <mliska@suse.cz>
3849         Revert:
3850         2022-11-09  Martin Liska  <mliska@suse.cz>
3852         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
3853         Do not include tm.rst.in.
3854         * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
3855         Likewise.
3856         * doc/gccint/target-macros/run-time-target-specification.rst:
3857         Likewise.
3859 2022-11-14  Martin Liska  <mliska@suse.cz>
3861         Revert:
3862         2022-11-09  Martin Liska  <mliska@suse.cz>
3864         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
3865         Port to RST.
3866         * doc/gccint/target-macros/storage-layout.rst: Likewise.
3867         * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: Sync with master.
3868         * doc/gcc/gcc-command-options/option-summary.rst: Likewise.
3870 2022-11-14  Martin Liska  <mliska@suse.cz>
3872         Revert:
3873         2022-11-09  Martin Liska  <mliska@suse.cz>
3875         * Makefile.in: Support installation if sphinx-build is missing.
3877 2022-11-14  Martin Liska  <mliska@suse.cz>
3879         Revert:
3880         2022-11-09  Martin Liska  <mliska@suse.cz>
3882         * Makefile.in: Add vpath default for .rst files.
3883         * config/avr/avr-devices.cc: For port RST.
3884         * config/avr/avr-mcus.def: Update path.
3885         * config/avr/gen-avr-mmcu-texi.cc: Moved to...
3886         * config/avr/gen-avr-mmcu-rst.cc: ...here.
3887         * config/avr/t-avr: Update to rst.
3888         * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: Re-generate.
3890 2022-11-14  Martin Liska  <mliska@suse.cz>
3892         Revert:
3893         2022-11-09  Martin Liska  <mliska@suse.cz>
3895         * opts.cc (get_option_html_page): Port to sphinx URLs.
3896         (get_option_url): Likewise.
3897         (test_get_option_html_page): Likewise.
3899 2022-11-14  Martin Liska  <mliska@suse.cz>
3901         Revert:
3902         2022-11-14  Martin Liska  <mliska@suse.cz>
3904         * doc/cpp/character-sets.rst:
3905         Add trailing newline.
3906         * doc/cpp/conditional-syntax.rst:
3907         Add trailing newline.
3908         * doc/cpp/conditional-uses.rst:
3909         Add trailing newline.
3910         * doc/cpp/conditionals.rst:
3911         Add trailing newline.
3912         * doc/cpp/copyright.rst:
3913         Add trailing newline.
3914         * doc/cpp/deleted-code.rst:
3915         Add trailing newline.
3916         * doc/cpp/diagnostics.rst:
3917         Add trailing newline.
3918         * doc/cpp/environment-variables.rst:
3919         Add trailing newline.
3920         * doc/cpp/gnu-free-documentation-license.rst:
3921         Add trailing newline.
3922         * doc/cpp/header-files.rst:
3923         Add trailing newline.
3924         * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst:
3925         Add trailing newline.
3926         * doc/cpp/header-files/computed-includes.rst:
3927         Add trailing newline.
3928         * doc/cpp/header-files/include-operation.rst:
3929         Add trailing newline.
3930         * doc/cpp/header-files/include-syntax.rst:
3931         Add trailing newline.
3932         * doc/cpp/header-files/once-only-headers.rst:
3933         Add trailing newline.
3934         * doc/cpp/header-files/search-path.rst:
3935         Add trailing newline.
3936         * doc/cpp/header-files/system-headers.rst:
3937         Add trailing newline.
3938         * doc/cpp/header-files/wrapper-headers.rst:
3939         Add trailing newline.
3940         * doc/cpp/implementation-defined-behavior.rst:
3941         Add trailing newline.
3942         * doc/cpp/implementation-details.rst:
3943         Add trailing newline.
3944         * doc/cpp/implementation-limits.rst:
3945         Add trailing newline.
3946         * doc/cpp/index.rst:
3947         Add trailing newline.
3948         * doc/cpp/indices-and-tables.rst:
3949         Add trailing newline.
3950         * doc/cpp/initial-processing.rst:
3951         Add trailing newline.
3952         * doc/cpp/invocation.rst:
3953         Add trailing newline.
3954         * doc/cpp/line-control.rst:
3955         Add trailing newline.
3956         * doc/cpp/macros.rst:
3957         Add trailing newline.
3958         * doc/cpp/macros/concatenation.rst:
3959         Add trailing newline.
3960         * doc/cpp/macros/directives-within-macro-arguments.rst:
3961         Add trailing newline.
3962         * doc/cpp/macros/function-like-macros.rst:
3963         Add trailing newline.
3964         * doc/cpp/macros/macro-arguments.rst:
3965         Add trailing newline.
3966         * doc/cpp/macros/macro-pitfalls.rst:
3967         Add trailing newline.
3968         * doc/cpp/macros/object-like-macros.rst:
3969         Add trailing newline.
3970         * doc/cpp/macros/predefined-macros.rst:
3971         Add trailing newline.
3972         * doc/cpp/macros/stringizing.rst:
3973         Add trailing newline.
3974         * doc/cpp/macros/undefining-and-redefining-macros.rst:
3975         Add trailing newline.
3976         * doc/cpp/macros/variadic-macros.rst:
3977         Add trailing newline.
3978         * doc/cpp/obsolete-features.rst:
3979         Add trailing newline.
3980         * doc/cpp/other-directives.rst:
3981         Add trailing newline.
3982         * doc/cpp/overview.rst:
3983         Add trailing newline.
3984         * doc/cpp/pragmas.rst:
3985         Add trailing newline.
3986         * doc/cpp/preprocessor-output.rst:
3987         Add trailing newline.
3988         * doc/cpp/the-preprocessing-language.rst:
3989         Add trailing newline.
3990         * doc/cpp/tokenization.rst:
3991         Add trailing newline.
3992         * doc/cpp/traditional-lexical-analysis.rst:
3993         Add trailing newline.
3994         * doc/cpp/traditional-macros.rst:
3995         Add trailing newline.
3996         * doc/cpp/traditional-miscellany.rst:
3997         Add trailing newline.
3998         * doc/cpp/traditional-mode.rst:
3999         Add trailing newline.
4000         * doc/cpp/traditional-warnings.rst:
4001         Add trailing newline.
4002         * doc/cppinternals/copyright.rst:
4003         Add trailing newline.
4004         * doc/cppinternals/cppinternals.rst:
4005         Add trailing newline.
4006         * doc/cppinternals/cpplib.rst:
4007         Add trailing newline.
4008         * doc/cppinternals/files.rst:
4009         Add trailing newline.
4010         * doc/cppinternals/index.rst:
4011         Add trailing newline.
4012         * doc/cppinternals/indices-and-tables.rst:
4013         Add trailing newline.
4014         * doc/cppinternals/internal-representation-of-macros.rst:
4015         Add trailing newline.
4016         * doc/cppinternals/just-which-line-number-anyway.rst:
4017         Add trailing newline.
4018         * doc/cppinternals/lexing-a-line.rst:
4019         Add trailing newline.
4020         * doc/cppinternals/lexing-a-token.rst:
4021         Add trailing newline.
4022         * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst:
4023         Add trailing newline.
4024         * doc/cppinternals/macro-expansion-overview.rst:
4025         Add trailing newline.
4026         * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst:
4027         Add trailing newline.
4028         * doc/cppinternals/multiple-include-optimization.rst:
4029         Add trailing newline.
4030         * doc/cppinternals/overview.rst:
4031         Add trailing newline.
4032         * doc/cppinternals/representation-of-line-numbers.rst:
4033         Add trailing newline.
4034         * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst:
4035         Add trailing newline.
4036         * doc/gcc/binary-compatibility.rst:
4037         Add trailing newline.
4038         * doc/gcc/c++-implementation-defined-behavior.rst:
4039         Add trailing newline.
4040         * doc/gcc/c-implementation-defined-behavior.rst:
4041         Add trailing newline.
4042         * doc/gcc/c-implementation-defined-behavior/architecture.rst:
4043         Add trailing newline.
4044         * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst:
4045         Add trailing newline.
4046         * doc/gcc/c-implementation-defined-behavior/characters.rst:
4047         Add trailing newline.
4048         * doc/gcc/c-implementation-defined-behavior/declarators.rst:
4049         Add trailing newline.
4050         * doc/gcc/c-implementation-defined-behavior/environment.rst:
4051         Add trailing newline.
4052         * doc/gcc/c-implementation-defined-behavior/floating-point.rst:
4053         Add trailing newline.
4054         * doc/gcc/c-implementation-defined-behavior/hints.rst:
4055         Add trailing newline.
4056         * doc/gcc/c-implementation-defined-behavior/identifiers.rst:
4057         Add trailing newline.
4058         * doc/gcc/c-implementation-defined-behavior/integers.rst:
4059         Add trailing newline.
4060         * doc/gcc/c-implementation-defined-behavior/library-functions.rst:
4061         Add trailing newline.
4062         * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst:
4063         Add trailing newline.
4064         * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst:
4065         Add trailing newline.
4066         * doc/gcc/c-implementation-defined-behavior/qualifiers.rst:
4067         Add trailing newline.
4068         * doc/gcc/c-implementation-defined-behavior/statements.rst:
4069         Add trailing newline.
4070         * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst:
4071         Add trailing newline.
4072         * doc/gcc/c-implementation-defined-behavior/translation.rst:
4073         Add trailing newline.
4074         * doc/gcc/conditionally-supported-behavior.rst:
4075         Add trailing newline.
4076         * doc/gcc/contributing-to-gcc-development.rst:
4077         Add trailing newline.
4078         * doc/gcc/contributors-to-gcc.rst:
4079         Add trailing newline.
4080         * doc/gcc/copyright.rst:
4081         Add trailing newline.
4082         * doc/gcc/exception-handling.rst:
4083         Add trailing newline.
4084         * doc/gcc/extensions-to-the-c++-language.rst:
4085         Add trailing newline.
4086         * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst:
4087         Add trailing newline.
4088         * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst:
4089         Add trailing newline.
4090         * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst:
4091         Add trailing newline.
4092         * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst:
4093         Add trailing newline.
4094         * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst:
4095         Add trailing newline.
4096         * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst:
4097         Add trailing newline.
4098         * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst:
4099         Add trailing newline.
4100         * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst:
4101         Add trailing newline.
4102         * doc/gcc/extensions-to-the-c++-language/type-traits.rst:
4103         Add trailing newline.
4104         * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst:
4105         Add trailing newline.
4106         * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst:
4107         Add trailing newline.
4108         * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst:
4109         Add trailing newline.
4110         * doc/gcc/extensions-to-the-c-language-family.rst:
4111         Add trailing newline.
4112         * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst:
4113         Add trailing newline.
4114         * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst:
4115         Add trailing newline.
4116         * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst:
4117         Add trailing newline.
4118         * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst:
4119         Add trailing newline.
4120         * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst:
4121         Add trailing newline.
4122         * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst:
4123         Add trailing newline.
4124         * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst:
4125         Add trailing newline.
4126         * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst:
4127         Add trailing newline.
4128         * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst:
4129         Add trailing newline.
4130         * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst:
4131         Add trailing newline.
4132         * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst:
4133         Add trailing newline.
4134         * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst:
4135         Add trailing newline.
4136         * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst:
4137         Add trailing newline.
4138         * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst:
4139         Add trailing newline.
4140         * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst:
4141         Add trailing newline.
4142         * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst:
4143         Add trailing newline.
4144         * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst:
4145         Add trailing newline.
4146         * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst:
4147         Add trailing newline.
4148         * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst:
4149         Add trailing newline.
4150         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst:
4151         Add trailing newline.
4152         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst:
4153         Add trailing newline.
4154         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst:
4155         Add trailing newline.
4156         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst:
4157         Add trailing newline.
4158         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst:
4159         Add trailing newline.
4160         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst:
4161         Add trailing newline.
4162         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst:
4163         Add trailing newline.
4164         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst:
4165         Add trailing newline.
4166         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst:
4167         Add trailing newline.
4168         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst:
4169         Add trailing newline.
4170         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst:
4171         Add trailing newline.
4172         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst:
4173         Add trailing newline.
4174         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst:
4175         Add trailing newline.
4176         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst:
4177         Add trailing newline.
4178         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst:
4179         Add trailing newline.
4180         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst:
4181         Add trailing newline.
4182         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst:
4183         Add trailing newline.
4184         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst:
4185         Add trailing newline.
4186         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst:
4187         Add trailing newline.
4188         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst:
4189         Add trailing newline.
4190         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst:
4191         Add trailing newline.
4192         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst:
4193         Add trailing newline.
4194         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst:
4195         Add trailing newline.
4196         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst:
4197         Add trailing newline.
4198         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst:
4199         Add trailing newline.
4200         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst:
4201         Add trailing newline.
4202         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst:
4203         Add trailing newline.
4204         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst:
4205         Add trailing newline.
4206         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst:
4207         Add trailing newline.
4208         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst:
4209         Add trailing newline.
4210         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst:
4211         Add trailing newline.
4212         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst:
4213         Add trailing newline.
4214         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst:
4215         Add trailing newline.
4216         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst:
4217         Add trailing newline.
4218         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst:
4219         Add trailing newline.
4220         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst:
4221         Add trailing newline.
4222         * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst:
4223         Add trailing newline.
4224         * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst:
4225         Add trailing newline.
4226         * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst:
4227         Add trailing newline.
4228         * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst:
4229         Add trailing newline.
4230         * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst:
4231         Add trailing newline.
4232         * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst:
4233         Add trailing newline.
4234         * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst:
4235         Add trailing newline.
4236         * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst:
4237         Add trailing newline.
4238         * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst:
4239         Add trailing newline.
4240         * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst:
4241         Add trailing newline.
4242         * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst:
4243         Add trailing newline.
4244         * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst:
4245         Add trailing newline.
4246         * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst:
4247         Add trailing newline.
4248         * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst:
4249         Add trailing newline.
4250         * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst:
4251         Add trailing newline.
4252         * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst:
4253         Add trailing newline.
4254         * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst:
4255         Add trailing newline.
4256         * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst:
4257         Add trailing newline.
4258         * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst:
4259         Add trailing newline.
4260         * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst:
4261         Add trailing newline.
4262         * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst:
4263         Add trailing newline.
4264         * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst:
4265         Add trailing newline.
4266         * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst:
4267         Add trailing newline.
4268         * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst:
4269         Add trailing newline.
4270         * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst:
4271         Add trailing newline.
4272         * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst:
4273         Add trailing newline.
4274         * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst:
4275         Add trailing newline.
4276         * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst:
4277         Add trailing newline.
4278         * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst:
4279         Add trailing newline.
4280         * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst:
4281         Add trailing newline.
4282         * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst:
4283         Add trailing newline.
4284         * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst:
4285         Add trailing newline.
4286         * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst:
4287         Add trailing newline.
4288         * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst:
4289         Add trailing newline.
4290         * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst:
4291         Add trailing newline.
4292         * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst:
4293         Add trailing newline.
4294         * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst:
4295         Add trailing newline.
4296         * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst:
4297         Add trailing newline.
4298         * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst:
4299         Add trailing newline.
4300         * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst:
4301         Add trailing newline.
4302         * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst:
4303         Add trailing newline.
4304         * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst:
4305         Add trailing newline.
4306         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst:
4307         Add trailing newline.
4308         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst:
4309         Add trailing newline.
4310         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst:
4311         Add trailing newline.
4312         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst:
4313         Add trailing newline.
4314         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst:
4315         Add trailing newline.
4316         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst:
4317         Add trailing newline.
4318         * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst:
4319         Add trailing newline.
4320         * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst:
4321         Add trailing newline.
4322         * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst:
4323         Add trailing newline.
4324         * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst:
4325         Add trailing newline.
4326         * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst:
4327         Add trailing newline.
4328         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst:
4329         Add trailing newline.
4330         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst:
4331         Add trailing newline.
4332         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst:
4333         Add trailing newline.
4334         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst:
4335         Add trailing newline.
4336         * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst:
4337         Add trailing newline.
4338         * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst:
4339         Add trailing newline.
4340         * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst:
4341         Add trailing newline.
4342         * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst:
4343         Add trailing newline.
4344         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst:
4345         Add trailing newline.
4346         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst:
4347         Add trailing newline.
4348         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst:
4349         Add trailing newline.
4350         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst:
4351         Add trailing newline.
4352         * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst:
4353         Add trailing newline.
4354         * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst:
4355         Add trailing newline.
4356         * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst:
4357         Add trailing newline.
4358         * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst:
4359         Add trailing newline.
4360         * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst:
4361         Add trailing newline.
4362         * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst:
4363         Add trailing newline.
4364         * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst:
4365         Add trailing newline.
4366         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst:
4367         Add trailing newline.
4368         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst:
4369         Add trailing newline.
4370         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst:
4371         Add trailing newline.
4372         * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst:
4373         Add trailing newline.
4374         * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst:
4375         Add trailing newline.
4376         * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst:
4377         Add trailing newline.
4378         * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst:
4379         Add trailing newline.
4380         * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst:
4381         Add trailing newline.
4382         * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst:
4383         Add trailing newline.
4384         * doc/gcc/funding.rst:
4385         Add trailing newline.
4386         * doc/gcc/gcc-command-options.rst:
4387         Add trailing newline.
4388         * doc/gcc/gcc-command-options/compiling-c++-programs.rst:
4389         Add trailing newline.
4390         * doc/gcc/gcc-command-options/description.rst:
4391         Add trailing newline.
4392         * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst:
4393         Add trailing newline.
4394         * doc/gcc/gcc-command-options/gcc-developer-options.rst:
4395         Add trailing newline.
4396         * doc/gcc/gcc-command-options/machine-dependent-options.rst:
4397         Add trailing newline.
4398         * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst:
4399         Add trailing newline.
4400         * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst:
4401         Add trailing newline.
4402         * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst:
4403         Add trailing newline.
4404         * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst:
4405         Add trailing newline.
4406         * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst:
4407         Add trailing newline.
4408         * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst:
4409         Add trailing newline.
4410         * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst:
4411         Add trailing newline.
4412         * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst:
4413         Add trailing newline.
4414         * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst:
4415         Add trailing newline.
4416         * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst:
4417         Add trailing newline.
4418         * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst:
4419         Add trailing newline.
4420         * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst:
4421         Add trailing newline.
4422         * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst:
4423         Add trailing newline.
4424         * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst:
4425         Add trailing newline.
4426         * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst:
4427         Add trailing newline.
4428         * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst:
4429         Add trailing newline.
4430         * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst:
4431         Add trailing newline.
4432         * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst:
4433         Add trailing newline.
4434         * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst:
4435         Add trailing newline.
4436         * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst:
4437         Add trailing newline.
4438         * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst:
4439         Add trailing newline.
4440         * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst:
4441         Add trailing newline.
4442         * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst:
4443         Add trailing newline.
4444         * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst:
4445         Add trailing newline.
4446         * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst:
4447         Add trailing newline.
4448         * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst:
4449         Add trailing newline.
4450         * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst:
4451         Add trailing newline.
4452         * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst:
4453         Add trailing newline.
4454         * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst:
4455         Add trailing newline.
4456         * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst:
4457         Add trailing newline.
4458         * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst:
4459         Add trailing newline.
4460         * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst:
4461         Add trailing newline.
4462         * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst:
4463         Add trailing newline.
4464         * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst:
4465         Add trailing newline.
4466         * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst:
4467         Add trailing newline.
4468         * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst:
4469         Add trailing newline.
4470         * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst:
4471         Add trailing newline.
4472         * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst:
4473         Add trailing newline.
4474         * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst:
4475         Add trailing newline.
4476         * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst:
4477         Add trailing newline.
4478         * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst:
4479         Add trailing newline.
4480         * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst:
4481         Add trailing newline.
4482         * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst:
4483         Add trailing newline.
4484         * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst:
4485         Add trailing newline.
4486         * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst:
4487         Add trailing newline.
4488         * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst:
4489         Add trailing newline.
4490         * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst:
4491         Add trailing newline.
4492         * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst:
4493         Add trailing newline.
4494         * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst:
4495         Add trailing newline.
4496         * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst:
4497         Add trailing newline.
4498         * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst:
4499         Add trailing newline.
4500         * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst:
4501         Add trailing newline.
4502         * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst:
4503         Add trailing newline.
4504         * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst:
4505         Add trailing newline.
4506         * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst:
4507         Add trailing newline.
4508         * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst:
4509         Add trailing newline.
4510         * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst:
4511         Add trailing newline.
4512         * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst:
4513         Add trailing newline.
4514         * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst:
4515         Add trailing newline.
4516         * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst:
4517         Add trailing newline.
4518         * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst:
4519         Add trailing newline.
4520         * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst:
4521         Add trailing newline.
4522         * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst:
4523         Add trailing newline.
4524         * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst:
4525         Add trailing newline.
4526         * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst:
4527         Add trailing newline.
4528         * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst:
4529         Add trailing newline.
4530         * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst:
4531         Add trailing newline.
4532         * doc/gcc/gcc-command-options/options-for-directory-search.rst:
4533         Add trailing newline.
4534         * doc/gcc/gcc-command-options/options-for-linking.rst:
4535         Add trailing newline.
4536         * doc/gcc/gcc-command-options/options-that-control-optimization.rst:
4537         Add trailing newline.
4538         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst:
4539         Add trailing newline.
4540         * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
4541         Add trailing newline.
4542         * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst:
4543         Add trailing newline.
4544         * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst:
4545         Add trailing newline.
4546         * doc/gcc/gcc-command-options/program-instrumentation-options.rst:
4547         Add trailing newline.
4548         * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst:
4549         Add trailing newline.
4550         * doc/gcc/gcc-command-options/using-precompiled-headers.rst:
4551         Add trailing newline.
4552         * doc/gcc/gcc.rst:
4553         Add trailing newline.
4554         * doc/gcc/gcov-dump.rst:
4555         Add trailing newline.
4556         * doc/gcc/gcov-tool.rst:
4557         Add trailing newline.
4558         * doc/gcc/gcov.rst:
4559         Add trailing newline.
4560         * doc/gcc/gcov/brief-description-of-gcov-data-files.rst:
4561         Add trailing newline.
4562         * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst:
4563         Add trailing newline.
4564         * doc/gcc/gcov/introduction-to-gcov.rst:
4565         Add trailing newline.
4566         * doc/gcc/gcov/invoking-gcov.rst:
4567         Add trailing newline.
4568         * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst:
4569         Add trailing newline.
4570         * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst:
4571         Add trailing newline.
4572         * doc/gcc/general-public-license-3.rst:
4573         Add trailing newline.
4574         * doc/gcc/gnu-free-documentation-license.rst:
4575         Add trailing newline.
4576         * doc/gcc/gnu-objective-c-features.rst:
4577         Add trailing newline.
4578         * doc/gcc/gnu-objective-c-features/compatibilityalias.rst:
4579         Add trailing newline.
4580         * doc/gcc/gnu-objective-c-features/constant-string-objects.rst:
4581         Add trailing newline.
4582         * doc/gcc/gnu-objective-c-features/exceptions.rst:
4583         Add trailing newline.
4584         * doc/gcc/gnu-objective-c-features/fast-enumeration.rst:
4585         Add trailing newline.
4586         * doc/gcc/gnu-objective-c-features/garbage-collection.rst:
4587         Add trailing newline.
4588         * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst:
4589         Add trailing newline.
4590         * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst:
4591         Add trailing newline.
4592         * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst:
4593         Add trailing newline.
4594         * doc/gcc/gnu-objective-c-features/synchronization.rst:
4595         Add trailing newline.
4596         * doc/gcc/gnu-objective-c-features/type-encoding.rst:
4597         Add trailing newline.
4598         * doc/gcc/gnu.rst:
4599         Add trailing newline.
4600         * doc/gcc/have-you-found-a-bug.rst:
4601         Add trailing newline.
4602         * doc/gcc/how-and-where-to-report-bugs.rst:
4603         Add trailing newline.
4604         * doc/gcc/how-to-get-help-with-gcc.rst:
4605         Add trailing newline.
4606         * doc/gcc/index.rst:
4607         Add trailing newline.
4608         * doc/gcc/indices-and-tables.rst:
4609         Add trailing newline.
4610         * doc/gcc/known-causes-of-trouble-with-gcc.rst:
4611         Add trailing newline.
4612         * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst:
4613         Add trailing newline.
4614         * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst:
4615         Add trailing newline.
4616         * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst:
4617         Add trailing newline.
4618         * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst:
4619         Add trailing newline.
4620         * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst:
4621         Add trailing newline.
4622         * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst:
4623         Add trailing newline.
4624         * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst:
4625         Add trailing newline.
4626         * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst:
4627         Add trailing newline.
4628         * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst:
4629         Add trailing newline.
4630         * doc/gcc/language-standards-supported-by-gcc.rst:
4631         Add trailing newline.
4632         * doc/gcc/language-standards-supported-by-gcc/c++-language.rst:
4633         Add trailing newline.
4634         * doc/gcc/language-standards-supported-by-gcc/c-language.rst:
4635         Add trailing newline.
4636         * doc/gcc/language-standards-supported-by-gcc/d-language.rst:
4637         Add trailing newline.
4638         * doc/gcc/language-standards-supported-by-gcc/go-language.rst:
4639         Add trailing newline.
4640         * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst:
4641         Add trailing newline.
4642         * doc/gcc/lto-dump.rst:
4643         Add trailing newline.
4644         * doc/gcc/programming-languages-supported-by-gcc.rst:
4645         Add trailing newline.
4646         * doc/gcc/reporting-bugs.rst:
4647         Add trailing newline.
4648         * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst:
4649         Add trailing newline.
4650         * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst:
4651         Add trailing newline.
4652         * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst:
4653         Add trailing newline.
4654         * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst:
4655         Add trailing newline.
4656         * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst:
4657         Add trailing newline.
4658         * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst:
4659         Add trailing newline.
4660         * doc/gccint/analysis-and-representation-of-loops.rst:
4661         Add trailing newline.
4662         * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst:
4663         Add trailing newline.
4664         * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst:
4665         Add trailing newline.
4666         * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst:
4667         Add trailing newline.
4668         * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst:
4669         Add trailing newline.
4670         * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst:
4671         Add trailing newline.
4672         * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst:
4673         Add trailing newline.
4674         * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst:
4675         Add trailing newline.
4676         * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst:
4677         Add trailing newline.
4678         * doc/gccint/analyzer-internals.rst:
4679         Add trailing newline.
4680         * doc/gccint/collect2.rst:
4681         Add trailing newline.
4682         * doc/gccint/contributing-to-gcc-development.rst:
4683         Add trailing newline.
4684         * doc/gccint/contributors-to-gcc.rst:
4685         Add trailing newline.
4686         * doc/gccint/control-flow-graph.rst:
4687         Add trailing newline.
4688         * doc/gccint/control-flow-graph/basic-blocks.rst:
4689         Add trailing newline.
4690         * doc/gccint/control-flow-graph/edges.rst:
4691         Add trailing newline.
4692         * doc/gccint/control-flow-graph/liveness-information.rst:
4693         Add trailing newline.
4694         * doc/gccint/control-flow-graph/maintaining-the-cfg.rst:
4695         Add trailing newline.
4696         * doc/gccint/control-flow-graph/profile-information.rst:
4697         Add trailing newline.
4698         * doc/gccint/copyright.rst:
4699         Add trailing newline.
4700         * doc/gccint/debugging-the-analyzer.rst:
4701         Add trailing newline.
4702         * doc/gccint/funding.rst:
4703         Add trailing newline.
4704         * doc/gccint/gcc-and-portability.rst:
4705         Add trailing newline.
4706         * doc/gccint/general-public-license-3.rst:
4707         Add trailing newline.
4708         * doc/gccint/generic.rst:
4709         Add trailing newline.
4710         * doc/gccint/generic/attributes-in-trees.rst:
4711         Add trailing newline.
4712         * doc/gccint/generic/c-and-c++-trees.rst:
4713         Add trailing newline.
4714         * doc/gccint/generic/declarations.rst:
4715         Add trailing newline.
4716         * doc/gccint/generic/deficiencies.rst:
4717         Add trailing newline.
4718         * doc/gccint/generic/expressions.rst:
4719         Add trailing newline.
4720         * doc/gccint/generic/functions.rst:
4721         Add trailing newline.
4722         * doc/gccint/generic/language-dependent-trees.rst:
4723         Add trailing newline.
4724         * doc/gccint/generic/overview.rst:
4725         Add trailing newline.
4726         * doc/gccint/generic/statements.rst:
4727         Add trailing newline.
4728         * doc/gccint/generic/types.rst:
4729         Add trailing newline.
4730         * doc/gccint/gimple-api.rst:
4731         Add trailing newline.
4732         * doc/gccint/gimple.rst:
4733         Add trailing newline.
4734         * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst:
4735         Add trailing newline.
4736         * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst:
4737         Add trailing newline.
4738         * doc/gccint/gimple/exception-handling.rst:
4739         Add trailing newline.
4740         * doc/gccint/gimple/gimple-instruction-set.rst:
4741         Add trailing newline.
4742         * doc/gccint/gimple/gimple-sequences.rst:
4743         Add trailing newline.
4744         * doc/gccint/gimple/manipulating-gimple-statements.rst:
4745         Add trailing newline.
4746         * doc/gccint/gimple/operands.rst:
4747         Add trailing newline.
4748         * doc/gccint/gimple/sequence-iterators.rst:
4749         Add trailing newline.
4750         * doc/gccint/gimple/statement-and-operand-traversals.rst:
4751         Add trailing newline.
4752         * doc/gccint/gimple/temporaries.rst:
4753         Add trailing newline.
4754         * doc/gccint/gimple/tuple-representation.rst:
4755         Add trailing newline.
4756         * doc/gccint/gimple/tuple-specific-accessors.rst:
4757         Add trailing newline.
4758         * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst:
4759         Add trailing newline.
4760         * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst:
4761         Add trailing newline.
4762         * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst:
4763         Add trailing newline.
4764         * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst:
4765         Add trailing newline.
4766         * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst:
4767         Add trailing newline.
4768         * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst:
4769         Add trailing newline.
4770         * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst:
4771         Add trailing newline.
4772         * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst:
4773         Add trailing newline.
4774         * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst:
4775         Add trailing newline.
4776         * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst:
4777         Add trailing newline.
4778         * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst:
4779         Add trailing newline.
4780         * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst:
4781         Add trailing newline.
4782         * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst:
4783         Add trailing newline.
4784         * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst:
4785         Add trailing newline.
4786         * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst:
4787         Add trailing newline.
4788         * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst:
4789         Add trailing newline.
4790         * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst:
4791         Add trailing newline.
4792         * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst:
4793         Add trailing newline.
4794         * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst:
4795         Add trailing newline.
4796         * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst:
4797         Add trailing newline.
4798         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst:
4799         Add trailing newline.
4800         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst:
4801         Add trailing newline.
4802         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst:
4803         Add trailing newline.
4804         * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst:
4805         Add trailing newline.
4806         * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst:
4807         Add trailing newline.
4808         * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst:
4809         Add trailing newline.
4810         * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst:
4811         Add trailing newline.
4812         * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst:
4813         Add trailing newline.
4814         * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst:
4815         Add trailing newline.
4816         * doc/gccint/gnu-free-documentation-license.rst:
4817         Add trailing newline.
4818         * doc/gccint/guidelines-for-diagnostics.rst:
4819         Add trailing newline.
4820         * doc/gccint/guidelines-for-options.rst:
4821         Add trailing newline.
4822         * doc/gccint/host-common.rst:
4823         Add trailing newline.
4824         * doc/gccint/host-configuration.rst:
4825         Add trailing newline.
4826         * doc/gccint/host-filesystem.rst:
4827         Add trailing newline.
4828         * doc/gccint/host-makefile-fragments.rst:
4829         Add trailing newline.
4830         * doc/gccint/host-misc.rst:
4831         Add trailing newline.
4832         * doc/gccint/index.rst:
4833         Add trailing newline.
4834         * doc/gccint/indices-and-tables.rst:
4835         Add trailing newline.
4836         * doc/gccint/interfacing-to-gcc-output.rst:
4837         Add trailing newline.
4838         * doc/gccint/introduction.rst:
4839         Add trailing newline.
4840         * doc/gccint/language-front-ends-in-gcc.rst:
4841         Add trailing newline.
4842         * doc/gccint/link-time-optimization.rst:
4843         Add trailing newline.
4844         * doc/gccint/link-time-optimization/design-overview.rst:
4845         Add trailing newline.
4846         * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst:
4847         Add trailing newline.
4848         * doc/gccint/link-time-optimization/lto-file-sections.rst:
4849         Add trailing newline.
4850         * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst:
4851         Add trailing newline.
4852         * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst:
4853         Add trailing newline.
4854         * doc/gccint/machine-descriptions.rst:
4855         Add trailing newline.
4856         * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst:
4857         Add trailing newline.
4858         * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst:
4859         Add trailing newline.
4860         * doc/gccint/machine-descriptions/conditional-execution.rst:
4861         Add trailing newline.
4862         * doc/gccint/machine-descriptions/constant-definitions.rst:
4863         Add trailing newline.
4864         * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst:
4865         Add trailing newline.
4866         * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst:
4867         Add trailing newline.
4868         * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst:
4869         Add trailing newline.
4870         * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst:
4871         Add trailing newline.
4872         * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst:
4873         Add trailing newline.
4874         * doc/gccint/machine-descriptions/example-of-defineinsn.rst:
4875         Add trailing newline.
4876         * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst:
4877         Add trailing newline.
4878         * doc/gccint/machine-descriptions/instruction-attributes.rst:
4879         Add trailing newline.
4880         * doc/gccint/machine-descriptions/interdependence-of-patterns.rst:
4881         Add trailing newline.
4882         * doc/gccint/machine-descriptions/iterators.rst:
4883         Add trailing newline.
4884         * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst:
4885         Add trailing newline.
4886         * doc/gccint/machine-descriptions/operand-constraints.rst:
4887         Add trailing newline.
4888         * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst:
4889         Add trailing newline.
4890         * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst:
4891         Add trailing newline.
4892         * doc/gccint/machine-descriptions/predicates.rst:
4893         Add trailing newline.
4894         * doc/gccint/machine-descriptions/rtl-template.rst:
4895         Add trailing newline.
4896         * doc/gccint/machine-descriptions/rtl-templates-transformations.rst:
4897         Add trailing newline.
4898         * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst:
4899         Add trailing newline.
4900         * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst:
4901         Add trailing newline.
4902         * doc/gccint/makefile-fragments.rst:
4903         Add trailing newline.
4904         * doc/gccint/match-and-simplify.rst:
4905         Add trailing newline.
4906         * doc/gccint/memory-management-and-type-information.rst:
4907         Add trailing newline.
4908         * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst:
4909         Add trailing newline.
4910         * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst:
4911         Add trailing newline.
4912         * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst:
4913         Add trailing newline.
4914         * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst:
4915         Add trailing newline.
4916         * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst:
4917         Add trailing newline.
4918         * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst:
4919         Add trailing newline.
4920         * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst:
4921         Add trailing newline.
4922         * doc/gccint/option-file-format.rst:
4923         Add trailing newline.
4924         * doc/gccint/option-properties.rst:
4925         Add trailing newline.
4926         * doc/gccint/option-specification-files.rst:
4927         Add trailing newline.
4928         * doc/gccint/passes-and-files-of-the-compiler.rst:
4929         Add trailing newline.
4930         * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst:
4931         Add trailing newline.
4932         * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst:
4933         Add trailing newline.
4934         * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst:
4935         Add trailing newline.
4936         * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst:
4937         Add trailing newline.
4938         * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst:
4939         Add trailing newline.
4940         * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst:
4941         Add trailing newline.
4942         * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst:
4943         Add trailing newline.
4944         * doc/gccint/plugins.rst:
4945         Add trailing newline.
4946         * doc/gccint/plugins/building-gcc-plugins.rst:
4947         Add trailing newline.
4948         * doc/gccint/plugins/controlling-which-passes-are-being-run.rst:
4949         Add trailing newline.
4950         * doc/gccint/plugins/giving-information-about-a-plugin.rst:
4951         Add trailing newline.
4952         * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst:
4953         Add trailing newline.
4954         * doc/gccint/plugins/interacting-with-the-pass-manager.rst:
4955         Add trailing newline.
4956         * doc/gccint/plugins/keeping-track-of-available-passes.rst:
4957         Add trailing newline.
4958         * doc/gccint/plugins/loading-plugins.rst:
4959         Add trailing newline.
4960         * doc/gccint/plugins/plugin-api.rst:
4961         Add trailing newline.
4962         * doc/gccint/plugins/recording-information-about-pass-execution.rst:
4963         Add trailing newline.
4964         * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst:
4965         Add trailing newline.
4966         * doc/gccint/rtl-representation.rst:
4967         Add trailing newline.
4968         * doc/gccint/rtl-representation/access-to-operands.rst:
4969         Add trailing newline.
4970         * doc/gccint/rtl-representation/access-to-special-operands.rst:
4971         Add trailing newline.
4972         * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst:
4973         Add trailing newline.
4974         * doc/gccint/rtl-representation/bit-fields.rst:
4975         Add trailing newline.
4976         * doc/gccint/rtl-representation/comparison-operations.rst:
4977         Add trailing newline.
4978         * doc/gccint/rtl-representation/constant-expression-types.rst:
4979         Add trailing newline.
4980         * doc/gccint/rtl-representation/conversions.rst:
4981         Add trailing newline.
4982         * doc/gccint/rtl-representation/declarations.rst:
4983         Add trailing newline.
4984         * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst:
4985         Add trailing newline.
4986         * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst:
4987         Add trailing newline.
4988         * doc/gccint/rtl-representation/insns.rst:
4989         Add trailing newline.
4990         * doc/gccint/rtl-representation/machine-modes.rst:
4991         Add trailing newline.
4992         * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst:
4993         Add trailing newline.
4994         * doc/gccint/rtl-representation/reading-rtl.rst:
4995         Add trailing newline.
4996         * doc/gccint/rtl-representation/registers-and-memory.rst:
4997         Add trailing newline.
4998         * doc/gccint/rtl-representation/rtl-classes-and-formats.rst:
4999         Add trailing newline.
5000         * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst:
5001         Add trailing newline.
5002         * doc/gccint/rtl-representation/rtl-object-types.rst:
5003         Add trailing newline.
5004         * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst:
5005         Add trailing newline.
5006         * doc/gccint/rtl-representation/side-effect-expressions.rst:
5007         Add trailing newline.
5008         * doc/gccint/rtl-representation/structure-sharing-assumptions.rst:
5009         Add trailing newline.
5010         * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst:
5011         Add trailing newline.
5012         * doc/gccint/rtl-representation/vector-operations.rst:
5013         Add trailing newline.
5014         * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst:
5015         Add trailing newline.
5016         * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst:
5017         Add trailing newline.
5018         * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst:
5019         Add trailing newline.
5020         * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst:
5021         Add trailing newline.
5022         * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst:
5023         Add trailing newline.
5024         * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst:
5025         Add trailing newline.
5026         * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst:
5027         Add trailing newline.
5028         * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst:
5029         Add trailing newline.
5030         * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst:
5031         Add trailing newline.
5032         * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst:
5033         Add trailing newline.
5034         * doc/gccint/source-tree-structure-and-build-system.rst:
5035         Add trailing newline.
5036         * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst:
5037         Add trailing newline.
5038         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst:
5039         Add trailing newline.
5040         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst:
5041         Add trailing newline.
5042         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst:
5043         Add trailing newline.
5044         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst:
5045         Add trailing newline.
5046         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst:
5047         Add trailing newline.
5048         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst:
5049         Add trailing newline.
5050         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst:
5051         Add trailing newline.
5052         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst:
5053         Add trailing newline.
5054         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst:
5055         Add trailing newline.
5056         * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst:
5057         Add trailing newline.
5058         * doc/gccint/standard-header-file-directories.rst:
5059         Add trailing newline.
5060         * doc/gccint/static-analyzer.rst:
5061         Add trailing newline.
5062         * doc/gccint/target-macros.rst:
5063         Add trailing newline.
5064         * doc/gccint/target-macros/controlling-debugging-information-format.rst:
5065         Add trailing newline.
5066         * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst:
5067         Add trailing newline.
5068         * doc/gccint/target-macros/cross-compilation-and-floating-point.rst:
5069         Add trailing newline.
5070         * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst:
5071         Add trailing newline.
5072         * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst:
5073         Add trailing newline.
5074         * doc/gccint/target-macros/defining-the-output-assembler-language.rst:
5075         Add trailing newline.
5076         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst:
5077         Add trailing newline.
5078         * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst:
5079         Add trailing newline.
5080         * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
5081         Add trailing newline.
5082         * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
5083         Add trailing newline.
5084         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
5085         Add trailing newline.
5086         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
5087         Add trailing newline.
5088         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst:
5089         Add trailing newline.
5090         * doc/gccint/target-macros/implicit-calls-to-library-routines.rst:
5091         Add trailing newline.
5092         * doc/gccint/target-macros/layout-of-source-language-data-types.rst:
5093         Add trailing newline.
5094         * doc/gccint/target-macros/position-independent-code.rst:
5095         Add trailing newline.
5096         * doc/gccint/target-macros/register-usage.rst:
5097         Add trailing newline.
5098         * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst:
5099         Add trailing newline.
5100         * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
5101         Add trailing newline.
5102         * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst:
5103         Add trailing newline.
5104         * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst:
5105         Add trailing newline.
5106         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
5107         Add trailing newline.
5108         * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
5109         Add trailing newline.
5110         * doc/gccint/target-macros/support-for-nested-functions.rst:
5111         Add trailing newline.
5112         * doc/gccint/target-macros/the-global-targetm-variable.rst:
5113         Add trailing newline.
5114         * doc/gccint/target-makefile-fragments.rst:
5115         Add trailing newline.
5116         * doc/gccint/testsuites.rst:
5117         Add trailing newline.
5118         * doc/gccint/testsuites/ada-language-testsuites.rst:
5119         Add trailing newline.
5120         * doc/gccint/testsuites/c-language-testsuites.rst:
5121         Add trailing newline.
5122         * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst:
5123         Add trailing newline.
5124         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst:
5125         Add trailing newline.
5126         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst:
5127         Add trailing newline.
5128         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst:
5129         Add trailing newline.
5130         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst:
5131         Add trailing newline.
5132         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst:
5133         Add trailing newline.
5134         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst:
5135         Add trailing newline.
5136         * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst:
5137         Add trailing newline.
5138         * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst:
5139         Add trailing newline.
5140         * doc/gccint/testsuites/support-for-testing-gcov.rst:
5141         Add trailing newline.
5142         * doc/gccint/testsuites/support-for-testing-gimple-passes.rst:
5143         Add trailing newline.
5144         * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst:
5145         Add trailing newline.
5146         * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst:
5147         Add trailing newline.
5148         * doc/gccint/testsuites/support-for-testing-rtl-passes.rst:
5149         Add trailing newline.
5150         * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst:
5151         Add trailing newline.
5152         * doc/gccint/the-gcc-low-level-runtime-library.rst:
5153         Add trailing newline.
5154         * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst:
5155         Add trailing newline.
5156         * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst:
5157         Add trailing newline.
5158         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst:
5159         Add trailing newline.
5160         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst:
5161         Add trailing newline.
5162         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst:
5163         Add trailing newline.
5164         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst:
5165         Add trailing newline.
5166         * doc/gccint/the-language.rst:
5167         Add trailing newline.
5168         * doc/gccint/user-experience-guidelines.rst:
5169         Add trailing newline.
5170         * doc/install/binaries.rst:
5171         Add trailing newline.
5172         * doc/install/building.rst:
5173         Add trailing newline.
5174         * doc/install/building/building-a-cross-compiler.rst:
5175         Add trailing newline.
5176         * doc/install/building/building-a-native-compiler.rst:
5177         Add trailing newline.
5178         * doc/install/building/building-in-parallel.rst:
5179         Add trailing newline.
5180         * doc/install/building/building-the-ada-compiler.rst:
5181         Add trailing newline.
5182         * doc/install/building/building-the-d-compiler.rst:
5183         Add trailing newline.
5184         * doc/install/building/building-with-profile-feedback.rst:
5185         Add trailing newline.
5186         * doc/install/configuration.rst:
5187         Add trailing newline.
5188         * doc/install/copyright.rst:
5189         Add trailing newline.
5190         * doc/install/downloading-gcc.rst:
5191         Add trailing newline.
5192         * doc/install/final-installation.rst:
5193         Add trailing newline.
5194         * doc/install/gnu-free-documentation-license.rst:
5195         Add trailing newline.
5196         * doc/install/host-target-specific-installation-notes-for-gcc.rst:
5197         Add trailing newline.
5198         * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst:
5199         Add trailing newline.
5200         * doc/install/how-to-interpret-test-results.rst:
5201         Add trailing newline.
5202         * doc/install/index.rst:
5203         Add trailing newline.
5204         * doc/install/indices-and-tables.rst:
5205         Add trailing newline.
5206         * doc/install/installing-gcc.rst:
5207         Add trailing newline.
5208         * doc/install/passing-options-and-running-multiple-testsuites.rst:
5209         Add trailing newline.
5210         * doc/install/prerequisites.rst:
5211         Add trailing newline.
5212         * doc/install/submitting-test-results.rst:
5213         Add trailing newline.
5214         * doc/install/testing.rst:
5215         Add trailing newline.
5217 2022-11-14  Martin Liska  <mliska@suse.cz>
5219         Revert:
5220         2022-11-14  Martin Liska  <mliska@suse.cz>
5222         * Makefile.in: Use new install URL.
5223         * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst:
5224         Use intersphinx link.
5225         * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
5226         Use new URL.
5227         * doc/gccint/source-tree-structure-and-build-system.rst: Use
5228         intersphinx link.
5229         * doc/install/host-target-specific-installation-notes-for-gcc.rst: Likewise.
5230         * doc/install/installing-gcc.rst: Likewise.
5232 2022-11-14  Martin Liska  <mliska@suse.cz>
5234         Revert:
5235         2022-11-09  Martin Liska  <mliska@suse.cz>
5236                     Sinan  <sinan.lin@linux.alibaba.com>
5238         * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst:
5239         Add missing variable name.
5241 2022-11-14  Martin Liska  <mliska@suse.cz>
5243         Revert:
5244         2022-11-14  Martin Liska  <mliska@suse.cz>
5246         * doc/cpp/conf.py: Add newline at last line.
5247         * doc/cppinternals/conf.py: Add newline at last line.
5248         * doc/gcc/conf.py: Add newline at last line.
5249         * doc/gccint/conf.py: Add newline at last line.
5250         * doc/install/conf.py: Add newline at last line.
5252 2022-11-14  Martin Liska  <mliska@suse.cz>
5254         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst:
5255         Revert.
5257 2022-11-14  Martin Liska  <mliska@suse.cz>
5259         * doc/cpp/pragmas.rst: Revert.
5261 2022-11-14  Martin Liska  <mliska@suse.cz>
5263         * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Revert.
5265 2022-11-14  Martin Liska  <mliska@suse.cz>
5267         * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: Revert.
5269 2022-11-14  Martin Liska  <mliska@suse.cz>
5271         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Revert.
5272         * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: Revert.
5274 2022-11-14  Martin Liska  <mliska@suse.cz>
5276         Revert:
5277         2022-11-13  Jonathan Wakely  <jwakely@redhat.com>
5279         * doc/install/testing.rst: Remove anachronism about separate
5280         source tarballs.
5282 2022-11-14  Martin Liska  <mliska@suse.cz>
5284         Revert:
5285         2022-11-13  Martin Liska  <mliska@suse.cz>
5287         PR other/107620
5288         * configure: Regenerate.
5289         * configure.ac: Always set sphinx-build.
5291 2022-11-14  Martin Liska  <mliska@suse.cz>
5293         * doc/gcc/gcc-command-options/option-summary.rst: Revert.
5294         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: Revert.
5296 2022-11-14  Haochen Jiang  <haochen.jiang@intel.com>
5298         * common/config/i386/i386-common.cc
5299         (OPTION_MASK_ISA2_AMX_INT8_SET): Add AMX-TILE dependency.
5300         (OPTION_MASK_ISA2_AMX_BF16_SET): Ditto.
5301         (OPTION_MASK_ISA2_AMX_FP16_SET): Ditto.
5302         (OPTION_MASK_ISA2_AMX_TILE_UNSET): Disable AMX_{INT8,
5303         BF16, FP16} when disable AMX_TILE.
5305 2022-11-14  Martin Liska  <mliska@suse.cz>
5307         * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst:
5308         Revert.
5309         * doc/gcc/gcc-command-options/option-summary.rst:
5310         Revert.
5312 2022-11-14  Hongyu Wang  <hongyu.wang@intel.com>
5314         * common/config/i386/i386-common.cc (ix86_optimization_table):
5315         Enable small loop unroll at O2 by default.
5316         * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll
5317         factor if -munroll-only-small-loops enabled and -funroll-loops/
5318         -funroll-all-loops are disabled.
5319         * config/i386/i386.h (struct processor_costs): Add 2 field
5320         small_unroll_ninsns and small_unroll_factor.
5321         * config/i386/i386.opt: Add -munroll-only-small-loops.
5322         * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst:
5323         Document -munroll-only-small-loops.
5324         * doc/gcc/gcc-command-options/option-summary.rst: Likewise.
5325         * loop-init.cc (pass_rtl_unroll_loops::gate): Enable rtl
5326         loop unrolling for -O2-speed and above if target hook
5327         loop_unroll_adjust exists.
5328         (pass_rtl_unroll_loops::execute): Set UAP_UNROLL flag
5329         when target hook loop_unroll_adjust exists.
5330         * config/i386/x86-tune-costs.h: Update all processor costs
5331         with small_unroll_ninsns = 4 and small_unroll_factor = 2.
5333 2022-11-13  David Malcolm  <dmalcolm@redhat.com>
5335         PR analyzer/106235
5336         * doc/gcc/gcc-command-options/option-summary.rst: Add
5337         -Wno-analyzer-tainted-assertion.
5338         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst:
5339         Add -Wno-analyzer-tainted-assertion.
5341 2022-11-13  Philipp Tomsich  <philipp.tomsich@vrull.eu>
5343         * config/riscv/bitmanip.md: New define_split.
5345 2022-11-13  Philipp Tomsich  <philipp.tomsich@vrull.eu>
5347         * config/riscv/riscv.cc (riscv_rtx_costs): Recognize shNadd,
5348         if expressed as a plus and multiplication with a power-of-2.
5349         Split costing for MINUS from PLUS.
5351 2022-11-13  Martin Liska  <mliska@suse.cz>
5353         PR other/107620
5354         * configure: Regenerate.
5355         * configure.ac: Always set sphinx-build.
5357 2022-11-13  Joseph Myers  <joseph@codesourcery.com>
5359         * ginclude/float.h [__STDC_VERSION__ > 201710L]
5360         (__STDC_VERSION_FLOAT_H__): New macro.
5361         * ginclude/stdarg.h [__STDC_VERSION__ > 201710L]
5362         (__STDC_VERSION_STDARG_H__): New macro.
5363         * ginclude/stdatomic.h [__STDC_VERSION__ > 201710L]
5364         (__STDC_VERSION_STDATOMIC_H__): New macro.
5365         * ginclude/stddef.h [__STDC_VERSION__ > 201710L]
5366         (__STDC_VERSION_STDDEF_H__): New macro.
5367         * ginclude/stdint-gcc.h [__STDC_VERSION__ > 201710L]
5368         (__STDC_VERSION_STDINT_H__): New macro.
5369         * glimits.h [__STDC_VERSION__ > 201710L]
5370         (__STDC_VERSION_LIMITS_H__): New macro.
5372 2022-11-13  Jonathan Wakely  <jwakely@redhat.com>
5374         * doc/install/testing.rst: Remove anachronism about separate
5375         source tarballs.
5377 2022-11-12  Joseph Myers  <joseph@codesourcery.com>
5379         * dfp.cc (decimal_from_binary): Convert a canonical NaN to a
5380         canonical NaN.
5382 2022-11-12  Aldy Hernandez  <aldyh@redhat.com>
5384         * value-range.cc (range_tests_signbit): Move to set from here...
5385         (range_tests_signed_zeros): ...to here.
5387 2022-11-12  Aldy Hernandez  <aldyh@redhat.com>
5389         * range-op-float.cc (build_lt): Adjust with frange_nextafter
5390         instead of default to a closed range.
5391         (build_gt): Same.
5393 2022-11-12  Aldy Hernandez  <aldyh@redhat.com>
5394             Jakub Jelinek  <jakub@redhat.com>
5396         * range-op-float.cc (float_binary_op_range_finish): New function.
5397         (foperator_plus::op1_range): New.
5398         (foperator_plus::op2_range): New.
5399         (foperator_minus::op1_range): New.
5400         (foperator_minus::op2_range): New.
5401         (foperator_mult::op1_range): New.
5402         (foperator_mult::op2_range): New.
5403         (foperator_div::op1_range): New.
5404         (foperator_div::op2_range): New.
5406 2022-11-12  Jakub Jelinek  <jakub@redhat.com>
5408         PR tree-optimization/107569
5409         * range-op-float.cc (zero_p, contains_p, singleton_inf_p,
5410         signbit_known_p, zero_range, inf_range, zero_to_inf_range): New
5411         functions.
5412         (foperator_mult_div_base): New class.
5413         (foperator_mult, foperator_div): Derive from that and use
5414         protected static method from it as well as above new functions
5415         to simplify the code.
5417 2022-11-12  Jakub Jelinek  <jakub@redhat.com>
5419         PR tree-optimization/107569
5420         * range-op-float.cc (foperator_div): New class.
5421         (floating_op_table::floating_op_table): Use foperator_div
5422         for RDIV_EXPR.
5424 2022-11-12  Jakub Jelinek  <jakub@redhat.com>
5426         PR tree-optimization/107569
5427         PR tree-optimization/107591
5428         * range-op.h (range_operator_float::rv_fold): Add relation_kind
5429         argument.
5430         * range-op-float.cc (range_operator_float::fold_range): Name
5431         last argument trio and pass trio.op1_op2 () as last argument to
5432         rv_fold.
5433         (range_operator_float::rv_fold): Add relation_kind argument.
5434         (foperator_plus::rv_fold, foperator_minus::rv_fold): Likewise.
5435         (foperator_mult): New class.
5436         (floating_op_table::floating_op_table): Use foperator_mult for
5437         MULT_EXPR.
5439 2022-11-12  Xi Ruoyao  <xry111@xry111.site>
5441         * config/loongarch/loongarch.md (UNSPEC_FLOGB): New unspec.
5442         (type): Add flogb.
5443         (logb_non_negative<mode>2): New instruction template.
5444         (logb<mode>2): New define_expand.
5446 2022-11-12  Xi Ruoyao  <xry111@xry111.site>
5448         * config/loongarch/loongarch.md (UNSPEC_FSCALEB): New unspec.
5449         (type): Add fscaleb.
5450         (IMODE): New mode attr.
5451         (ldexp<mode>3): New instruction template.
5453 2022-11-12  Xi Ruoyao  <xry111@xry111.site>
5455         * config/loongarch/loongarch.md (UNSPEC_FTINT): New unspec.
5456         (UNSPEC_FTINTRM): Likewise.
5457         (UNSPEC_FTINTRP): Likewise.
5458         (LRINT): New define_int_iterator.
5459         (lrint_pattern): New define_int_attr.
5460         (lrint_submenmonic): Likewise.
5461         (lrint_allow_inexact): Likewise.
5462         (ANYFI): New define_mode_iterator.
5463         (lrint<ANYF><ANYFI>): New instruction template.
5465 2022-11-12  Xi Ruoyao  <xry111@xry111.site>
5467         * config/loongarch/loongarch.md (frint_<fmt>): Rename to ..
5468         (rint<mode>2): .. this.
5470 2022-11-11  David Malcolm  <dmalcolm@redhat.com>
5472         PR analyzer/106147
5473         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst:
5474         Add -Wanalyzer-infinite-recursion.
5475         * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst
5476         (-Winfinite-recursion): Mention -Wanalyzer-infinite-recursion.
5478 2022-11-11  David Malcolm  <dmalcolm@redhat.com>
5480         PR analyzer/106147
5481         * Makefile.in (ANALYZER_OBJS): Add analyzer/infinite-recursion.o.
5483 2022-11-11  Andrew MacLeod  <amacleod@redhat.com>
5485         PR tree-optimization/107523
5486         * gimple-range.cc (gimple_ranger::update_stmt): Use fur_stmt
5487         rather than fur_depend.
5489 2022-11-11  Andrew MacLeod  <amacleod@redhat.com>
5491         * tree-vrp.cc (rvrp_folder::rvrp_folder): Init m_last_bb_stmt.
5492         (rvrp_folder::pre_fold_bb): Set m_last_bb_stmt.
5493         (rvrp_folder::pre_fold_stmt): Check for transitive inferred ranges.
5494         (rvrp_folder::fold_stmt): Check in pre_fold_stmt instead.
5496 2022-11-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
5498         * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-X1C
5499         CPU.
5500         * config/aarch64/aarch64-tune.md: Regenerate.
5501         * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst:
5502         Document Cortex-X1C CPU.
5504 2022-11-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
5506         * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A715
5507         CPU.
5508         * config/aarch64/aarch64-tune.md: Regenerate.
5509         * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst:
5510         Document Cortex-A715 CPU.
5512 2022-11-11  Richard Biener  <rguenther@suse.de>
5513             Nikita Voronov  <nik_1357@mail.ru>
5515         PR tree-optimization/107554
5516         * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes):
5517         Use unsigned HOST_WIDE_INT type for the strlen.
5519 2022-11-11  Richard Biener  <rguenther@suse.de>
5521         PR tree-optimization/105142
5522         * gimple-fold.cc (fosa_unwind): New global.
5523         (follow_outer_ssa_edges): When the SSA definition to follow
5524         is does not dominate fosa_bb, temporarily clear flow-sensitive
5525         info.  Make sure to not expand stmts with not defined overflow.
5526         (maybe_fold_comparisons_from_match_pd): Set up unwind stack
5527         for follow_outer_ssa_edges and unwind flow-sensitive info
5528         clearing after matching.
5530 2022-11-11  Aldy Hernandez  <aldyh@redhat.com>
5532         * range-op.cc (operator_mult::fold_range): Remove.
5533         (operator_div::fold_range): Remove.
5534         (operator_bitwise_and): Remove.
5536 2022-11-11  Aldy Hernandez  <aldyh@redhat.com>
5538         * range-op.cc (update_known_bitmask): Avoid unnecessary intersection.
5540 2022-11-11  Aldy Hernandez  <aldyh@redhat.com>
5542         * range-op.cc (range_operator::fold_range): Call
5543         update_known_bitmask.
5544         (operator_bitwise_and::fold_range): Avoid setting nonzero bits
5545         when range is undefined.
5547 2022-11-11  Aldy Hernandez  <aldyh@redhat.com>
5549         * range-op.cc (class operator_div): Remove tree code.
5550         (operator_div::wi_op_overflows): Handle EXACT_DIV_EXPR as
5551         TRUNC_DIV_EXPR.
5553 2022-11-11  Aldy Hernandez  <aldyh@redhat.com>
5555         * range-op.cc: (range_op_table::set): Set m_code.
5556         (integral_table::integral_table): Handle shared entries.
5557         (pointer_table::pointer_table): Same.
5558         * range-op.h (class range_operator): Add m_code.
5560 2022-11-11  Richard Biener  <rguenther@suse.de>
5562         PR tree-optimization/107618
5563         * tree-ssa-copy.cc (stmt_may_generate_copy): Simulate all
5564         assignments with a single SSA use.
5565         (copy_prop_visit_assignment): Use gimple_fold_stmt_to_constant_1
5566         to perform simple constant folding.
5567         (copy_prop::visit_stmt): Visit all assignments.
5569 2022-11-11  Richard Biener  <rguenther@suse.de>
5571         PR tree-optimization/84646
5572         * tree-ssa-dce.cc (pass_dce::set_pass_param): Add param
5573         wheter to run update-address-taken.
5574         (pass_dce::execute): Honor it.
5575         * passes.def: Exchange last DCE and CD-DCE invocations.
5576         Swap pass_tail_calls and the last DCE.
5578 2022-11-11  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
5579             Monk Chiang  <monk.chiang@sifive.com>
5581         * config/riscv/riscv-v.cc (emit_pred_move): Adjust for scalable register spilling.
5582         (legitimize_move): Ditto.
5583         * config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): New function.
5584         (riscv_first_stack_step): Adjust for scalable register spilling.
5585         (riscv_expand_prologue): Ditto.
5586         (riscv_expand_epilogue): Ditto.
5587         (riscv_dwarf_poly_indeterminate_value): New function.
5588         (TARGET_DWARF_POLY_INDETERMINATE_VALUE): New target hook support for register spilling.
5589         * config/riscv/riscv.h (RISCV_DWARF_VLENB): New macro.
5590         (RISCV_PROLOGUE_TEMP2_REGNUM): Ditto.
5591         (RISCV_PROLOGUE_TEMP2): Ditto.
5592         * config/riscv/vector-iterators.md: New iterators.
5593         * config/riscv/vector.md (*mov<mode>): Fix it for register spilling.
5594         (*mov<mode>_whole): New pattern.
5595         (*mov<mode>_fract): New pattern.
5596         (@pred_mov<mode>): Fix it for register spilling.
5598 2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
5600         PR c/85487
5601         * doc/cpp/pragmas.rst (Pragmas): Document region pragmas.
5603 2022-11-11  Haochen Jiang  <haochen.jiang@intel.com>
5605         * config/i386/i386-builtin.def (BDESC): Add
5606         OPTION_MASK_ISA2_PREFETCHI for prefetchi builtin.
5607         * config/i386/i386-expand.cc (ix86_expand_builtin):
5608         Add ISA check before emit_insn.
5609         * config/i386/prfchiintrin.h: Add target for intrin.
5611 2022-11-10  David Malcolm  <dmalcolm@redhat.com>
5613         PR analyzer/99671
5614         * tristate.h (tristate::is_unknown): New.
5616 2022-11-10  David Malcolm  <dmalcolm@redhat.com>
5618         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst:
5619         Add -Wanalyzer-deref-before-check.
5621 2022-11-10  Marek Polacek  <polacek@redhat.com>
5623         * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst:
5624         Extend the description of -Wdangling-reference.
5626 2022-11-10  Andrew Pinski  <apinski@marvell.com>
5628         * config/bfin/bfin.h (SLOW_SHORT_ACCESS): Delete.
5629         * config/i386/i386.h (SLOW_SHORT_ACCESS): Delete.
5630         * system.h: Poison SLOW_SHORT_ACCESS
5632 2022-11-10  Aldy Hernandez  <aldyh@redhat.com>
5634         * value-range.cc (frange::set_nonnegative): Remove NAN sign handling.
5635         (range_tests_signed_zeros): Adjust test.
5637 2022-11-10  Richard Biener  <rguenther@suse.de>
5639         PR tree-optimization/84646
5640         * tree-ssa-forwprop.cc (pass_forwprop::execute): Improve
5641         copy propagation across PHIs.
5643 2022-11-10  Philipp Tomsich  <philipp.tomsich@vrull.eu>
5645         * config/riscv/riscv-cores.def (RISCV_TUNE): Update
5646         sifive-7-series to point to the sifive_7 pipeline description.
5648 2022-11-10  Richard Biener  <rguenther@suse.de>
5650         PR tree-optimization/84646
5651         * tree-ssa-ccp.cc (set_lattice_value): Make sure we
5652         allow a const -> copy transition and avoid using meet
5653         in that case.
5655 2022-11-10  Martin Liska  <mliska@suse.cz>
5657         * doc/cpp/conf.py: Add newline at last line.
5658         * doc/cppinternals/conf.py: Add newline at last line.
5659         * doc/gcc/conf.py: Add newline at last line.
5660         * doc/gccint/conf.py: Add newline at last line.
5661         * doc/install/conf.py: Add newline at last line.
5663 2022-11-10  Richard Biener  <rguenther@suse.de>
5665         * tree-ssa-loop-unswitch.cc (init_loop_unswitch_info): First collect
5666         candidates and determine the outermost loop to unswitch.
5667         (tree_ssa_unswitch_loops): First perform all guard hoisting,
5668         then perform unswitching on innermost loop predicates.
5669         (find_unswitching_predicates_for_bb): Keep track of the
5670         outermost loop to unswitch.
5671         (evaluate_bbs): Adjust exit test.
5672         (tree_unswitch_single_loop): Dump whether we unswitched an outer
5673         loop.
5674         (tree_unswitch_loop): Remove assert we unswitch only innermost
5675         loops.
5677 2022-11-10  Jakub Jelinek  <jakub@redhat.com>
5679         PR target/107585
5680         PR target/107546
5681         * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp): Use
5682         gen_int_mode rather than GEN_INT.
5684 2022-11-09  Martin Liska  <mliska@suse.cz>
5685             Sinan  <sinan.lin@linux.alibaba.com>
5687         * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst:
5688         Add missing variable name.
5690 2022-11-09  Aldy Hernandez  <aldyh@redhat.com>
5692         * value-range-storage.cc (frange_storage_slot::get_frange): Clear
5693         NAN if appropriate.
5694         * value-range.cc (range_tests_floats): New test.
5696 2022-11-09  Aldy Hernandez  <aldyh@redhat.com>
5698         * range-op-float.cc (class foperator_plus): Remove op[12]_range.
5699         (class foperator_minus): Same.
5701 2022-11-09  Qing Zhao  <qing.zhao@oracle.com>
5703         * gimple-array-bounds.cc (trailing_array): Replace
5704         array_at_struct_end_p with new name and update comments.
5705         * gimple-fold.cc (get_range_strlen_tree): Likewise.
5706         * gimple-ssa-warn-restrict.cc (builtin_memref::builtin_memref):
5707         Likewise.
5708         * graphite-sese-to-poly.cc (bounds_are_valid): Likewise.
5709         * tree-if-conv.cc (idx_within_array_bound): Likewise.
5710         * tree-object-size.cc (addr_object_size): Likewise.
5711         * tree-ssa-alias.cc (component_ref_to_zero_sized_trailing_array_p):
5712         Likewise.
5713         (stmt_kills_ref_p): Likewise.
5714         * tree-ssa-loop-niter.cc (idx_infer_loop_bounds): Likewise.
5715         * tree-ssa-strlen.cc (maybe_set_strlen_range): Likewise.
5716         * tree.cc (array_at_struct_end_p): Rename to ...
5717         (array_ref_flexible_size_p): ... this.
5718         (component_ref_size): Replace array_at_struct_end_p with new name.
5719         * tree.h (array_at_struct_end_p): Rename to ...
5720         (array_ref_flexible_size_p): ... this.
5722 2022-11-09  Martin Liska  <mliska@suse.cz>
5724         * Makefile.in: Use new install URL.
5725         * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst:
5726         Use intersphinx link.
5727         * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
5728         Use new URL.
5729         * doc/gccint/source-tree-structure-and-build-system.rst: Use
5730         intersphinx link.
5731         * doc/install/host-target-specific-installation-notes-for-gcc.rst: Likewise.
5732         * doc/install/installing-gcc.rst: Likewise.
5734 2022-11-09  Richard Biener  <rguenther@suse.de>
5736         PR tree-optimization/84646
5737         * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
5738         Remove premature cycle rejection.
5740 2022-11-09  Martin Liska  <mliska@suse.cz>
5742         * doc/cpp/character-sets.rst:
5743         Add trailing newline.
5744         * doc/cpp/conditional-syntax.rst:
5745         Add trailing newline.
5746         * doc/cpp/conditional-uses.rst:
5747         Add trailing newline.
5748         * doc/cpp/conditionals.rst:
5749         Add trailing newline.
5750         * doc/cpp/copyright.rst:
5751         Add trailing newline.
5752         * doc/cpp/deleted-code.rst:
5753         Add trailing newline.
5754         * doc/cpp/diagnostics.rst:
5755         Add trailing newline.
5756         * doc/cpp/environment-variables.rst:
5757         Add trailing newline.
5758         * doc/cpp/gnu-free-documentation-license.rst:
5759         Add trailing newline.
5760         * doc/cpp/header-files.rst:
5761         Add trailing newline.
5762         * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst:
5763         Add trailing newline.
5764         * doc/cpp/header-files/computed-includes.rst:
5765         Add trailing newline.
5766         * doc/cpp/header-files/include-operation.rst:
5767         Add trailing newline.
5768         * doc/cpp/header-files/include-syntax.rst:
5769         Add trailing newline.
5770         * doc/cpp/header-files/once-only-headers.rst:
5771         Add trailing newline.
5772         * doc/cpp/header-files/search-path.rst:
5773         Add trailing newline.
5774         * doc/cpp/header-files/system-headers.rst:
5775         Add trailing newline.
5776         * doc/cpp/header-files/wrapper-headers.rst:
5777         Add trailing newline.
5778         * doc/cpp/implementation-defined-behavior.rst:
5779         Add trailing newline.
5780         * doc/cpp/implementation-details.rst:
5781         Add trailing newline.
5782         * doc/cpp/implementation-limits.rst:
5783         Add trailing newline.
5784         * doc/cpp/index.rst:
5785         Add trailing newline.
5786         * doc/cpp/indices-and-tables.rst:
5787         Add trailing newline.
5788         * doc/cpp/initial-processing.rst:
5789         Add trailing newline.
5790         * doc/cpp/invocation.rst:
5791         Add trailing newline.
5792         * doc/cpp/line-control.rst:
5793         Add trailing newline.
5794         * doc/cpp/macros.rst:
5795         Add trailing newline.
5796         * doc/cpp/macros/concatenation.rst:
5797         Add trailing newline.
5798         * doc/cpp/macros/directives-within-macro-arguments.rst:
5799         Add trailing newline.
5800         * doc/cpp/macros/function-like-macros.rst:
5801         Add trailing newline.
5802         * doc/cpp/macros/macro-arguments.rst:
5803         Add trailing newline.
5804         * doc/cpp/macros/macro-pitfalls.rst:
5805         Add trailing newline.
5806         * doc/cpp/macros/object-like-macros.rst:
5807         Add trailing newline.
5808         * doc/cpp/macros/predefined-macros.rst:
5809         Add trailing newline.
5810         * doc/cpp/macros/stringizing.rst:
5811         Add trailing newline.
5812         * doc/cpp/macros/undefining-and-redefining-macros.rst:
5813         Add trailing newline.
5814         * doc/cpp/macros/variadic-macros.rst:
5815         Add trailing newline.
5816         * doc/cpp/obsolete-features.rst:
5817         Add trailing newline.
5818         * doc/cpp/other-directives.rst:
5819         Add trailing newline.
5820         * doc/cpp/overview.rst:
5821         Add trailing newline.
5822         * doc/cpp/pragmas.rst:
5823         Add trailing newline.
5824         * doc/cpp/preprocessor-output.rst:
5825         Add trailing newline.
5826         * doc/cpp/the-preprocessing-language.rst:
5827         Add trailing newline.
5828         * doc/cpp/tokenization.rst:
5829         Add trailing newline.
5830         * doc/cpp/traditional-lexical-analysis.rst:
5831         Add trailing newline.
5832         * doc/cpp/traditional-macros.rst:
5833         Add trailing newline.
5834         * doc/cpp/traditional-miscellany.rst:
5835         Add trailing newline.
5836         * doc/cpp/traditional-mode.rst:
5837         Add trailing newline.
5838         * doc/cpp/traditional-warnings.rst:
5839         Add trailing newline.
5840         * doc/cppinternals/copyright.rst:
5841         Add trailing newline.
5842         * doc/cppinternals/cppinternals.rst:
5843         Add trailing newline.
5844         * doc/cppinternals/cpplib.rst:
5845         Add trailing newline.
5846         * doc/cppinternals/files.rst:
5847         Add trailing newline.
5848         * doc/cppinternals/index.rst:
5849         Add trailing newline.
5850         * doc/cppinternals/indices-and-tables.rst:
5851         Add trailing newline.
5852         * doc/cppinternals/internal-representation-of-macros.rst:
5853         Add trailing newline.
5854         * doc/cppinternals/just-which-line-number-anyway.rst:
5855         Add trailing newline.
5856         * doc/cppinternals/lexing-a-line.rst:
5857         Add trailing newline.
5858         * doc/cppinternals/lexing-a-token.rst:
5859         Add trailing newline.
5860         * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst:
5861         Add trailing newline.
5862         * doc/cppinternals/macro-expansion-overview.rst:
5863         Add trailing newline.
5864         * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst:
5865         Add trailing newline.
5866         * doc/cppinternals/multiple-include-optimization.rst:
5867         Add trailing newline.
5868         * doc/cppinternals/overview.rst:
5869         Add trailing newline.
5870         * doc/cppinternals/representation-of-line-numbers.rst:
5871         Add trailing newline.
5872         * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst:
5873         Add trailing newline.
5874         * doc/gcc/binary-compatibility.rst:
5875         Add trailing newline.
5876         * doc/gcc/c++-implementation-defined-behavior.rst:
5877         Add trailing newline.
5878         * doc/gcc/c-implementation-defined-behavior.rst:
5879         Add trailing newline.
5880         * doc/gcc/c-implementation-defined-behavior/architecture.rst:
5881         Add trailing newline.
5882         * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst:
5883         Add trailing newline.
5884         * doc/gcc/c-implementation-defined-behavior/characters.rst:
5885         Add trailing newline.
5886         * doc/gcc/c-implementation-defined-behavior/declarators.rst:
5887         Add trailing newline.
5888         * doc/gcc/c-implementation-defined-behavior/environment.rst:
5889         Add trailing newline.
5890         * doc/gcc/c-implementation-defined-behavior/floating-point.rst:
5891         Add trailing newline.
5892         * doc/gcc/c-implementation-defined-behavior/hints.rst:
5893         Add trailing newline.
5894         * doc/gcc/c-implementation-defined-behavior/identifiers.rst:
5895         Add trailing newline.
5896         * doc/gcc/c-implementation-defined-behavior/integers.rst:
5897         Add trailing newline.
5898         * doc/gcc/c-implementation-defined-behavior/library-functions.rst:
5899         Add trailing newline.
5900         * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst:
5901         Add trailing newline.
5902         * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst:
5903         Add trailing newline.
5904         * doc/gcc/c-implementation-defined-behavior/qualifiers.rst:
5905         Add trailing newline.
5906         * doc/gcc/c-implementation-defined-behavior/statements.rst:
5907         Add trailing newline.
5908         * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst:
5909         Add trailing newline.
5910         * doc/gcc/c-implementation-defined-behavior/translation.rst:
5911         Add trailing newline.
5912         * doc/gcc/conditionally-supported-behavior.rst:
5913         Add trailing newline.
5914         * doc/gcc/contributing-to-gcc-development.rst:
5915         Add trailing newline.
5916         * doc/gcc/contributors-to-gcc.rst:
5917         Add trailing newline.
5918         * doc/gcc/copyright.rst:
5919         Add trailing newline.
5920         * doc/gcc/exception-handling.rst:
5921         Add trailing newline.
5922         * doc/gcc/extensions-to-the-c++-language.rst:
5923         Add trailing newline.
5924         * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst:
5925         Add trailing newline.
5926         * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst:
5927         Add trailing newline.
5928         * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst:
5929         Add trailing newline.
5930         * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst:
5931         Add trailing newline.
5932         * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst:
5933         Add trailing newline.
5934         * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst:
5935         Add trailing newline.
5936         * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst:
5937         Add trailing newline.
5938         * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst:
5939         Add trailing newline.
5940         * doc/gcc/extensions-to-the-c++-language/type-traits.rst:
5941         Add trailing newline.
5942         * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst:
5943         Add trailing newline.
5944         * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst:
5945         Add trailing newline.
5946         * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst:
5947         Add trailing newline.
5948         * doc/gcc/extensions-to-the-c-language-family.rst:
5949         Add trailing newline.
5950         * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst:
5951         Add trailing newline.
5952         * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst:
5953         Add trailing newline.
5954         * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst:
5955         Add trailing newline.
5956         * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst:
5957         Add trailing newline.
5958         * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst:
5959         Add trailing newline.
5960         * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst:
5961         Add trailing newline.
5962         * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst:
5963         Add trailing newline.
5964         * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst:
5965         Add trailing newline.
5966         * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst:
5967         Add trailing newline.
5968         * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst:
5969         Add trailing newline.
5970         * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst:
5971         Add trailing newline.
5972         * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst:
5973         Add trailing newline.
5974         * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst:
5975         Add trailing newline.
5976         * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst:
5977         Add trailing newline.
5978         * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst:
5979         Add trailing newline.
5980         * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst:
5981         Add trailing newline.
5982         * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst:
5983         Add trailing newline.
5984         * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst:
5985         Add trailing newline.
5986         * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst:
5987         Add trailing newline.
5988         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst:
5989         Add trailing newline.
5990         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst:
5991         Add trailing newline.
5992         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst:
5993         Add trailing newline.
5994         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst:
5995         Add trailing newline.
5996         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst:
5997         Add trailing newline.
5998         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst:
5999         Add trailing newline.
6000         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst:
6001         Add trailing newline.
6002         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst:
6003         Add trailing newline.
6004         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst:
6005         Add trailing newline.
6006         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst:
6007         Add trailing newline.
6008         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst:
6009         Add trailing newline.
6010         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst:
6011         Add trailing newline.
6012         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst:
6013         Add trailing newline.
6014         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst:
6015         Add trailing newline.
6016         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst:
6017         Add trailing newline.
6018         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst:
6019         Add trailing newline.
6020         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst:
6021         Add trailing newline.
6022         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst:
6023         Add trailing newline.
6024         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst:
6025         Add trailing newline.
6026         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst:
6027         Add trailing newline.
6028         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst:
6029         Add trailing newline.
6030         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst:
6031         Add trailing newline.
6032         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst:
6033         Add trailing newline.
6034         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst:
6035         Add trailing newline.
6036         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst:
6037         Add trailing newline.
6038         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst:
6039         Add trailing newline.
6040         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst:
6041         Add trailing newline.
6042         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst:
6043         Add trailing newline.
6044         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst:
6045         Add trailing newline.
6046         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst:
6047         Add trailing newline.
6048         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst:
6049         Add trailing newline.
6050         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst:
6051         Add trailing newline.
6052         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst:
6053         Add trailing newline.
6054         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst:
6055         Add trailing newline.
6056         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst:
6057         Add trailing newline.
6058         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst:
6059         Add trailing newline.
6060         * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst:
6061         Add trailing newline.
6062         * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst:
6063         Add trailing newline.
6064         * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst:
6065         Add trailing newline.
6066         * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst:
6067         Add trailing newline.
6068         * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst:
6069         Add trailing newline.
6070         * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst:
6071         Add trailing newline.
6072         * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst:
6073         Add trailing newline.
6074         * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst:
6075         Add trailing newline.
6076         * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst:
6077         Add trailing newline.
6078         * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst:
6079         Add trailing newline.
6080         * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst:
6081         Add trailing newline.
6082         * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst:
6083         Add trailing newline.
6084         * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst:
6085         Add trailing newline.
6086         * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst:
6087         Add trailing newline.
6088         * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst:
6089         Add trailing newline.
6090         * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst:
6091         Add trailing newline.
6092         * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst:
6093         Add trailing newline.
6094         * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst:
6095         Add trailing newline.
6096         * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst:
6097         Add trailing newline.
6098         * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst:
6099         Add trailing newline.
6100         * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst:
6101         Add trailing newline.
6102         * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst:
6103         Add trailing newline.
6104         * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst:
6105         Add trailing newline.
6106         * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst:
6107         Add trailing newline.
6108         * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst:
6109         Add trailing newline.
6110         * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst:
6111         Add trailing newline.
6112         * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst:
6113         Add trailing newline.
6114         * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst:
6115         Add trailing newline.
6116         * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst:
6117         Add trailing newline.
6118         * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst:
6119         Add trailing newline.
6120         * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst:
6121         Add trailing newline.
6122         * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst:
6123         Add trailing newline.
6124         * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst:
6125         Add trailing newline.
6126         * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst:
6127         Add trailing newline.
6128         * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst:
6129         Add trailing newline.
6130         * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst:
6131         Add trailing newline.
6132         * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst:
6133         Add trailing newline.
6134         * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst:
6135         Add trailing newline.
6136         * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst:
6137         Add trailing newline.
6138         * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst:
6139         Add trailing newline.
6140         * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst:
6141         Add trailing newline.
6142         * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst:
6143         Add trailing newline.
6144         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst:
6145         Add trailing newline.
6146         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst:
6147         Add trailing newline.
6148         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst:
6149         Add trailing newline.
6150         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst:
6151         Add trailing newline.
6152         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst:
6153         Add trailing newline.
6154         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst:
6155         Add trailing newline.
6156         * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst:
6157         Add trailing newline.
6158         * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst:
6159         Add trailing newline.
6160         * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst:
6161         Add trailing newline.
6162         * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst:
6163         Add trailing newline.
6164         * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst:
6165         Add trailing newline.
6166         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst:
6167         Add trailing newline.
6168         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst:
6169         Add trailing newline.
6170         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst:
6171         Add trailing newline.
6172         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst:
6173         Add trailing newline.
6174         * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst:
6175         Add trailing newline.
6176         * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst:
6177         Add trailing newline.
6178         * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst:
6179         Add trailing newline.
6180         * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst:
6181         Add trailing newline.
6182         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst:
6183         Add trailing newline.
6184         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst:
6185         Add trailing newline.
6186         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst:
6187         Add trailing newline.
6188         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst:
6189         Add trailing newline.
6190         * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst:
6191         Add trailing newline.
6192         * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst:
6193         Add trailing newline.
6194         * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst:
6195         Add trailing newline.
6196         * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst:
6197         Add trailing newline.
6198         * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst:
6199         Add trailing newline.
6200         * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst:
6201         Add trailing newline.
6202         * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst:
6203         Add trailing newline.
6204         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst:
6205         Add trailing newline.
6206         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst:
6207         Add trailing newline.
6208         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst:
6209         Add trailing newline.
6210         * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst:
6211         Add trailing newline.
6212         * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst:
6213         Add trailing newline.
6214         * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst:
6215         Add trailing newline.
6216         * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst:
6217         Add trailing newline.
6218         * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst:
6219         Add trailing newline.
6220         * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst:
6221         Add trailing newline.
6222         * doc/gcc/funding.rst:
6223         Add trailing newline.
6224         * doc/gcc/gcc-command-options.rst:
6225         Add trailing newline.
6226         * doc/gcc/gcc-command-options/compiling-c++-programs.rst:
6227         Add trailing newline.
6228         * doc/gcc/gcc-command-options/description.rst:
6229         Add trailing newline.
6230         * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst:
6231         Add trailing newline.
6232         * doc/gcc/gcc-command-options/gcc-developer-options.rst:
6233         Add trailing newline.
6234         * doc/gcc/gcc-command-options/machine-dependent-options.rst:
6235         Add trailing newline.
6236         * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst:
6237         Add trailing newline.
6238         * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst:
6239         Add trailing newline.
6240         * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst:
6241         Add trailing newline.
6242         * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst:
6243         Add trailing newline.
6244         * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst:
6245         Add trailing newline.
6246         * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst:
6247         Add trailing newline.
6248         * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst:
6249         Add trailing newline.
6250         * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst:
6251         Add trailing newline.
6252         * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst:
6253         Add trailing newline.
6254         * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst:
6255         Add trailing newline.
6256         * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst:
6257         Add trailing newline.
6258         * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst:
6259         Add trailing newline.
6260         * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst:
6261         Add trailing newline.
6262         * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst:
6263         Add trailing newline.
6264         * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst:
6265         Add trailing newline.
6266         * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst:
6267         Add trailing newline.
6268         * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst:
6269         Add trailing newline.
6270         * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst:
6271         Add trailing newline.
6272         * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst:
6273         Add trailing newline.
6274         * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst:
6275         Add trailing newline.
6276         * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst:
6277         Add trailing newline.
6278         * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst:
6279         Add trailing newline.
6280         * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst:
6281         Add trailing newline.
6282         * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst:
6283         Add trailing newline.
6284         * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst:
6285         Add trailing newline.
6286         * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst:
6287         Add trailing newline.
6288         * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst:
6289         Add trailing newline.
6290         * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst:
6291         Add trailing newline.
6292         * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst:
6293         Add trailing newline.
6294         * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst:
6295         Add trailing newline.
6296         * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst:
6297         Add trailing newline.
6298         * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst:
6299         Add trailing newline.
6300         * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst:
6301         Add trailing newline.
6302         * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst:
6303         Add trailing newline.
6304         * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst:
6305         Add trailing newline.
6306         * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst:
6307         Add trailing newline.
6308         * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst:
6309         Add trailing newline.
6310         * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst:
6311         Add trailing newline.
6312         * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst:
6313         Add trailing newline.
6314         * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst:
6315         Add trailing newline.
6316         * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst:
6317         Add trailing newline.
6318         * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst:
6319         Add trailing newline.
6320         * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst:
6321         Add trailing newline.
6322         * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst:
6323         Add trailing newline.
6324         * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst:
6325         Add trailing newline.
6326         * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst:
6327         Add trailing newline.
6328         * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst:
6329         Add trailing newline.
6330         * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst:
6331         Add trailing newline.
6332         * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst:
6333         Add trailing newline.
6334         * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst:
6335         Add trailing newline.
6336         * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst:
6337         Add trailing newline.
6338         * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst:
6339         Add trailing newline.
6340         * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst:
6341         Add trailing newline.
6342         * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst:
6343         Add trailing newline.
6344         * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst:
6345         Add trailing newline.
6346         * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst:
6347         Add trailing newline.
6348         * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst:
6349         Add trailing newline.
6350         * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst:
6351         Add trailing newline.
6352         * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst:
6353         Add trailing newline.
6354         * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst:
6355         Add trailing newline.
6356         * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst:
6357         Add trailing newline.
6358         * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst:
6359         Add trailing newline.
6360         * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst:
6361         Add trailing newline.
6362         * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst:
6363         Add trailing newline.
6364         * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst:
6365         Add trailing newline.
6366         * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst:
6367         Add trailing newline.
6368         * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst:
6369         Add trailing newline.
6370         * doc/gcc/gcc-command-options/options-for-directory-search.rst:
6371         Add trailing newline.
6372         * doc/gcc/gcc-command-options/options-for-linking.rst:
6373         Add trailing newline.
6374         * doc/gcc/gcc-command-options/options-that-control-optimization.rst:
6375         Add trailing newline.
6376         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst:
6377         Add trailing newline.
6378         * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
6379         Add trailing newline.
6380         * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst:
6381         Add trailing newline.
6382         * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst:
6383         Add trailing newline.
6384         * doc/gcc/gcc-command-options/program-instrumentation-options.rst:
6385         Add trailing newline.
6386         * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst:
6387         Add trailing newline.
6388         * doc/gcc/gcc-command-options/using-precompiled-headers.rst:
6389         Add trailing newline.
6390         * doc/gcc/gcc.rst:
6391         Add trailing newline.
6392         * doc/gcc/gcov-dump.rst:
6393         Add trailing newline.
6394         * doc/gcc/gcov-tool.rst:
6395         Add trailing newline.
6396         * doc/gcc/gcov.rst:
6397         Add trailing newline.
6398         * doc/gcc/gcov/brief-description-of-gcov-data-files.rst:
6399         Add trailing newline.
6400         * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst:
6401         Add trailing newline.
6402         * doc/gcc/gcov/introduction-to-gcov.rst:
6403         Add trailing newline.
6404         * doc/gcc/gcov/invoking-gcov.rst:
6405         Add trailing newline.
6406         * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst:
6407         Add trailing newline.
6408         * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst:
6409         Add trailing newline.
6410         * doc/gcc/general-public-license-3.rst:
6411         Add trailing newline.
6412         * doc/gcc/gnu-free-documentation-license.rst:
6413         Add trailing newline.
6414         * doc/gcc/gnu-objective-c-features.rst:
6415         Add trailing newline.
6416         * doc/gcc/gnu-objective-c-features/compatibilityalias.rst:
6417         Add trailing newline.
6418         * doc/gcc/gnu-objective-c-features/constant-string-objects.rst:
6419         Add trailing newline.
6420         * doc/gcc/gnu-objective-c-features/exceptions.rst:
6421         Add trailing newline.
6422         * doc/gcc/gnu-objective-c-features/fast-enumeration.rst:
6423         Add trailing newline.
6424         * doc/gcc/gnu-objective-c-features/garbage-collection.rst:
6425         Add trailing newline.
6426         * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst:
6427         Add trailing newline.
6428         * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst:
6429         Add trailing newline.
6430         * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst:
6431         Add trailing newline.
6432         * doc/gcc/gnu-objective-c-features/synchronization.rst:
6433         Add trailing newline.
6434         * doc/gcc/gnu-objective-c-features/type-encoding.rst:
6435         Add trailing newline.
6436         * doc/gcc/gnu.rst:
6437         Add trailing newline.
6438         * doc/gcc/have-you-found-a-bug.rst:
6439         Add trailing newline.
6440         * doc/gcc/how-and-where-to-report-bugs.rst:
6441         Add trailing newline.
6442         * doc/gcc/how-to-get-help-with-gcc.rst:
6443         Add trailing newline.
6444         * doc/gcc/index.rst:
6445         Add trailing newline.
6446         * doc/gcc/indices-and-tables.rst:
6447         Add trailing newline.
6448         * doc/gcc/known-causes-of-trouble-with-gcc.rst:
6449         Add trailing newline.
6450         * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst:
6451         Add trailing newline.
6452         * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst:
6453         Add trailing newline.
6454         * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst:
6455         Add trailing newline.
6456         * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst:
6457         Add trailing newline.
6458         * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst:
6459         Add trailing newline.
6460         * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst:
6461         Add trailing newline.
6462         * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst:
6463         Add trailing newline.
6464         * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst:
6465         Add trailing newline.
6466         * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst:
6467         Add trailing newline.
6468         * doc/gcc/language-standards-supported-by-gcc.rst:
6469         Add trailing newline.
6470         * doc/gcc/language-standards-supported-by-gcc/c++-language.rst:
6471         Add trailing newline.
6472         * doc/gcc/language-standards-supported-by-gcc/c-language.rst:
6473         Add trailing newline.
6474         * doc/gcc/language-standards-supported-by-gcc/d-language.rst:
6475         Add trailing newline.
6476         * doc/gcc/language-standards-supported-by-gcc/go-language.rst:
6477         Add trailing newline.
6478         * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst:
6479         Add trailing newline.
6480         * doc/gcc/lto-dump.rst:
6481         Add trailing newline.
6482         * doc/gcc/programming-languages-supported-by-gcc.rst:
6483         Add trailing newline.
6484         * doc/gcc/reporting-bugs.rst:
6485         Add trailing newline.
6486         * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst:
6487         Add trailing newline.
6488         * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst:
6489         Add trailing newline.
6490         * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst:
6491         Add trailing newline.
6492         * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst:
6493         Add trailing newline.
6494         * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst:
6495         Add trailing newline.
6496         * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst:
6497         Add trailing newline.
6498         * doc/gccint/analysis-and-representation-of-loops.rst:
6499         Add trailing newline.
6500         * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst:
6501         Add trailing newline.
6502         * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst:
6503         Add trailing newline.
6504         * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst:
6505         Add trailing newline.
6506         * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst:
6507         Add trailing newline.
6508         * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst:
6509         Add trailing newline.
6510         * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst:
6511         Add trailing newline.
6512         * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst:
6513         Add trailing newline.
6514         * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst:
6515         Add trailing newline.
6516         * doc/gccint/analyzer-internals.rst:
6517         Add trailing newline.
6518         * doc/gccint/collect2.rst:
6519         Add trailing newline.
6520         * doc/gccint/contributing-to-gcc-development.rst:
6521         Add trailing newline.
6522         * doc/gccint/contributors-to-gcc.rst:
6523         Add trailing newline.
6524         * doc/gccint/control-flow-graph.rst:
6525         Add trailing newline.
6526         * doc/gccint/control-flow-graph/basic-blocks.rst:
6527         Add trailing newline.
6528         * doc/gccint/control-flow-graph/edges.rst:
6529         Add trailing newline.
6530         * doc/gccint/control-flow-graph/liveness-information.rst:
6531         Add trailing newline.
6532         * doc/gccint/control-flow-graph/maintaining-the-cfg.rst:
6533         Add trailing newline.
6534         * doc/gccint/control-flow-graph/profile-information.rst:
6535         Add trailing newline.
6536         * doc/gccint/copyright.rst:
6537         Add trailing newline.
6538         * doc/gccint/debugging-the-analyzer.rst:
6539         Add trailing newline.
6540         * doc/gccint/funding.rst:
6541         Add trailing newline.
6542         * doc/gccint/gcc-and-portability.rst:
6543         Add trailing newline.
6544         * doc/gccint/general-public-license-3.rst:
6545         Add trailing newline.
6546         * doc/gccint/generic.rst:
6547         Add trailing newline.
6548         * doc/gccint/generic/attributes-in-trees.rst:
6549         Add trailing newline.
6550         * doc/gccint/generic/c-and-c++-trees.rst:
6551         Add trailing newline.
6552         * doc/gccint/generic/declarations.rst:
6553         Add trailing newline.
6554         * doc/gccint/generic/deficiencies.rst:
6555         Add trailing newline.
6556         * doc/gccint/generic/expressions.rst:
6557         Add trailing newline.
6558         * doc/gccint/generic/functions.rst:
6559         Add trailing newline.
6560         * doc/gccint/generic/language-dependent-trees.rst:
6561         Add trailing newline.
6562         * doc/gccint/generic/overview.rst:
6563         Add trailing newline.
6564         * doc/gccint/generic/statements.rst:
6565         Add trailing newline.
6566         * doc/gccint/generic/types.rst:
6567         Add trailing newline.
6568         * doc/gccint/gimple-api.rst:
6569         Add trailing newline.
6570         * doc/gccint/gimple.rst:
6571         Add trailing newline.
6572         * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst:
6573         Add trailing newline.
6574         * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst:
6575         Add trailing newline.
6576         * doc/gccint/gimple/exception-handling.rst:
6577         Add trailing newline.
6578         * doc/gccint/gimple/gimple-instruction-set.rst:
6579         Add trailing newline.
6580         * doc/gccint/gimple/gimple-sequences.rst:
6581         Add trailing newline.
6582         * doc/gccint/gimple/manipulating-gimple-statements.rst:
6583         Add trailing newline.
6584         * doc/gccint/gimple/operands.rst:
6585         Add trailing newline.
6586         * doc/gccint/gimple/sequence-iterators.rst:
6587         Add trailing newline.
6588         * doc/gccint/gimple/statement-and-operand-traversals.rst:
6589         Add trailing newline.
6590         * doc/gccint/gimple/temporaries.rst:
6591         Add trailing newline.
6592         * doc/gccint/gimple/tuple-representation.rst:
6593         Add trailing newline.
6594         * doc/gccint/gimple/tuple-specific-accessors.rst:
6595         Add trailing newline.
6596         * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst:
6597         Add trailing newline.
6598         * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst:
6599         Add trailing newline.
6600         * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst:
6601         Add trailing newline.
6602         * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst:
6603         Add trailing newline.
6604         * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst:
6605         Add trailing newline.
6606         * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst:
6607         Add trailing newline.
6608         * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst:
6609         Add trailing newline.
6610         * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst:
6611         Add trailing newline.
6612         * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst:
6613         Add trailing newline.
6614         * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst:
6615         Add trailing newline.
6616         * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst:
6617         Add trailing newline.
6618         * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst:
6619         Add trailing newline.
6620         * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst:
6621         Add trailing newline.
6622         * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst:
6623         Add trailing newline.
6624         * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst:
6625         Add trailing newline.
6626         * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst:
6627         Add trailing newline.
6628         * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst:
6629         Add trailing newline.
6630         * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst:
6631         Add trailing newline.
6632         * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst:
6633         Add trailing newline.
6634         * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst:
6635         Add trailing newline.
6636         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst:
6637         Add trailing newline.
6638         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst:
6639         Add trailing newline.
6640         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst:
6641         Add trailing newline.
6642         * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst:
6643         Add trailing newline.
6644         * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst:
6645         Add trailing newline.
6646         * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst:
6647         Add trailing newline.
6648         * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst:
6649         Add trailing newline.
6650         * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst:
6651         Add trailing newline.
6652         * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst:
6653         Add trailing newline.
6654         * doc/gccint/gnu-free-documentation-license.rst:
6655         Add trailing newline.
6656         * doc/gccint/guidelines-for-diagnostics.rst:
6657         Add trailing newline.
6658         * doc/gccint/guidelines-for-options.rst:
6659         Add trailing newline.
6660         * doc/gccint/host-common.rst:
6661         Add trailing newline.
6662         * doc/gccint/host-configuration.rst:
6663         Add trailing newline.
6664         * doc/gccint/host-filesystem.rst:
6665         Add trailing newline.
6666         * doc/gccint/host-makefile-fragments.rst:
6667         Add trailing newline.
6668         * doc/gccint/host-misc.rst:
6669         Add trailing newline.
6670         * doc/gccint/index.rst:
6671         Add trailing newline.
6672         * doc/gccint/indices-and-tables.rst:
6673         Add trailing newline.
6674         * doc/gccint/interfacing-to-gcc-output.rst:
6675         Add trailing newline.
6676         * doc/gccint/introduction.rst:
6677         Add trailing newline.
6678         * doc/gccint/language-front-ends-in-gcc.rst:
6679         Add trailing newline.
6680         * doc/gccint/link-time-optimization.rst:
6681         Add trailing newline.
6682         * doc/gccint/link-time-optimization/design-overview.rst:
6683         Add trailing newline.
6684         * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst:
6685         Add trailing newline.
6686         * doc/gccint/link-time-optimization/lto-file-sections.rst:
6687         Add trailing newline.
6688         * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst:
6689         Add trailing newline.
6690         * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst:
6691         Add trailing newline.
6692         * doc/gccint/machine-descriptions.rst:
6693         Add trailing newline.
6694         * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst:
6695         Add trailing newline.
6696         * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst:
6697         Add trailing newline.
6698         * doc/gccint/machine-descriptions/conditional-execution.rst:
6699         Add trailing newline.
6700         * doc/gccint/machine-descriptions/constant-definitions.rst:
6701         Add trailing newline.
6702         * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst:
6703         Add trailing newline.
6704         * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst:
6705         Add trailing newline.
6706         * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst:
6707         Add trailing newline.
6708         * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst:
6709         Add trailing newline.
6710         * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst:
6711         Add trailing newline.
6712         * doc/gccint/machine-descriptions/example-of-defineinsn.rst:
6713         Add trailing newline.
6714         * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst:
6715         Add trailing newline.
6716         * doc/gccint/machine-descriptions/instruction-attributes.rst:
6717         Add trailing newline.
6718         * doc/gccint/machine-descriptions/interdependence-of-patterns.rst:
6719         Add trailing newline.
6720         * doc/gccint/machine-descriptions/iterators.rst:
6721         Add trailing newline.
6722         * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst:
6723         Add trailing newline.
6724         * doc/gccint/machine-descriptions/operand-constraints.rst:
6725         Add trailing newline.
6726         * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst:
6727         Add trailing newline.
6728         * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst:
6729         Add trailing newline.
6730         * doc/gccint/machine-descriptions/predicates.rst:
6731         Add trailing newline.
6732         * doc/gccint/machine-descriptions/rtl-template.rst:
6733         Add trailing newline.
6734         * doc/gccint/machine-descriptions/rtl-templates-transformations.rst:
6735         Add trailing newline.
6736         * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst:
6737         Add trailing newline.
6738         * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst:
6739         Add trailing newline.
6740         * doc/gccint/makefile-fragments.rst:
6741         Add trailing newline.
6742         * doc/gccint/match-and-simplify.rst:
6743         Add trailing newline.
6744         * doc/gccint/memory-management-and-type-information.rst:
6745         Add trailing newline.
6746         * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst:
6747         Add trailing newline.
6748         * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst:
6749         Add trailing newline.
6750         * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst:
6751         Add trailing newline.
6752         * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst:
6753         Add trailing newline.
6754         * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst:
6755         Add trailing newline.
6756         * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst:
6757         Add trailing newline.
6758         * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst:
6759         Add trailing newline.
6760         * doc/gccint/option-file-format.rst:
6761         Add trailing newline.
6762         * doc/gccint/option-properties.rst:
6763         Add trailing newline.
6764         * doc/gccint/option-specification-files.rst:
6765         Add trailing newline.
6766         * doc/gccint/passes-and-files-of-the-compiler.rst:
6767         Add trailing newline.
6768         * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst:
6769         Add trailing newline.
6770         * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst:
6771         Add trailing newline.
6772         * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst:
6773         Add trailing newline.
6774         * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst:
6775         Add trailing newline.
6776         * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst:
6777         Add trailing newline.
6778         * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst:
6779         Add trailing newline.
6780         * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst:
6781         Add trailing newline.
6782         * doc/gccint/plugins.rst:
6783         Add trailing newline.
6784         * doc/gccint/plugins/building-gcc-plugins.rst:
6785         Add trailing newline.
6786         * doc/gccint/plugins/controlling-which-passes-are-being-run.rst:
6787         Add trailing newline.
6788         * doc/gccint/plugins/giving-information-about-a-plugin.rst:
6789         Add trailing newline.
6790         * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst:
6791         Add trailing newline.
6792         * doc/gccint/plugins/interacting-with-the-pass-manager.rst:
6793         Add trailing newline.
6794         * doc/gccint/plugins/keeping-track-of-available-passes.rst:
6795         Add trailing newline.
6796         * doc/gccint/plugins/loading-plugins.rst:
6797         Add trailing newline.
6798         * doc/gccint/plugins/plugin-api.rst:
6799         Add trailing newline.
6800         * doc/gccint/plugins/recording-information-about-pass-execution.rst:
6801         Add trailing newline.
6802         * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst:
6803         Add trailing newline.
6804         * doc/gccint/rtl-representation.rst:
6805         Add trailing newline.
6806         * doc/gccint/rtl-representation/access-to-operands.rst:
6807         Add trailing newline.
6808         * doc/gccint/rtl-representation/access-to-special-operands.rst:
6809         Add trailing newline.
6810         * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst:
6811         Add trailing newline.
6812         * doc/gccint/rtl-representation/bit-fields.rst:
6813         Add trailing newline.
6814         * doc/gccint/rtl-representation/comparison-operations.rst:
6815         Add trailing newline.
6816         * doc/gccint/rtl-representation/constant-expression-types.rst:
6817         Add trailing newline.
6818         * doc/gccint/rtl-representation/conversions.rst:
6819         Add trailing newline.
6820         * doc/gccint/rtl-representation/declarations.rst:
6821         Add trailing newline.
6822         * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst:
6823         Add trailing newline.
6824         * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst:
6825         Add trailing newline.
6826         * doc/gccint/rtl-representation/insns.rst:
6827         Add trailing newline.
6828         * doc/gccint/rtl-representation/machine-modes.rst:
6829         Add trailing newline.
6830         * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst:
6831         Add trailing newline.
6832         * doc/gccint/rtl-representation/reading-rtl.rst:
6833         Add trailing newline.
6834         * doc/gccint/rtl-representation/registers-and-memory.rst:
6835         Add trailing newline.
6836         * doc/gccint/rtl-representation/rtl-classes-and-formats.rst:
6837         Add trailing newline.
6838         * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst:
6839         Add trailing newline.
6840         * doc/gccint/rtl-representation/rtl-object-types.rst:
6841         Add trailing newline.
6842         * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst:
6843         Add trailing newline.
6844         * doc/gccint/rtl-representation/side-effect-expressions.rst:
6845         Add trailing newline.
6846         * doc/gccint/rtl-representation/structure-sharing-assumptions.rst:
6847         Add trailing newline.
6848         * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst:
6849         Add trailing newline.
6850         * doc/gccint/rtl-representation/vector-operations.rst:
6851         Add trailing newline.
6852         * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst:
6853         Add trailing newline.
6854         * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst:
6855         Add trailing newline.
6856         * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst:
6857         Add trailing newline.
6858         * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst:
6859         Add trailing newline.
6860         * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst:
6861         Add trailing newline.
6862         * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst:
6863         Add trailing newline.
6864         * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst:
6865         Add trailing newline.
6866         * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst:
6867         Add trailing newline.
6868         * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst:
6869         Add trailing newline.
6870         * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst:
6871         Add trailing newline.
6872         * doc/gccint/source-tree-structure-and-build-system.rst:
6873         Add trailing newline.
6874         * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst:
6875         Add trailing newline.
6876         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst:
6877         Add trailing newline.
6878         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst:
6879         Add trailing newline.
6880         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst:
6881         Add trailing newline.
6882         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst:
6883         Add trailing newline.
6884         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst:
6885         Add trailing newline.
6886         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst:
6887         Add trailing newline.
6888         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst:
6889         Add trailing newline.
6890         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst:
6891         Add trailing newline.
6892         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst:
6893         Add trailing newline.
6894         * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst:
6895         Add trailing newline.
6896         * doc/gccint/standard-header-file-directories.rst:
6897         Add trailing newline.
6898         * doc/gccint/static-analyzer.rst:
6899         Add trailing newline.
6900         * doc/gccint/target-macros.rst:
6901         Add trailing newline.
6902         * doc/gccint/target-macros/controlling-debugging-information-format.rst:
6903         Add trailing newline.
6904         * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst:
6905         Add trailing newline.
6906         * doc/gccint/target-macros/cross-compilation-and-floating-point.rst:
6907         Add trailing newline.
6908         * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst:
6909         Add trailing newline.
6910         * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst:
6911         Add trailing newline.
6912         * doc/gccint/target-macros/defining-the-output-assembler-language.rst:
6913         Add trailing newline.
6914         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst:
6915         Add trailing newline.
6916         * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst:
6917         Add trailing newline.
6918         * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
6919         Add trailing newline.
6920         * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
6921         Add trailing newline.
6922         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
6923         Add trailing newline.
6924         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
6925         Add trailing newline.
6926         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst:
6927         Add trailing newline.
6928         * doc/gccint/target-macros/implicit-calls-to-library-routines.rst:
6929         Add trailing newline.
6930         * doc/gccint/target-macros/layout-of-source-language-data-types.rst:
6931         Add trailing newline.
6932         * doc/gccint/target-macros/position-independent-code.rst:
6933         Add trailing newline.
6934         * doc/gccint/target-macros/register-usage.rst:
6935         Add trailing newline.
6936         * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst:
6937         Add trailing newline.
6938         * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
6939         Add trailing newline.
6940         * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst:
6941         Add trailing newline.
6942         * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst:
6943         Add trailing newline.
6944         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
6945         Add trailing newline.
6946         * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
6947         Add trailing newline.
6948         * doc/gccint/target-macros/support-for-nested-functions.rst:
6949         Add trailing newline.
6950         * doc/gccint/target-macros/the-global-targetm-variable.rst:
6951         Add trailing newline.
6952         * doc/gccint/target-makefile-fragments.rst:
6953         Add trailing newline.
6954         * doc/gccint/testsuites.rst:
6955         Add trailing newline.
6956         * doc/gccint/testsuites/ada-language-testsuites.rst:
6957         Add trailing newline.
6958         * doc/gccint/testsuites/c-language-testsuites.rst:
6959         Add trailing newline.
6960         * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst:
6961         Add trailing newline.
6962         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst:
6963         Add trailing newline.
6964         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst:
6965         Add trailing newline.
6966         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst:
6967         Add trailing newline.
6968         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst:
6969         Add trailing newline.
6970         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst:
6971         Add trailing newline.
6972         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst:
6973         Add trailing newline.
6974         * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst:
6975         Add trailing newline.
6976         * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst:
6977         Add trailing newline.
6978         * doc/gccint/testsuites/support-for-testing-gcov.rst:
6979         Add trailing newline.
6980         * doc/gccint/testsuites/support-for-testing-gimple-passes.rst:
6981         Add trailing newline.
6982         * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst:
6983         Add trailing newline.
6984         * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst:
6985         Add trailing newline.
6986         * doc/gccint/testsuites/support-for-testing-rtl-passes.rst:
6987         Add trailing newline.
6988         * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst:
6989         Add trailing newline.
6990         * doc/gccint/the-gcc-low-level-runtime-library.rst:
6991         Add trailing newline.
6992         * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst:
6993         Add trailing newline.
6994         * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst:
6995         Add trailing newline.
6996         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst:
6997         Add trailing newline.
6998         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst:
6999         Add trailing newline.
7000         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst:
7001         Add trailing newline.
7002         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst:
7003         Add trailing newline.
7004         * doc/gccint/the-language.rst:
7005         Add trailing newline.
7006         * doc/gccint/user-experience-guidelines.rst:
7007         Add trailing newline.
7008         * doc/install/binaries.rst:
7009         Add trailing newline.
7010         * doc/install/building.rst:
7011         Add trailing newline.
7012         * doc/install/building/building-a-cross-compiler.rst:
7013         Add trailing newline.
7014         * doc/install/building/building-a-native-compiler.rst:
7015         Add trailing newline.
7016         * doc/install/building/building-in-parallel.rst:
7017         Add trailing newline.
7018         * doc/install/building/building-the-ada-compiler.rst:
7019         Add trailing newline.
7020         * doc/install/building/building-the-d-compiler.rst:
7021         Add trailing newline.
7022         * doc/install/building/building-with-profile-feedback.rst:
7023         Add trailing newline.
7024         * doc/install/configuration.rst:
7025         Add trailing newline.
7026         * doc/install/copyright.rst:
7027         Add trailing newline.
7028         * doc/install/downloading-gcc.rst:
7029         Add trailing newline.
7030         * doc/install/final-installation.rst:
7031         Add trailing newline.
7032         * doc/install/gnu-free-documentation-license.rst:
7033         Add trailing newline.
7034         * doc/install/host-target-specific-installation-notes-for-gcc.rst:
7035         Add trailing newline.
7036         * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst:
7037         Add trailing newline.
7038         * doc/install/how-to-interpret-test-results.rst:
7039         Add trailing newline.
7040         * doc/install/index.rst:
7041         Add trailing newline.
7042         * doc/install/indices-and-tables.rst:
7043         Add trailing newline.
7044         * doc/install/installing-gcc.rst:
7045         Add trailing newline.
7046         * doc/install/passing-options-and-running-multiple-testsuites.rst:
7047         Add trailing newline.
7048         * doc/install/prerequisites.rst:
7049         Add trailing newline.
7050         * doc/install/submitting-test-results.rst:
7051         Add trailing newline.
7052         * doc/install/testing.rst:
7053         Add trailing newline.
7055 2022-11-09  Martin Liska  <mliska@suse.cz>
7057         * opts.cc (get_option_html_page): Port to sphinx URLs.
7058         (get_option_url): Likewise.
7059         (test_get_option_html_page): Likewise.
7061 2022-11-09  Jakub Jelinek  <jakub@redhat.com>
7063         PR tree-optimization/107569
7064         * range-op-float.cc (foperator_abs::op1_range): Clear NaNs
7065         from the negatives frange before unioning it into r.
7067 2022-11-09  Martin Liska  <mliska@suse.cz>
7069         * Makefile.in: Add vpath default for .rst files.
7070         * config/avr/avr-devices.cc: For port RST.
7071         * config/avr/avr-mcus.def: Update path.
7072         * config/avr/gen-avr-mmcu-texi.cc: Moved to...
7073         * config/avr/gen-avr-mmcu-rst.cc: ...here.
7074         * config/avr/t-avr: Update to rst.
7075         * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: Re-generate.
7077 2022-11-09  Philipp Tomsich  <philipp.tomsich@vrull.eu>
7079         * config/riscv/riscv.cc (riscv_rtx_costs): Add BSWAP.
7081 2022-11-09  Xi Ruoyao  <xry111@xry111.site>
7083         * config/loongarch/loongarch.cc (loongarch_emit_int_compare):
7084         Avoid signed overflow.
7086 2022-11-09  Aldy Hernandez  <aldyh@redhat.com>
7088         * range-op-float.cc (foperator_plus::op1_range): New.
7089         (foperator_plus::op2_range): New.
7090         (foperator_minus::op1_range): New.
7091         (foperator_minus::op2_range): New.
7093 2022-11-09  Martin Liska  <mliska@suse.cz>
7095         * Makefile.in: Support installation if sphinx-build is missing.
7097 2022-11-09  Martin Liska  <mliska@suse.cz>
7099         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
7100         Port to RST.
7101         * doc/gccint/target-macros/storage-layout.rst: Likewise.
7102         * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: Sync with master.
7103         * doc/gcc/gcc-command-options/option-summary.rst: Likewise.
7105 2022-11-09  Martin Liska  <mliska@suse.cz>
7107         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
7108         Do not include tm.rst.in.
7109         * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
7110         Likewise.
7111         * doc/gccint/target-macros/run-time-target-specification.rst:
7112         Likewise.
7114 2022-11-09  Martin Liska  <mliska@suse.cz>
7116         * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst:
7117         Fix cross manual refs.
7118         * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst:
7119         Likewise.
7121 2022-11-09  Martin Liska  <mliska@suse.cz>
7123         * Makefile.in: Support --with-sphinx-build.
7124         * configure.ac:
7125         * configure: Regenerate.
7127 2022-11-09  Martin Liska  <mliska@suse.cz>
7129         * target.def: Use proper lexers for target macros.
7130         * doc/gccint/target-macros/tm.rst.in: Re-generate.
7132 2022-11-09  Martin Liska  <mliska@suse.cz>
7134         * doc/analyzer.texi: Removed.
7135         * doc/avr-mmcu.texi: Removed.
7136         * doc/bugreport.texi: Removed.
7137         * doc/cfg.texi: Removed.
7138         * doc/collect2.texi: Removed.
7139         * doc/compat.texi: Removed.
7140         * doc/configfiles.texi: Removed.
7141         * doc/configterms.texi: Removed.
7142         * doc/contrib.texi: Removed.
7143         * doc/contribute.texi: Removed.
7144         * doc/cpp.texi: Removed.
7145         * doc/cppdiropts.texi: Removed.
7146         * doc/cppenv.texi: Removed.
7147         * doc/cppinternals.texi: Removed.
7148         * doc/cppopts.texi: Removed.
7149         * doc/cppwarnopts.texi: Removed.
7150         * doc/extend.texi: Removed.
7151         * doc/fragments.texi: Removed.
7152         * doc/frontends.texi: Removed.
7153         * doc/gcc.texi: Removed.
7154         * doc/gccint.texi: Removed.
7155         * doc/gcov-dump.texi: Removed.
7156         * doc/gcov-tool.texi: Removed.
7157         * doc/gcov.texi: Removed.
7158         * doc/generic.texi: Removed.
7159         * doc/gimple.texi: Removed.
7160         * doc/gnu.texi: Removed.
7161         * doc/gty.texi: Removed.
7162         * doc/headerdirs.texi: Removed.
7163         * doc/hostconfig.texi: Removed.
7164         * doc/implement-c.texi: Removed.
7165         * doc/implement-cxx.texi: Removed.
7166         * doc/include/fdl.texi: Removed.
7167         * doc/include/funding.texi: Removed.
7168         * doc/include/gcc-common.texi: Removed.
7169         * doc/include/gpl_v3.texi: Removed.
7170         * doc/install.texi: Removed.
7171         * doc/interface.texi: Removed.
7172         * doc/invoke.texi: Removed.
7173         * doc/languages.texi: Removed.
7174         * doc/libgcc.texi: Removed.
7175         * doc/loop.texi: Removed.
7176         * doc/lto-dump.texi: Removed.
7177         * doc/lto.texi: Removed.
7178         * doc/makefile.texi: Removed.
7179         * doc/match-and-simplify.texi: Removed.
7180         * doc/md.texi: Removed.
7181         * doc/objc.texi: Removed.
7182         * doc/optinfo.texi: Removed.
7183         * doc/options.texi: Removed.
7184         * doc/passes.texi: Removed.
7185         * doc/plugins.texi: Removed.
7186         * doc/poly-int.texi: Removed.
7187         * doc/portability.texi: Removed.
7188         * doc/rtl.texi: Removed.
7189         * doc/service.texi: Removed.
7190         * doc/sourcebuild.texi: Removed.
7191         * doc/standards.texi: Removed.
7192         * doc/tm.texi: Removed.
7193         * doc/tree-ssa.texi: Removed.
7194         * doc/trouble.texi: Removed.
7195         * doc/ux.texi: Removed.
7196         * doc/tm.texi.in: Removed.
7198 2022-11-09  Martin Liska  <mliska@suse.cz>
7200         * doc/gccint/target-macros/tm.rst.in: New file.
7202 2022-11-09  Martin Liska  <mliska@suse.cz>
7204         * Makefile.in: Support Sphinx based documentation.
7205         * configure: Regenerate.
7206         * configure.ac: Support Sphinx based documentation.
7207         * genhooks.cc (struct s_hook): Emit tm.rst.in file.
7209 2022-11-09  Martin Liska  <mliska@suse.cz>
7211         * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: Use tm.rst.in file.
7212         * doc/gccint/target-macros/addressing-modes.rst: Likewise.
7213         * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: Likewise.
7214         * doc/gccint/target-macros/anchored-addresses.rst: Likewise.
7215         * doc/gccint/target-macros/c++-abi-parameters.rst: Likewise.
7216         * doc/gccint/target-macros/condition-code-status.rst: Likewise.
7217         * doc/gccint/target-macros/controlling-debugging-information-format.rst: Likewise.
7218         * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: Likewise.
7219         * doc/gccint/target-macros/d-abi-parameters.rst: Likewise.
7220         * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: Likewise.
7221         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
7222         Likewise.
7223         * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
7224         Likewise.
7225         * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
7226         Likewise.
7227         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
7228         Likewise.
7229         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
7230         Likewise.
7231         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst:
7232         Likewise.
7233         * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
7234         Likewise.
7235         * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: Likewise.
7236         * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: Likewise.
7237         * doc/gccint/target-macros/emulating-tls.rst: Likewise.
7238         * doc/gccint/target-macros/implementing-the-varargs-macros.rst: Likewise.
7239         * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: Likewise.
7240         * doc/gccint/target-macros/layout-of-source-language-data-types.rst: Likewise.
7241         * doc/gccint/target-macros/miscellaneous-parameters.rst: Likewise.
7242         * doc/gccint/target-macros/mode-switching-instructions.rst: Likewise.
7243         * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst:
7244         Likewise.
7245         * doc/gccint/target-macros/register-classes.rst: Likewise.
7246         * doc/gccint/target-macros/register-usage.rst: Likewise.
7247         * doc/gccint/target-macros/run-time-target-specification.rst: Likewise.
7248         * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
7249         Likewise.
7250         * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst:
7251         Likewise.
7252         * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst:
7253         Likewise.
7254         * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst:
7255         Likewise.
7256         * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst:
7257         Likewise.
7258         * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst:
7259         Likewise.
7260         * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst:
7261         Likewise.
7262         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
7263         Likewise.
7264         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
7265         Likewise.
7266         * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst:
7267         Likewise.
7268         * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
7269         Likewise.
7270         * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst:
7271         Likewise.
7272         * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst:
7273         Likewise.
7274         * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst:
7275         Likewise.
7276         * doc/gccint/target-macros/storage-layout.rst: Likewise.
7277         * doc/gccint/target-macros/support-for-nested-functions.rst: Likewise.
7279 2022-11-09  Martin Liska  <mliska@suse.cz>
7281         * common/common-target.def: Port to RST.
7282         * target.def: Port to RST.
7284 2022-11-09  Martin Liska  <mliska@suse.cz>
7286         * doc/cpp/character-sets.rst: New file.
7287         * doc/cpp/conditional-syntax.rst: New file.
7288         * doc/cpp/conditional-uses.rst: New file.
7289         * doc/cpp/conditionals.rst: New file.
7290         * doc/cpp/conf.py: New file.
7291         * doc/cpp/copyright.rst: New file.
7292         * doc/cpp/deleted-code.rst: New file.
7293         * doc/cpp/diagnostics.rst: New file.
7294         * doc/cpp/environment-variables.rst: New file.
7295         * doc/cpp/gnu-free-documentation-license.rst: New file.
7296         * doc/cpp/header-files.rst: New file.
7297         * doc/cpp/header-files/alternatives-to-wrapper-ifndef.rst: New file.
7298         * doc/cpp/header-files/computed-includes.rst: New file.
7299         * doc/cpp/header-files/include-operation.rst: New file.
7300         * doc/cpp/header-files/include-syntax.rst: New file.
7301         * doc/cpp/header-files/once-only-headers.rst: New file.
7302         * doc/cpp/header-files/search-path.rst: New file.
7303         * doc/cpp/header-files/system-headers.rst: New file.
7304         * doc/cpp/header-files/wrapper-headers.rst: New file.
7305         * doc/cpp/implementation-defined-behavior.rst: New file.
7306         * doc/cpp/implementation-details.rst: New file.
7307         * doc/cpp/implementation-limits.rst: New file.
7308         * doc/cpp/index.rst: New file.
7309         * doc/cpp/indices-and-tables.rst: New file.
7310         * doc/cpp/initial-processing.rst: New file.
7311         * doc/cpp/invocation.rst: New file.
7312         * doc/cpp/line-control.rst: New file.
7313         * doc/cpp/macros.rst: New file.
7314         * doc/cpp/macros/concatenation.rst: New file.
7315         * doc/cpp/macros/directives-within-macro-arguments.rst: New file.
7316         * doc/cpp/macros/function-like-macros.rst: New file.
7317         * doc/cpp/macros/macro-arguments.rst: New file.
7318         * doc/cpp/macros/macro-pitfalls.rst: New file.
7319         * doc/cpp/macros/object-like-macros.rst: New file.
7320         * doc/cpp/macros/predefined-macros.rst: New file.
7321         * doc/cpp/macros/stringizing.rst: New file.
7322         * doc/cpp/macros/undefining-and-redefining-macros.rst: New file.
7323         * doc/cpp/macros/variadic-macros.rst: New file.
7324         * doc/cpp/obsolete-features.rst: New file.
7325         * doc/cpp/other-directives.rst: New file.
7326         * doc/cpp/overview.rst: New file.
7327         * doc/cpp/pragmas.rst: New file.
7328         * doc/cpp/preprocessor-output.rst: New file.
7329         * doc/cpp/the-preprocessing-language.rst: New file.
7330         * doc/cpp/tokenization.rst: New file.
7331         * doc/cpp/traditional-lexical-analysis.rst: New file.
7332         * doc/cpp/traditional-macros.rst: New file.
7333         * doc/cpp/traditional-miscellany.rst: New file.
7334         * doc/cpp/traditional-mode.rst: New file.
7335         * doc/cpp/traditional-warnings.rst: New file.
7336         * doc/cppinternals/conf.py: New file.
7337         * doc/cppinternals/copyright.rst: New file.
7338         * doc/cppinternals/cppinternals.rst: New file.
7339         * doc/cppinternals/cpplib.rst: New file.
7340         * doc/cppinternals/files.rst: New file.
7341         * doc/cppinternals/index.rst: New file.
7342         * doc/cppinternals/indices-and-tables.rst: New file.
7343         * doc/cppinternals/internal-representation-of-macros.rst: New file.
7344         * doc/cppinternals/just-which-line-number-anyway.rst: New file.
7345         * doc/cppinternals/lexing-a-line.rst: New file.
7346         * doc/cppinternals/lexing-a-token.rst: New file.
7347         * doc/cppinternals/looking-for-a-function-like-macros-opening-parenthesis.rst: New file.
7348         * doc/cppinternals/macro-expansion-overview.rst: New file.
7349         * doc/cppinternals/marking-tokens-ineligible-for-future-expansion.rst: New file.
7350         * doc/cppinternals/multiple-include-optimization.rst: New file.
7351         * doc/cppinternals/overview.rst: New file.
7352         * doc/cppinternals/representation-of-line-numbers.rst: New file.
7353         * doc/cppinternals/scanning-the-replacement-list-for-macros-to-expand.rst: New file.
7354         * doc/gcc/binary-compatibility.rst: New file.
7355         * doc/gcc/c++-implementation-defined-behavior.rst: New file.
7356         * doc/gcc/c-implementation-defined-behavior.rst: New file.
7357         * doc/gcc/c-implementation-defined-behavior/architecture.rst: New file.
7358         * doc/gcc/c-implementation-defined-behavior/arrays-and-pointers.rst: New file.
7359         * doc/gcc/c-implementation-defined-behavior/characters.rst: New file.
7360         * doc/gcc/c-implementation-defined-behavior/declarators.rst: New file.
7361         * doc/gcc/c-implementation-defined-behavior/environment.rst: New file.
7362         * doc/gcc/c-implementation-defined-behavior/floating-point.rst: New file.
7363         * doc/gcc/c-implementation-defined-behavior/hints.rst: New file.
7364         * doc/gcc/c-implementation-defined-behavior/identifiers.rst: New file.
7365         * doc/gcc/c-implementation-defined-behavior/integers.rst: New file.
7366         * doc/gcc/c-implementation-defined-behavior/library-functions.rst: New file.
7367         * doc/gcc/c-implementation-defined-behavior/locale-specific-behavior.rst: New file.
7368         * doc/gcc/c-implementation-defined-behavior/preprocessing-directives.rst: New file.
7369         * doc/gcc/c-implementation-defined-behavior/qualifiers.rst: New file.
7370         * doc/gcc/c-implementation-defined-behavior/statements.rst: New file.
7371         * doc/gcc/c-implementation-defined-behavior/structures-unions-enumerations-and-bit-fields.rst:
7372         New file.
7373         * doc/gcc/c-implementation-defined-behavior/translation.rst: New file.
7374         * doc/gcc/conditionally-supported-behavior.rst: New file.
7375         * doc/gcc/conf.py: New file.
7376         * doc/gcc/contributing-to-gcc-development.rst: New file.
7377         * doc/gcc/contributors-to-gcc.rst: New file.
7378         * doc/gcc/copyright.rst: New file.
7379         * doc/gcc/exception-handling.rst: New file.
7380         * doc/gcc/extensions-to-the-c++-language.rst: New file.
7381         * doc/gcc/extensions-to-the-c++-language/backwards-compatibility.rst: New file.
7382         * doc/gcc/extensions-to-the-c++-language/c++-concepts.rst: New file.
7383         * doc/gcc/extensions-to-the-c++-language/c++-interface-and-implementation-pragmas.rst:
7384         New file.
7385         * doc/gcc/extensions-to-the-c++-language/c++-specific-variable-function-and-type-attributes.rst:
7386         New file.
7387         * doc/gcc/extensions-to-the-c++-language/deprecated-features.rst: New file.
7388         * doc/gcc/extensions-to-the-c++-language/extracting-the-function-pointer-from-a-bound-pointer-to-member-function.rst:
7389         New file.
7390         * doc/gcc/extensions-to-the-c++-language/function-multiversioning.rst: New file.
7391         * doc/gcc/extensions-to-the-c++-language/restricting-pointer-aliasing.rst: New file.
7392         * doc/gcc/extensions-to-the-c++-language/type-traits.rst: New file.
7393         * doc/gcc/extensions-to-the-c++-language/vague-linkage.rst: New file.
7394         * doc/gcc/extensions-to-the-c++-language/when-is-a-volatile-c++-object-accessed.rst:
7395         New file.
7396         * doc/gcc/extensions-to-the-c++-language/wheres-the-template.rst: New file.
7397         * doc/gcc/extensions-to-the-c-language-family.rst: New file.
7398         * doc/gcc/extensions-to-the-c-language-family/128-bit-integers.rst: New file.
7399         * doc/gcc/extensions-to-the-c-language-family/additional-floating-types.rst: New file.
7400         * doc/gcc/extensions-to-the-c-language-family/alternate-keywords.rst: New file.
7401         * doc/gcc/extensions-to-the-c-language-family/an-inline-function-is-as-fast-as-a-macro.rst:
7402         New file.
7403         * doc/gcc/extensions-to-the-c-language-family/arithmetic-on-void-and-function-pointers.rst:
7404         New file.
7405         * doc/gcc/extensions-to-the-c-language-family/arrays-of-length-zero.rst: New file.
7406         * doc/gcc/extensions-to-the-c-language-family/arrays-of-variable-length.rst: New file.
7407         * doc/gcc/extensions-to-the-c-language-family/attribute-syntax.rst: New file.
7408         * doc/gcc/extensions-to-the-c-language-family/binary-constants-using-the-0b-prefix.rst:
7409         New file.
7410         * doc/gcc/extensions-to-the-c-language-family/built-in-functions-for-memory-model-aware-atomic-operations.rst:
7411         New file.
7412         * doc/gcc/extensions-to-the-c-language-family/built-in-functions-to-perform-arithmetic-with-overflow-checking.rst:
7413         New file.
7414         * doc/gcc/extensions-to-the-c-language-family/c++-style-comments.rst: New file.
7415         * doc/gcc/extensions-to-the-c-language-family/case-ranges.rst: New file.
7416         * doc/gcc/extensions-to-the-c-language-family/cast-to-a-union-type.rst: New file.
7417         * doc/gcc/extensions-to-the-c-language-family/complex-numbers.rst: New file.
7418         * doc/gcc/extensions-to-the-c-language-family/compound-literals.rst: New file.
7419         * doc/gcc/extensions-to-the-c-language-family/conditionals-with-omitted-operands.rst:
7420         New file.
7421         * doc/gcc/extensions-to-the-c-language-family/constructing-function-calls.rst: New file.
7422         * doc/gcc/extensions-to-the-c-language-family/decimal-floating-types.rst: New file.
7423         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions.rst:
7424         New file.
7425         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/aarch64-function-attributes.rst:
7426         New file.
7427         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/amd-gcn-function-attributes.rst:
7428         New file.
7429         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arc-function-attributes.rst:
7430         New file.
7431         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/arm-function-attributes.rst:
7432         New file.
7433         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/avr-function-attributes.rst:
7434         New file.
7435         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/blackfin-function-attributes.rst:
7436         New file.
7437         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/bpf-function-attributes.rst:
7438         New file.
7439         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/c-sky-function-attributes.rst:
7440         New file.
7441         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/common-function-attributes.rst:
7442         New file.
7443         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/epiphany-function-attributes.rst:
7444         New file.
7445         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/h8-300-function-attributes.rst:
7446         New file.
7447         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/ia-64-function-attributes.rst:
7448         New file.
7449         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32c-function-attributes.rst:
7450         New file.
7451         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m32r-d-function-attributes.rst:
7452         New file.
7453         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/m68k-function-attributes.rst:
7454         New file.
7455         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mcore-function-attributes.rst:
7456         New file.
7457         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mep-function-attributes.rst:
7458         New file.
7459         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microblaze-function-attributes.rst:
7460         New file.
7461         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/microsoft-windows-function-attributes.rst:
7462         New file.
7463         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/mips-function-attributes.rst:
7464         New file.
7465         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/msp430-function-attributes.rst:
7466         New file.
7467         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nds32-function-attributes.rst:
7468         New file.
7469         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nios-ii-function-attributes.rst:
7470         New file.
7471         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/nvidia-ptx-function-attributes.rst:
7472         New file.
7473         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/powerpc-function-attributes.rst:
7474         New file.
7475         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/risc-v-function-attributes.rst:
7476         New file.
7477         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rl78-function-attributes.rst:
7478         New file.
7479         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/rx-function-attributes.rst:
7480         New file.
7481         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/s-390-function-attributes.rst:
7482         New file.
7483         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/sh-function-attributes.rst:
7484         New file.
7485         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/symbian-os-function-attributes.rst:
7486         New file.
7487         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/v850-function-attributes.rst:
7488         New file.
7489         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/visium-function-attributes.rst:
7490         New file.
7491         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/x86-function-attributes.rst:
7492         New file.
7493         * doc/gcc/extensions-to-the-c-language-family/declaring-attributes-of-functions/xstormy16-function-attributes.rst:
7494         New file.
7495         * doc/gcc/extensions-to-the-c-language-family/designated-initializers.rst: New file.
7496         * doc/gcc/extensions-to-the-c-language-family/determining-the-alignment-of-functions-types-or-variables.rst:
7497         New file.
7498         * doc/gcc/extensions-to-the-c-language-family/dollar-signs-in-identifier-names.rst:
7499         New file.
7500         * doc/gcc/extensions-to-the-c-language-family/double-word-integers.rst: New file.
7501         * doc/gcc/extensions-to-the-c-language-family/enumerator-attributes.rst: New file.
7502         * doc/gcc/extensions-to-the-c-language-family/fixed-point-types.rst: New file.
7503         * doc/gcc/extensions-to-the-c-language-family/format-checks-specific-to-particular-target-machines.rst:
7504         New file.
7505         * doc/gcc/extensions-to-the-c-language-family/function-names-as-strings.rst: New file.
7506         * doc/gcc/extensions-to-the-c-language-family/getting-the-return-or-frame-address-of-a-function.rst:
7507         New file.
7508         * doc/gcc/extensions-to-the-c-language-family/half-precision-floating-point.rst: New file.
7509         * doc/gcc/extensions-to-the-c-language-family/hex-floats.rst: New file.
7510         * doc/gcc/extensions-to-the-c-language-family/how-to-use-inline-assembly-language-in-c-code.rst:
7511         New file.
7512         * doc/gcc/extensions-to-the-c-language-family/incomplete-enum-types.rst: New file.
7513         * doc/gcc/extensions-to-the-c-language-family/label-attributes.rst: New file.
7514         * doc/gcc/extensions-to-the-c-language-family/labels-as-values.rst: New file.
7515         * doc/gcc/extensions-to-the-c-language-family/legacy-sync-built-in-functions-for-atomic-memory-access.rst:
7516         New file.
7517         * doc/gcc/extensions-to-the-c-language-family/locally-declared-labels.rst: New file.
7518         * doc/gcc/extensions-to-the-c-language-family/macros-with-a-variable-number-of-arguments.rst:
7519         New file.
7520         * doc/gcc/extensions-to-the-c-language-family/mixed-declarations-labels-and-code.rst:
7521         New file.
7522         * doc/gcc/extensions-to-the-c-language-family/named-address-spaces.rst: New file.
7523         * doc/gcc/extensions-to-the-c-language-family/nested-functions.rst: New file.
7524         * doc/gcc/extensions-to-the-c-language-family/non-constant-initializers.rst: New file.
7525         * doc/gcc/extensions-to-the-c-language-family/non-lvalue-arrays-may-have-subscripts.rst:
7526         New file.
7527         * doc/gcc/extensions-to-the-c-language-family/nonlocal-gotos.rst: New file.
7528         * doc/gcc/extensions-to-the-c-language-family/object-size-checking-built-in-functions.rst:
7529         New file.
7530         * doc/gcc/extensions-to-the-c-language-family/other-built-in-functions-provided-by-gcc.rst:
7531         New file.
7532         * doc/gcc/extensions-to-the-c-language-family/pointer-arguments-in-variadic-functions.rst:
7533         New file.
7534         * doc/gcc/extensions-to-the-c-language-family/pointers-to-arrays-with-qualifiers-work-as-expected.rst:
7535         New file.
7536         * doc/gcc/extensions-to-the-c-language-family/pragmas-accepted-by-gcc.rst: New file.
7537         * doc/gcc/extensions-to-the-c-language-family/prototypes-and-old-style-function-definitions.rst:
7538         New file.
7539         * doc/gcc/extensions-to-the-c-language-family/referring-to-a-type-with-typeof.rst: New file.
7540         * doc/gcc/extensions-to-the-c-language-family/slightly-looser-rules-for-escaped-newlines.rst:
7541         New file.
7542         * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-types.rst: New file.
7543         * doc/gcc/extensions-to-the-c-language-family/specifying-attributes-of-variables.rst:
7544         New file.
7545         * doc/gcc/extensions-to-the-c-language-family/statement-attributes.rst: New file.
7546         * doc/gcc/extensions-to-the-c-language-family/statements-and-declarations-in-expressions.rst:
7547         New file.
7548         * doc/gcc/extensions-to-the-c-language-family/structures-with-no-members.rst: New file.
7549         * doc/gcc/extensions-to-the-c-language-family/support-for-offsetof.rst: New file.
7550         * doc/gcc/extensions-to-the-c-language-family/target-builtins.rst: New file.
7551         * doc/gcc/extensions-to-the-c-language-family/target-builtins/aarch64-built-in-functions.rst:
7552         New file.
7553         * doc/gcc/extensions-to-the-c-language-family/target-builtins/alpha-built-in-functions.rst:
7554         New file.
7555         * doc/gcc/extensions-to-the-c-language-family/target-builtins/altera-nios-ii-built-in-functions.rst:
7556         New file.
7557         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-built-in-functions.rst:
7558         New file.
7559         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arc-simd-built-in-functions.rst:
7560         New file.
7561         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-armv8-m-security-extensions.rst:
7562         New file.
7563         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-c-language-extensions-acle.rst:
7564         New file.
7565         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-floating-point-status-and-control-intrinsics.rst:
7566         New file.
7567         * doc/gcc/extensions-to-the-c-language-family/target-builtins/arm-iwmmxt-built-in-functions.rst:
7568         New file.
7569         * doc/gcc/extensions-to-the-c-language-family/target-builtins/avr-built-in-functions.rst:
7570         New file.
7571         * doc/gcc/extensions-to-the-c-language-family/target-builtins/basic-powerpc-built-in-functions.rst:
7572         New file.
7573         * doc/gcc/extensions-to-the-c-language-family/target-builtins/blackfin-built-in-functions.rst:
7574         New file.
7575         * doc/gcc/extensions-to-the-c-language-family/target-builtins/bpf-built-in-functions.rst:
7576         New file.
7577         * doc/gcc/extensions-to-the-c-language-family/target-builtins/fr-v-built-in-functions.rst:
7578         New file.
7579         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-dsp-built-in-functions.rst:
7580         New file.
7581         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-loongson-built-in-functions.rst:
7582         New file.
7583         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-paired-single-support.rst:
7584         New file.
7585         * doc/gcc/extensions-to-the-c-language-family/target-builtins/mips-simd-architecture-msa-support.rst:
7586         New file.
7587         * doc/gcc/extensions-to-the-c-language-family/target-builtins/msp430-built-in-functions.rst:
7588         New file.
7589         * doc/gcc/extensions-to-the-c-language-family/target-builtins/nds32-built-in-functions.rst:
7590         New file.
7591         * doc/gcc/extensions-to-the-c-language-family/target-builtins/other-mips-built-in-functions.rst:
7592         New file.
7593         * doc/gcc/extensions-to-the-c-language-family/target-builtins/picochip-built-in-functions.rst:
7594         New file.
7595         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-altivec-vsx-built-in-functions.rst:
7596         New file.
7597         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-atomic-memory-operation-functions.rst:
7598         New file.
7599         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-hardware-transactional-memory-built-in-functions.rst:
7600         New file.
7601         * doc/gcc/extensions-to-the-c-language-family/target-builtins/powerpc-matrix-multiply-assist-built-in-functions.rst:
7602         New file.
7603         * doc/gcc/extensions-to-the-c-language-family/target-builtins/pru-built-in-functions.rst:
7604         New file.
7605         * doc/gcc/extensions-to-the-c-language-family/target-builtins/risc-v-built-in-functions.rst:
7606         New file.
7607         * doc/gcc/extensions-to-the-c-language-family/target-builtins/rx-built-in-functions.rst:
7608         New file.
7609         * doc/gcc/extensions-to-the-c-language-family/target-builtins/s-390-system-z-built-in-functions.rst:
7610         New file.
7611         * doc/gcc/extensions-to-the-c-language-family/target-builtins/sh-built-in-functions.rst:
7612         New file.
7613         * doc/gcc/extensions-to-the-c-language-family/target-builtins/sparc-vis-built-in-functions.rst:
7614         New file.
7615         * doc/gcc/extensions-to-the-c-language-family/target-builtins/ti-c6x-built-in-functions.rst:
7616         New file.
7617         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-built-in-functions.rst:
7618         New file.
7619         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-control-flow-protection-intrinsics.rst:
7620         New file.
7621         * doc/gcc/extensions-to-the-c-language-family/target-builtins/x86-transactional-memory-intrinsics.rst:
7622         New file.
7623         * doc/gcc/extensions-to-the-c-language-family/the-character-esc-in-constants.rst: New file.
7624         * doc/gcc/extensions-to-the-c-language-family/thread-local-storage.rst: New file.
7625         * doc/gcc/extensions-to-the-c-language-family/unnamed-structure-and-union-fields.rst:
7626         New file.
7627         * doc/gcc/extensions-to-the-c-language-family/using-vector-instructions-through-built-in-functions.rst:
7628         New file.
7629         * doc/gcc/extensions-to-the-c-language-family/when-is-a-volatile-object-accessed.rst:
7630         New file.
7631         * doc/gcc/extensions-to-the-c-language-family/x86-specific-memory-model-extensions-for-transactional-memory.rst:
7632         New file.
7633         * doc/gcc/funding.rst: New file.
7634         * doc/gcc/gcc-command-options.rst: New file.
7635         * doc/gcc/gcc-command-options/c++-modules.rst: New file.
7636         * doc/gcc/gcc-command-options/compiling-c++-programs.rst: New file.
7637         * doc/gcc/gcc-command-options/description.rst: New file.
7638         * doc/gcc/gcc-command-options/environment-variables-affecting-gcc.rst: New file.
7639         * doc/gcc/gcc-command-options/gcc-developer-options.rst: New file.
7640         * doc/gcc/gcc-command-options/machine-dependent-options.rst: New file.
7641         * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rst: New file.
7642         * doc/gcc/gcc-command-options/machine-dependent-options/adapteva-epiphany-options.rst:
7643         New file.
7644         * doc/gcc/gcc-command-options/machine-dependent-options/amd-gcn-options.rst: New file.
7645         * doc/gcc/gcc-command-options/machine-dependent-options/arc-options.rst: New file.
7646         * doc/gcc/gcc-command-options/machine-dependent-options/arm-options.rst: New file.
7647         * doc/gcc/gcc-command-options/machine-dependent-options/avr-mmcu.rst: New file.
7648         * doc/gcc/gcc-command-options/machine-dependent-options/avr-options.rst: New file.
7649         * doc/gcc/gcc-command-options/machine-dependent-options/blackfin-options.rst: New file.
7650         * doc/gcc/gcc-command-options/machine-dependent-options/c-sky-options.rst: New file.
7651         * doc/gcc/gcc-command-options/machine-dependent-options/c6x-options.rst: New file.
7652         * doc/gcc/gcc-command-options/machine-dependent-options/cris-options.rst: New file.
7653         * doc/gcc/gcc-command-options/machine-dependent-options/darwin-options.rst: New file.
7654         * doc/gcc/gcc-command-options/machine-dependent-options/dec-alpha-options.rst: New file.
7655         * doc/gcc/gcc-command-options/machine-dependent-options/ebpf-options.rst: New file.
7656         * doc/gcc/gcc-command-options/machine-dependent-options/fr30-options.rst: New file.
7657         * doc/gcc/gcc-command-options/machine-dependent-options/frv-options.rst: New file.
7658         * doc/gcc/gcc-command-options/machine-dependent-options/ft32-options.rst: New file.
7659         * doc/gcc/gcc-command-options/machine-dependent-options/gnu-linux-options.rst: New file.
7660         * doc/gcc/gcc-command-options/machine-dependent-options/h8-300-options.rst: New file.
7661         * doc/gcc/gcc-command-options/machine-dependent-options/hppa-options.rst: New file.
7662         * doc/gcc/gcc-command-options/machine-dependent-options/ia-64-options.rst: New file.
7663         * doc/gcc/gcc-command-options/machine-dependent-options/ibm-rs-6000-and-powerpc-options.rst:
7664         New file.
7665         * doc/gcc/gcc-command-options/machine-dependent-options/lm32-options.rst: New file.
7666         * doc/gcc/gcc-command-options/machine-dependent-options/loongarch-options.rst: New file.
7667         * doc/gcc/gcc-command-options/machine-dependent-options/m32c-options.rst: New file.
7668         * doc/gcc/gcc-command-options/machine-dependent-options/m32r-d-options.rst: New file.
7669         * doc/gcc/gcc-command-options/machine-dependent-options/m680x0-options.rst: New file.
7670         * doc/gcc/gcc-command-options/machine-dependent-options/mcore-options.rst: New file.
7671         * doc/gcc/gcc-command-options/machine-dependent-options/mep-options.rst: New file.
7672         * doc/gcc/gcc-command-options/machine-dependent-options/microblaze-options.rst: New file.
7673         * doc/gcc/gcc-command-options/machine-dependent-options/mips-options.rst: New file.
7674         * doc/gcc/gcc-command-options/machine-dependent-options/mmix-options.rst: New file.
7675         * doc/gcc/gcc-command-options/machine-dependent-options/mn10300-options.rst: New file.
7676         * doc/gcc/gcc-command-options/machine-dependent-options/moxie-options.rst: New file.
7677         * doc/gcc/gcc-command-options/machine-dependent-options/msp430-options.rst: New file.
7678         * doc/gcc/gcc-command-options/machine-dependent-options/nds32-options.rst: New file.
7679         * doc/gcc/gcc-command-options/machine-dependent-options/nios-ii-options.rst: New file.
7680         * doc/gcc/gcc-command-options/machine-dependent-options/nvidia-ptx-options.rst: New file.
7681         * doc/gcc/gcc-command-options/machine-dependent-options/openrisc-options.rst: New file.
7682         * doc/gcc/gcc-command-options/machine-dependent-options/options-for-system-v.rst: New file.
7683         * doc/gcc/gcc-command-options/machine-dependent-options/pdp-11-options.rst: New file.
7684         * doc/gcc/gcc-command-options/machine-dependent-options/picochip-options.rst: New file.
7685         * doc/gcc/gcc-command-options/machine-dependent-options/powerpc-options.rst: New file.
7686         * doc/gcc/gcc-command-options/machine-dependent-options/pru-options.rst: New file.
7687         * doc/gcc/gcc-command-options/machine-dependent-options/risc-v-options.rst: New file.
7688         * doc/gcc/gcc-command-options/machine-dependent-options/rl78-options.rst: New file.
7689         * doc/gcc/gcc-command-options/machine-dependent-options/rx-options.rst: New file.
7690         * doc/gcc/gcc-command-options/machine-dependent-options/s-390-and-zseries-options.rst:
7691         New file.
7692         * doc/gcc/gcc-command-options/machine-dependent-options/score-options.rst: New file.
7693         * doc/gcc/gcc-command-options/machine-dependent-options/sh-options.rst: New file.
7694         * doc/gcc/gcc-command-options/machine-dependent-options/solaris-2-options.rst: New file.
7695         * doc/gcc/gcc-command-options/machine-dependent-options/sparc-options.rst: New file.
7696         * doc/gcc/gcc-command-options/machine-dependent-options/v850-options.rst: New file.
7697         * doc/gcc/gcc-command-options/machine-dependent-options/vax-options.rst: New file.
7698         * doc/gcc/gcc-command-options/machine-dependent-options/visium-options.rst: New file.
7699         * doc/gcc/gcc-command-options/machine-dependent-options/vms-options.rst: New file.
7700         * doc/gcc/gcc-command-options/machine-dependent-options/vxworks-options.rst: New file.
7701         * doc/gcc/gcc-command-options/machine-dependent-options/x86-options.rst: New file.
7702         * doc/gcc/gcc-command-options/machine-dependent-options/x86-windows-options.rst: New file.
7703         * doc/gcc/gcc-command-options/machine-dependent-options/xstormy16-options.rst: New file.
7704         * doc/gcc/gcc-command-options/machine-dependent-options/xtensa-options.rst: New file.
7705         * doc/gcc/gcc-command-options/machine-dependent-options/zseries-options.rst: New file.
7706         * doc/gcc/gcc-command-options/option-summary.rst: New file.
7707         * doc/gcc/gcc-command-options/options-controlling-c++-dialect.rst: New file.
7708         * doc/gcc/gcc-command-options/options-controlling-c-dialect.rst: New file.
7709         * doc/gcc/gcc-command-options/options-controlling-objective-c-and-objective-c++-dialects.rst:
7710         New file.
7711         * doc/gcc/gcc-command-options/options-controlling-the-kind-of-output.rst: New file.
7712         * doc/gcc/gcc-command-options/options-controlling-the-preprocessor.rst: New file.
7713         * doc/gcc/gcc-command-options/options-for-code-generation-conventions.rst: New file.
7714         * doc/gcc/gcc-command-options/options-for-debugging-your-program.rst: New file.
7715         * doc/gcc/gcc-command-options/options-for-directory-search.rst: New file.
7716         * doc/gcc/gcc-command-options/options-for-linking.rst: New file.
7717         * doc/gcc/gcc-command-options/options-that-control-optimization.rst: New file.
7718         * doc/gcc/gcc-command-options/options-that-control-static-analysis.rst: New file.
7719         * doc/gcc/gcc-command-options/options-to-control-diagnostic-messages-formatting.rst:
7720         New file.
7721         * doc/gcc/gcc-command-options/options-to-request-or-suppress-warnings.rst: New file.
7722         * doc/gcc/gcc-command-options/passing-options-to-the-assembler.rst: New file.
7723         * doc/gcc/gcc-command-options/program-instrumentation-options.rst: New file.
7724         * doc/gcc/gcc-command-options/specifying-subprocesses-and-the-switches-to-pass-to-them.rst:
7725         New file.
7726         * doc/gcc/gcc-command-options/using-precompiled-headers.rst: New file.
7727         * doc/gcc/gcc.rst: New file.
7728         * doc/gcc/gcov-dump.rst: New file.
7729         * doc/gcc/gcov-tool.rst: New file.
7730         * doc/gcc/gcov.rst: New file.
7731         * doc/gcc/gcov/brief-description-of-gcov-data-files.rst: New file.
7732         * doc/gcc/gcov/data-file-relocation-to-support-cross-profiling.rst: New file.
7733         * doc/gcc/gcov/introduction-to-gcov.rst: New file.
7734         * doc/gcc/gcov/invoking-gcov.rst: New file.
7735         * doc/gcc/gcov/profiling-and-test-coverage-in-freestanding-environments.rst: New file.
7736         * doc/gcc/gcov/using-gcov-with-gcc-optimization.rst: New file.
7737         * doc/gcc/general-public-license-3.rst: New file.
7738         * doc/gcc/gnu-free-documentation-license.rst: New file.
7739         * doc/gcc/gnu-objective-c-features.rst: New file.
7740         * doc/gcc/gnu-objective-c-features/compatibilityalias.rst: New file.
7741         * doc/gcc/gnu-objective-c-features/constant-string-objects.rst: New file.
7742         * doc/gcc/gnu-objective-c-features/exceptions.rst: New file.
7743         * doc/gcc/gnu-objective-c-features/fast-enumeration.rst: New file.
7744         * doc/gcc/gnu-objective-c-features/garbage-collection.rst: New file.
7745         * doc/gcc/gnu-objective-c-features/gnu-objective-c-runtime-api.rst: New file.
7746         * doc/gcc/gnu-objective-c-features/load-executing-code-before-main.rst: New file.
7747         * doc/gcc/gnu-objective-c-features/messaging-with-the-gnu-objective-c-runtime.rst: New file.
7748         * doc/gcc/gnu-objective-c-features/synchronization.rst: New file.
7749         * doc/gcc/gnu-objective-c-features/type-encoding.rst: New file.
7750         * doc/gcc/gnu.rst: New file.
7751         * doc/gcc/have-you-found-a-bug.rst: New file.
7752         * doc/gcc/how-and-where-to-report-bugs.rst: New file.
7753         * doc/gcc/how-to-get-help-with-gcc.rst: New file.
7754         * doc/gcc/index.rst: New file.
7755         * doc/gcc/indices-and-tables.rst: New file.
7756         * doc/gcc/known-causes-of-trouble-with-gcc.rst: New file.
7757         * doc/gcc/known-causes-of-trouble-with-gcc/actual-bugs-we-havent-fixed-yet.rst: New file.
7758         * doc/gcc/known-causes-of-trouble-with-gcc/certain-changes-we-dont-want-to-make.rst:
7759         New file.
7760         * doc/gcc/known-causes-of-trouble-with-gcc/common-misunderstandings-with-gnu-c.rst:
7761         New file.
7762         * doc/gcc/known-causes-of-trouble-with-gcc/disappointments-and-misunderstandings.rst:
7763         New file.
7764         * doc/gcc/known-causes-of-trouble-with-gcc/fixed-header-files.rst: New file.
7765         * doc/gcc/known-causes-of-trouble-with-gcc/incompatibilities-of-gcc.rst: New file.
7766         * doc/gcc/known-causes-of-trouble-with-gcc/interoperation.rst: New file.
7767         * doc/gcc/known-causes-of-trouble-with-gcc/standard-libraries.rst: New file.
7768         * doc/gcc/known-causes-of-trouble-with-gcc/warning-messages-and-error-messages.rst:
7769         New file.
7770         * doc/gcc/language-standards-supported-by-gcc.rst: New file.
7771         * doc/gcc/language-standards-supported-by-gcc/c++-language.rst: New file.
7772         * doc/gcc/language-standards-supported-by-gcc/c-language.rst: New file.
7773         * doc/gcc/language-standards-supported-by-gcc/d-language.rst: New file.
7774         * doc/gcc/language-standards-supported-by-gcc/go-language.rst: New file.
7775         * doc/gcc/language-standards-supported-by-gcc/objective-c-and-objective-c++-languages.rst:
7776         New file.
7777         * doc/gcc/language-standards-supported-by-gcc/references-for-other-languages.rst: New file.
7778         * doc/gcc/lto-dump.rst: New file.
7779         * doc/gcc/programming-languages-supported-by-gcc.rst: New file.
7780         * doc/gcc/reporting-bugs.rst: New file.
7781         * doc/gccint/analysis-and-optimization-of-gimple-tuples.rst: New file.
7782         * doc/gccint/analysis-and-optimization-of-gimple-tuples/alias-analysis.rst: New file.
7783         * doc/gccint/analysis-and-optimization-of-gimple-tuples/annotations.rst: New file.
7784         * doc/gccint/analysis-and-optimization-of-gimple-tuples/memory-model.rst: New file.
7785         * doc/gccint/analysis-and-optimization-of-gimple-tuples/ssa-operands.rst: New file.
7786         * doc/gccint/analysis-and-optimization-of-gimple-tuples/static-single-assignment.rst:
7787         New file.
7788         * doc/gccint/analysis-and-representation-of-loops.rst: New file.
7789         * doc/gccint/analysis-and-representation-of-loops/data-dependency-analysis.rst: New file.
7790         * doc/gccint/analysis-and-representation-of-loops/iv-analysis-on-rtl.rst: New file.
7791         * doc/gccint/analysis-and-representation-of-loops/loop-closed-ssa-form.rst: New file.
7792         * doc/gccint/analysis-and-representation-of-loops/loop-manipulation.rst: New file.
7793         * doc/gccint/analysis-and-representation-of-loops/loop-querying.rst: New file.
7794         * doc/gccint/analysis-and-representation-of-loops/loop-representation.rst: New file.
7795         * doc/gccint/analysis-and-representation-of-loops/number-of-iterations-analysis.rst:
7796         New file.
7797         * doc/gccint/analysis-and-representation-of-loops/scalar-evolutions.rst: New file.
7798         * doc/gccint/analyzer-internals.rst: New file.
7799         * doc/gccint/collect2.rst: New file.
7800         * doc/gccint/conf.py: New file.
7801         * doc/gccint/contributing-to-gcc-development.rst: New file.
7802         * doc/gccint/contributors-to-gcc.rst: New file.
7803         * doc/gccint/control-flow-graph.rst: New file.
7804         * doc/gccint/control-flow-graph/basic-blocks.rst: New file.
7805         * doc/gccint/control-flow-graph/edges.rst: New file.
7806         * doc/gccint/control-flow-graph/liveness-information.rst: New file.
7807         * doc/gccint/control-flow-graph/maintaining-the-cfg.rst: New file.
7808         * doc/gccint/control-flow-graph/profile-information.rst: New file.
7809         * doc/gccint/copyright.rst: New file.
7810         * doc/gccint/debugging-the-analyzer.rst: New file.
7811         * doc/gccint/funding.rst: New file.
7812         * doc/gccint/gcc-and-portability.rst: New file.
7813         * doc/gccint/general-public-license-3.rst: New file.
7814         * doc/gccint/generic.rst: New file.
7815         * doc/gccint/generic/attributes-in-trees.rst: New file.
7816         * doc/gccint/generic/c-and-c++-trees.rst: New file.
7817         * doc/gccint/generic/declarations.rst: New file.
7818         * doc/gccint/generic/deficiencies.rst: New file.
7819         * doc/gccint/generic/expressions.rst: New file.
7820         * doc/gccint/generic/functions.rst: New file.
7821         * doc/gccint/generic/language-dependent-trees.rst: New file.
7822         * doc/gccint/generic/overview.rst: New file.
7823         * doc/gccint/generic/statements.rst: New file.
7824         * doc/gccint/generic/types.rst: New file.
7825         * doc/gccint/gimple-api.rst: New file.
7826         * doc/gccint/gimple.rst: New file.
7827         * doc/gccint/gimple/adding-a-new-gimple-statement-code.rst: New file.
7828         * doc/gccint/gimple/class-hierarchy-of-gimple-statements.rst: New file.
7829         * doc/gccint/gimple/exception-handling.rst: New file.
7830         * doc/gccint/gimple/gimple-instruction-set.rst: New file.
7831         * doc/gccint/gimple/gimple-sequences.rst: New file.
7832         * doc/gccint/gimple/manipulating-gimple-statements.rst: New file.
7833         * doc/gccint/gimple/operands.rst: New file.
7834         * doc/gccint/gimple/sequence-iterators.rst: New file.
7835         * doc/gccint/gimple/statement-and-operand-traversals.rst: New file.
7836         * doc/gccint/gimple/temporaries.rst: New file.
7837         * doc/gccint/gimple/tuple-representation.rst: New file.
7838         * doc/gccint/gimple/tuple-specific-accessors.rst: New file.
7839         * doc/gccint/gimple/tuple-specific-accessors/gimpleasm.rst: New file.
7840         * doc/gccint/gimple/tuple-specific-accessors/gimpleassign.rst: New file.
7841         * doc/gccint/gimple/tuple-specific-accessors/gimplebind.rst: New file.
7842         * doc/gccint/gimple/tuple-specific-accessors/gimplecall.rst: New file.
7843         * doc/gccint/gimple/tuple-specific-accessors/gimplecatch.rst: New file.
7844         * doc/gccint/gimple/tuple-specific-accessors/gimplecond.rst: New file.
7845         * doc/gccint/gimple/tuple-specific-accessors/gimpledebug.rst: New file.
7846         * doc/gccint/gimple/tuple-specific-accessors/gimpleehfilter.rst: New file.
7847         * doc/gccint/gimple/tuple-specific-accessors/gimplegoto.rst: New file.
7848         * doc/gccint/gimple/tuple-specific-accessors/gimplelabel.rst: New file.
7849         * doc/gccint/gimple/tuple-specific-accessors/gimplenop.rst: New file.
7850         * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicload.rst: New file.
7851         * doc/gccint/gimple/tuple-specific-accessors/gimpleompatomicstore.rst: New file.
7852         * doc/gccint/gimple/tuple-specific-accessors/gimpleompcontinue.rst: New file.
7853         * doc/gccint/gimple/tuple-specific-accessors/gimpleompcritical.rst: New file.
7854         * doc/gccint/gimple/tuple-specific-accessors/gimpleompfor.rst: New file.
7855         * doc/gccint/gimple/tuple-specific-accessors/gimpleompmaster.rst: New file.
7856         * doc/gccint/gimple/tuple-specific-accessors/gimpleompordered.rst: New file.
7857         * doc/gccint/gimple/tuple-specific-accessors/gimpleompparallel.rst: New file.
7858         * doc/gccint/gimple/tuple-specific-accessors/gimpleompreturn.rst: New file.
7859         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsection.rst: New file.
7860         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsections.rst: New file.
7861         * doc/gccint/gimple/tuple-specific-accessors/gimpleompsingle.rst: New file.
7862         * doc/gccint/gimple/tuple-specific-accessors/gimplephi.rst: New file.
7863         * doc/gccint/gimple/tuple-specific-accessors/gimpleresx.rst: New file.
7864         * doc/gccint/gimple/tuple-specific-accessors/gimplereturn.rst: New file.
7865         * doc/gccint/gimple/tuple-specific-accessors/gimpleswitch.rst: New file.
7866         * doc/gccint/gimple/tuple-specific-accessors/gimpletry.rst: New file.
7867         * doc/gccint/gimple/tuple-specific-accessors/gimplewithcleanupexpr.rst: New file.
7868         * doc/gccint/gnu-free-documentation-license.rst: New file.
7869         * doc/gccint/guidelines-for-diagnostics.rst: New file.
7870         * doc/gccint/guidelines-for-options.rst: New file.
7871         * doc/gccint/host-common.rst: New file.
7872         * doc/gccint/host-configuration.rst: New file.
7873         * doc/gccint/host-filesystem.rst: New file.
7874         * doc/gccint/host-makefile-fragments.rst: New file.
7875         * doc/gccint/host-misc.rst: New file.
7876         * doc/gccint/index.rst: New file.
7877         * doc/gccint/indices-and-tables.rst: New file.
7878         * doc/gccint/interfacing-to-gcc-output.rst: New file.
7879         * doc/gccint/introduction.rst: New file.
7880         * doc/gccint/language-front-ends-in-gcc.rst: New file.
7881         * doc/gccint/link-time-optimization.rst: New file.
7882         * doc/gccint/link-time-optimization/design-overview.rst: New file.
7883         * doc/gccint/link-time-optimization/internal-flags-controlling-lto1.rst: New file.
7884         * doc/gccint/link-time-optimization/lto-file-sections.rst: New file.
7885         * doc/gccint/link-time-optimization/using-summary-information-in-ipa-passes.rst: New file.
7886         * doc/gccint/link-time-optimization/whole-program-assumptions-linker-plugin-and-symbol-visibilities.rst:
7887         New file.
7888         * doc/gccint/machine-descriptions.rst: New file.
7889         * doc/gccint/machine-descriptions/c-statements-for-assembler-output.rst: New file.
7890         * doc/gccint/machine-descriptions/canonicalization-of-instructions.rst: New file.
7891         * doc/gccint/machine-descriptions/conditional-execution.rst: New file.
7892         * doc/gccint/machine-descriptions/constant-definitions.rst: New file.
7893         * doc/gccint/machine-descriptions/defining-how-to-split-instructions.rst: New file.
7894         * doc/gccint/machine-descriptions/defining-jump-instruction-patterns.rst: New file.
7895         * doc/gccint/machine-descriptions/defining-looping-instruction-patterns.rst: New file.
7896         * doc/gccint/machine-descriptions/defining-rtl-sequences-for-code-generation.rst: New file.
7897         * doc/gccint/machine-descriptions/everything-about-instruction-patterns.rst: New file.
7898         * doc/gccint/machine-descriptions/example-of-defineinsn.rst: New file.
7899         * doc/gccint/machine-descriptions/including-patterns-in-machine-descriptions.rst: New file.
7900         * doc/gccint/machine-descriptions/instruction-attributes.rst: New file.
7901         * doc/gccint/machine-descriptions/interdependence-of-patterns.rst: New file.
7902         * doc/gccint/machine-descriptions/iterators.rst: New file.
7903         * doc/gccint/machine-descriptions/machine-specific-peephole-optimizers.rst: New file.
7904         * doc/gccint/machine-descriptions/operand-constraints.rst: New file.
7905         * doc/gccint/machine-descriptions/output-templates-and-operand-substitution.rst: New file.
7906         * doc/gccint/machine-descriptions/overview-of-how-the-machine-description-is-used.rst:
7907         New file.
7908         * doc/gccint/machine-descriptions/predicates.rst: New file.
7909         * doc/gccint/machine-descriptions/rtl-template.rst: New file.
7910         * doc/gccint/machine-descriptions/rtl-templates-transformations.rst: New file.
7911         * doc/gccint/machine-descriptions/standard-pattern-names-for-generation.rst: New file.
7912         * doc/gccint/machine-descriptions/when-the-order-of-patterns-matters.rst: New file.
7913         * doc/gccint/makefile-fragments.rst: New file.
7914         * doc/gccint/match-and-simplify.rst: New file.
7915         * doc/gccint/memory-management-and-type-information.rst: New file.
7916         * doc/gccint/memory-management-and-type-information/how-to-invoke-the-garbage-collector.rst:
7917         New file.
7918         * doc/gccint/memory-management-and-type-information/marking-roots-for-the-garbage-collector.rst:
7919         New file.
7920         * doc/gccint/memory-management-and-type-information/source-files-containing-type-information.rst:
7921         New file.
7922         * doc/gccint/memory-management-and-type-information/support-for-inheritance.rst: New file.
7923         * doc/gccint/memory-management-and-type-information/support-for-user-provided-gc-marking-routines.rst:
7924         New file.
7925         * doc/gccint/memory-management-and-type-information/the-inside-of-a-gty.rst: New file.
7926         * doc/gccint/memory-management-and-type-information/troubleshooting-the-garbage-collector.rst:
7927         New file.
7928         * doc/gccint/option-file-format.rst: New file.
7929         * doc/gccint/option-properties.rst: New file.
7930         * doc/gccint/option-specification-files.rst: New file.
7931         * doc/gccint/passes-and-files-of-the-compiler.rst: New file.
7932         * doc/gccint/passes-and-files-of-the-compiler/gimplification-pass.rst: New file.
7933         * doc/gccint/passes-and-files-of-the-compiler/inter-procedural-optimization-passes.rst:
7934         New file.
7935         * doc/gccint/passes-and-files-of-the-compiler/optimization-info.rst: New file.
7936         * doc/gccint/passes-and-files-of-the-compiler/parsing-pass.rst: New file.
7937         * doc/gccint/passes-and-files-of-the-compiler/pass-manager.rst: New file.
7938         * doc/gccint/passes-and-files-of-the-compiler/rtl-passes.rst: New file.
7939         * doc/gccint/passes-and-files-of-the-compiler/tree-ssa-passes.rst: New file.
7940         * doc/gccint/plugins.rst: New file.
7941         * doc/gccint/plugins/building-gcc-plugins.rst: New file.
7942         * doc/gccint/plugins/controlling-which-passes-are-being-run.rst: New file.
7943         * doc/gccint/plugins/giving-information-about-a-plugin.rst: New file.
7944         * doc/gccint/plugins/interacting-with-the-gcc-garbage-collector.rst: New file.
7945         * doc/gccint/plugins/interacting-with-the-pass-manager.rst: New file.
7946         * doc/gccint/plugins/keeping-track-of-available-passes.rst: New file.
7947         * doc/gccint/plugins/loading-plugins.rst: New file.
7948         * doc/gccint/plugins/plugin-api.rst: New file.
7949         * doc/gccint/plugins/recording-information-about-pass-execution.rst: New file.
7950         * doc/gccint/plugins/registering-custom-attributes-or-pragmas.rst: New file.
7951         * doc/gccint/rtl-representation.rst: New file.
7952         * doc/gccint/rtl-representation/access-to-operands.rst: New file.
7953         * doc/gccint/rtl-representation/access-to-special-operands.rst: New file.
7954         * doc/gccint/rtl-representation/assembler-instructions-as-expressions.rst: New file.
7955         * doc/gccint/rtl-representation/bit-fields.rst: New file.
7956         * doc/gccint/rtl-representation/comparison-operations.rst: New file.
7957         * doc/gccint/rtl-representation/constant-expression-types.rst: New file.
7958         * doc/gccint/rtl-representation/conversions.rst: New file.
7959         * doc/gccint/rtl-representation/declarations.rst: New file.
7960         * doc/gccint/rtl-representation/embedded-side-effects-on-addresses.rst: New file.
7961         * doc/gccint/rtl-representation/flags-in-an-rtl-expression.rst: New file.
7962         * doc/gccint/rtl-representation/insns.rst: New file.
7963         * doc/gccint/rtl-representation/machine-modes.rst: New file.
7964         * doc/gccint/rtl-representation/on-the-side-ssa-form-for-rtl.rst: New file.
7965         * doc/gccint/rtl-representation/reading-rtl.rst: New file.
7966         * doc/gccint/rtl-representation/registers-and-memory.rst: New file.
7967         * doc/gccint/rtl-representation/rtl-classes-and-formats.rst: New file.
7968         * doc/gccint/rtl-representation/rtl-expressions-for-arithmetic.rst: New file.
7969         * doc/gccint/rtl-representation/rtl-object-types.rst: New file.
7970         * doc/gccint/rtl-representation/rtl-representation-of-function-call-insns.rst: New file.
7971         * doc/gccint/rtl-representation/side-effect-expressions.rst: New file.
7972         * doc/gccint/rtl-representation/structure-sharing-assumptions.rst: New file.
7973         * doc/gccint/rtl-representation/variable-location-debug-information-in-rtl.rst: New file.
7974         * doc/gccint/rtl-representation/vector-operations.rst: New file.
7975         * doc/gccint/sizes-and-offsets-as-runtime-invariants.rst: New file.
7976         * doc/gccint/sizes-and-offsets-as-runtime-invariants/alignment-of-polyints.rst: New file.
7977         * doc/gccint/sizes-and-offsets-as-runtime-invariants/arithmetic-on-polyints.rst: New file.
7978         * doc/gccint/sizes-and-offsets-as-runtime-invariants/comparisons-involving-polyint.rst:
7979         New file.
7980         * doc/gccint/sizes-and-offsets-as-runtime-invariants/computing-bounds-on-polyints.rst:
7981         New file.
7982         * doc/gccint/sizes-and-offsets-as-runtime-invariants/consequences-of-using-polyint.rst:
7983         New file.
7984         * doc/gccint/sizes-and-offsets-as-runtime-invariants/converting-polyints.rst: New file.
7985         * doc/gccint/sizes-and-offsets-as-runtime-invariants/guidelines-for-using-polyint.rst:
7986         New file.
7987         * doc/gccint/sizes-and-offsets-as-runtime-invariants/miscellaneous-polyint-routines.rst:
7988         New file.
7989         * doc/gccint/sizes-and-offsets-as-runtime-invariants/overview-of-polyint.rst: New file.
7990         * doc/gccint/source-tree-structure-and-build-system.rst: New file.
7991         * doc/gccint/source-tree-structure-and-build-system/configure-terms-and-history.rst:
7992         New file.
7993         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory.rst: New file.
7994         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-language-front-end.rst:
7995         New file.
7996         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/anatomy-of-a-target-back-end.rst:
7997         New file.
7998         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/build-system-in-the-gcc-directory.rst:
7999         New file.
8000         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/building-documentation.rst:
8001         New file.
8002         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/configuration-in-the-gcc-directory.rst:
8003         New file.
8004         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/headers-installed-by-gcc.rst:
8005         New file.
8006         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/library-source-files-and-headers-under-the-gcc-directory.rst:
8007         New file.
8008         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/makefile-targets.rst:
8009         New file.
8010         * doc/gccint/source-tree-structure-and-build-system/the-gcc-subdirectory/subdirectories-of-gcc.rst:
8011         New file.
8012         * doc/gccint/source-tree-structure-and-build-system/top-level-source-directory.rst:
8013         New file.
8014         * doc/gccint/standard-header-file-directories.rst: New file.
8015         * doc/gccint/static-analyzer.rst: New file.
8016         * doc/gccint/target-macros.rst: New file.
8017         * doc/gccint/target-macros/adding-support-for-named-address-spaces.rst: New file.
8018         * doc/gccint/target-macros/addressing-modes.rst: New file.
8019         * doc/gccint/target-macros/adjusting-the-instruction-scheduler.rst: New file.
8020         * doc/gccint/target-macros/anchored-addresses.rst: New file.
8021         * doc/gccint/target-macros/c++-abi-parameters.rst: New file.
8022         * doc/gccint/target-macros/condition-code-status.rst: New file.
8023         * doc/gccint/target-macros/controlling-debugging-information-format.rst: New file.
8024         * doc/gccint/target-macros/controlling-the-compilation-driver-gcc.rst: New file.
8025         * doc/gccint/target-macros/cross-compilation-and-floating-point.rst: New file.
8026         * doc/gccint/target-macros/d-abi-parameters.rst: New file.
8027         * doc/gccint/target-macros/defining-coprocessor-specifics-for-mips-targets.rst: New file.
8028         * doc/gccint/target-macros/defining-data-structures-for-per-function-information.rst:
8029         New file.
8030         * doc/gccint/target-macros/defining-target-specific-uses-of-attribute.rst: New file.
8031         * doc/gccint/target-macros/defining-the-output-assembler-language.rst: New file.
8032         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-alignment.rst:
8033         New file.
8034         * doc/gccint/target-macros/defining-the-output-assembler-language/assembler-commands-for-exception-regions.rst:
8035         New file.
8036         * doc/gccint/target-macros/defining-the-output-assembler-language/how-initialization-functions-are-handled.rst:
8037         New file.
8038         * doc/gccint/target-macros/defining-the-output-assembler-language/macros-controlling-initialization-routines.rst:
8039         New file.
8040         * doc/gccint/target-macros/defining-the-output-assembler-language/output-and-generation-of-labels.rst:
8041         New file.
8042         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-assembler-instructions.rst:
8043         New file.
8044         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-data.rst:
8045         New file.
8046         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-dispatch-tables.rst:
8047         New file.
8048         * doc/gccint/target-macros/defining-the-output-assembler-language/output-of-uninitialized-variables.rst:
8049         New file.
8050         * doc/gccint/target-macros/defining-the-output-assembler-language/the-overall-framework-of-an-assembler-file.rst:
8051         New file.
8052         * doc/gccint/target-macros/describing-relative-costs-of-operations.rst: New file.
8053         * doc/gccint/target-macros/dividing-the-output-into-sections-texts-data.rst: New file.
8054         * doc/gccint/target-macros/emulating-tls.rst: New file.
8055         * doc/gccint/target-macros/implementing-the-varargs-macros.rst: New file.
8056         * doc/gccint/target-macros/implicit-calls-to-library-routines.rst: New file.
8057         * doc/gccint/target-macros/layout-of-source-language-data-types.rst: New file.
8058         * doc/gccint/target-macros/miscellaneous-parameters.rst: New file.
8059         * doc/gccint/target-macros/mode-switching-instructions.rst: New file.
8060         * doc/gccint/target-macros/parameters-for-precompiled-header-validity-checking.rst:
8061         New file.
8062         * doc/gccint/target-macros/position-independent-code.rst: New file.
8063         * doc/gccint/target-macros/register-classes.rst: New file.
8064         * doc/gccint/target-macros/register-usage.rst: New file.
8065         * doc/gccint/target-macros/run-time-target-specification.rst: New file.
8066         * doc/gccint/target-macros/stack-layout-and-calling-conventions.rst: New file.
8067         * doc/gccint/target-macros/stack-layout-and-calling-conventions/basic-stack-layout.rst:
8068         New file.
8069         * doc/gccint/target-macros/stack-layout-and-calling-conventions/caller-saves-register-allocation.rst:
8070         New file.
8071         * doc/gccint/target-macros/stack-layout-and-calling-conventions/eliminating-frame-pointer-and-arg-pointer.rst:
8072         New file.
8073         * doc/gccint/target-macros/stack-layout-and-calling-conventions/exception-handling-support.rst:
8074         New file.
8075         * doc/gccint/target-macros/stack-layout-and-calling-conventions/function-entry-and-exit.rst:
8076         New file.
8077         * doc/gccint/target-macros/stack-layout-and-calling-conventions/generating-code-for-profiling.rst:
8078         New file.
8079         * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-large-values-are-returned.rst:
8080         New file.
8081         * doc/gccint/target-macros/stack-layout-and-calling-conventions/how-scalar-function-values-are-returned.rst:
8082         New file.
8083         * doc/gccint/target-macros/stack-layout-and-calling-conventions/miscellaneous-register-hooks.rst:
8084         New file.
8085         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-arguments-in-registers.rst:
8086         New file.
8087         * doc/gccint/target-macros/stack-layout-and-calling-conventions/passing-function-arguments-on-the-stack.rst:
8088         New file.
8089         * doc/gccint/target-macros/stack-layout-and-calling-conventions/permitting-tail-calls.rst:
8090         New file.
8091         * doc/gccint/target-macros/stack-layout-and-calling-conventions/registers-that-address-the-stack-frame.rst:
8092         New file.
8093         * doc/gccint/target-macros/stack-layout-and-calling-conventions/shrink-wrapping-separate-components.rst:
8094         New file.
8095         * doc/gccint/target-macros/stack-layout-and-calling-conventions/specifying-how-stack-checking-is-done.rst:
8096         New file.
8097         * doc/gccint/target-macros/stack-layout-and-calling-conventions/stack-smashing-protection.rst:
8098         New file.
8099         * doc/gccint/target-macros/storage-layout.rst: New file.
8100         * doc/gccint/target-macros/support-for-nested-functions.rst: New file.
8101         * doc/gccint/target-macros/the-global-targetm-variable.rst: New file.
8102         * doc/gccint/target-makefile-fragments.rst: New file.
8103         * doc/gccint/testsuites.rst: New test.
8104         * doc/gccint/testsuites/ada-language-testsuites.rst: New test.
8105         * doc/gccint/testsuites/c-language-testsuites.rst: New test.
8106         * doc/gccint/testsuites/directives-used-within-dejagnu-tests.rst: New test.
8107         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/commands-for-use-in-dg-final.rst:
8108         New test.
8109         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/features-for-dg-add-options.rst:
8110         New test.
8111         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/keywords-describing-target-attributes.rst:
8112         New test.
8113         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/selecting-targets-to-which-a-test-applies.rst:
8114         New test.
8115         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/syntax-and-descriptions-of-test-directives.rst:
8116         New test.
8117         * doc/gccint/testsuites/directives-used-within-dejagnu-tests/variants-of-dg-require-support.rst:
8118         New test.
8119         * doc/gccint/testsuites/idioms-used-in-testsuite-code.rst: New test.
8120         * doc/gccint/testsuites/support-for-testing-binary-compatibility.rst: New test.
8121         * doc/gccint/testsuites/support-for-testing-gcov.rst: New test.
8122         * doc/gccint/testsuites/support-for-testing-gimple-passes.rst: New test.
8123         * doc/gccint/testsuites/support-for-testing-link-time-optimizations.rst: New test.
8124         * doc/gccint/testsuites/support-for-testing-profile-directed-optimizations.rst: New test.
8125         * doc/gccint/testsuites/support-for-testing-rtl-passes.rst: New test.
8126         * doc/gccint/testsuites/support-for-torture-testing-using-multiple-options.rst: New test.
8127         * doc/gccint/the-gcc-low-level-runtime-library.rst: New file.
8128         * doc/gccint/the-gcc-low-level-runtime-library/language-independent-routines-for-exception-handling.rst:
8129         New file.
8130         * doc/gccint/the-gcc-low-level-runtime-library/miscellaneous-runtime-library-routines.rst:
8131         New file.
8132         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-decimal-floating-point-emulation.rst:
8133         New file.
8134         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-fixed-point-fractional-emulation.rst:
8135         New file.
8136         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-floating-point-emulation.rst:
8137         New file.
8138         * doc/gccint/the-gcc-low-level-runtime-library/routines-for-integer-arithmetic.rst:
8139         New file.
8140         * doc/gccint/the-language.rst: New file.
8141         * doc/gccint/user-experience-guidelines.rst: New file.
8142         * doc/install/binaries.rst: New file.
8143         * doc/install/building.rst: New file.
8144         * doc/install/building/building-a-cross-compiler.rst: New file.
8145         * doc/install/building/building-a-native-compiler.rst: New file.
8146         * doc/install/building/building-in-parallel.rst: New file.
8147         * doc/install/building/building-the-ada-compiler.rst: New file.
8148         * doc/install/building/building-the-d-compiler.rst: New file.
8149         * doc/install/building/building-with-profile-feedback.rst: New file.
8150         * doc/install/conf.py: New file.
8151         * doc/install/configuration.rst: New file.
8152         * doc/install/copyright.rst: New file.
8153         * doc/install/downloading-gcc.rst: New file.
8154         * doc/install/final-installation.rst: New file.
8155         * doc/install/gnu-free-documentation-license.rst: New file.
8156         * doc/install/host-target-specific-installation-notes-for-gcc.rst: New file.
8157         * doc/install/how-can-you-run-the-testsuite-on-selected-tests.rst: New test.
8158         * doc/install/how-to-interpret-test-results.rst: New file.
8159         * doc/install/index.rst: New file.
8160         * doc/install/indices-and-tables.rst: New file.
8161         * doc/install/installing-gcc.rst: New file.
8162         * doc/install/passing-options-and-running-multiple-testsuites.rst: New test.
8163         * doc/install/prerequisites.rst: New file.
8164         * doc/install/submitting-test-results.rst: New file.
8165         * doc/install/testing.rst: New file.
8167 2022-11-09  Aldy Hernandez  <aldyh@redhat.com>
8169         * range-op-float.cc (class foperator_minus): New.
8170         (floating_op_table::floating_op_table): Add MINUS_EXPR entry.
8172 2022-11-09  Aldy Hernandez  <aldyh@redhat.com>
8174         * range-op-float.cc (range_operator_float::fold_range): Abstract
8175         out from foperator_plus.
8176         (range_operator_float::rv_fold): New.
8177         (foperator_plus::fold_range): Remove.
8178         (foperator_plus::rv_fold): New.
8179         (propagate_nans): Remove.
8180         * range-op.h (class range_operator_float): Add rv_fold.
8182 2022-11-09  Aldy Hernandez  <aldyh@redhat.com>
8184         * range-op-float.cc (foperator_plus::fold_range): Set NAN for
8185         addition of different signed infinities.
8186         (range_op_float_tests): New test.
8188 2022-11-09  liuhongt  <hongtao.liu@intel.com>
8190         PR target/107540
8191         * config/i386/sse.md (avx512f_movddup512<mask_name>): Change
8192         type from sselog to sselog1.
8193         (avx_movddup256<mask_name>): Ditto.
8195 2022-11-08  David Faust  <david.faust@oracle.com>
8197         * config/bpf/bpf.cc (struct core_walk_data): Add field `which'...
8198         (bpf_resolve_overloaded_builtin): ... set it here. Use values of enum
8199         bpf_builtins for error checks.
8200         (bpf_core_walk): Use values of enum bpf_builtins.
8201         (bpf_core_newdecl): Likewise.
8202         (bpf_expand_builtin): Likewise.
8204 2022-11-08  Aldy Hernandez  <aldyh@redhat.com>
8206         PR tree-optimization/24021
8207         * range-op-float.cc (propagate_nans): New.
8208         (frange_nextafter): New.
8209         (frange_arithmetic): New.
8210         (class foperator_plus): New.
8211         (floating_op_table::floating_op_table): Add PLUS_EXPR entry.
8213 2022-11-08  Aldy Hernandez  <aldyh@redhat.com>
8215         * real.cc (real_isdenormal): New.
8216         (encode_ieee_single): Call real_isdenormal.
8217         (encode_ieee_double): Same.
8218         (encode_ieee_extended): Same.
8219         (encode_ieee_quad): Same.
8220         (encode_ieee_half): Same.
8221         (encode_arm_bfloat_half): Same.
8222         * real.h (real_isdenormal): Add mode argument.  Rewrite for
8223         normalized values.
8224         * value-range.cc (frange::flush_denormals_to_zero): Pass mode to
8225         real_isdenormal.
8227 2022-11-08  Richard Biener  <rguenther@suse.de>
8229         PR tree-optimization/107389
8230         * gimple-low.cc (lower_builtin_assume_aligned): New.
8231         (lower_stmt): Call it.
8233 2022-11-08  Aldy Hernandez  <aldyh@redhat.com>
8235         * range-op.cc (operator_div::fold_range): Call
8236         update_known_bitmask.
8237         * tree-ssa-ccp.cc (bit_value_binop): Handle divisions by powers of
8238         2 as a right shift.
8240 2022-11-08  Kwok Cheung Yeung  <kcy@codesourcery.com>
8242         * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand first argument
8243         of GCN_BUILTIN_LDEXPV to V64DFmode.
8245 2022-11-08  Kwok Cheung Yeung  <kcy@codesourcery.com>
8247         * config/gcn/gcn-builtins.def (FABSV, FLOORVF, FLOORV): New builtins.
8248         * config/gcn/gcn.cc (gcn_expand_builtin_1): Expand GCN_BUILTIN_FABSV,
8249         GCN_BUILTIN_FLOORVF and GCN_BUILTIN_FLOORV.
8251 2022-11-08  Aldy Hernandez  <aldyh@redhat.com>
8253         * range-op.cc (irange_to_masked_value): New.
8254         (update_known_bitmask): New.
8255         (operator_mult::fold_range): Call update_known_bitmask.
8257 2022-11-08  Jakub Jelinek  <jakub@redhat.com>
8259         PR tree-optimization/107547
8260         * tree-call-cdce.cc (get_no_error_domain): Handle CASE_FLT_FN_FLOATN_NX
8261         of BUILT_IN_{ACOS,ASIN,ACOSH,ATANH,LOG,LOG2,LOG10,LOG1P}.  Handle
8262         BUILT_IN_{COSH,SINH,EXP,EXPM1,EXP2}F{16,32,64,128}.
8264 2022-11-08  Jakub Jelinek  <jakub@redhat.com>
8266         PR target/107546
8267         * config/i386/predicates.md (vector_or_const_vector_operand): New
8268         predicate.
8269         * config/i386/sse.md (vec_cmp<mode><sseintvecmodelower>,
8270         vec_cmpv2div2di, vec_cmpu<mode><sseintvecmodelower>,
8271         vec_cmpuv2div2di): Use nonimmediate_or_const_vector_operand
8272         predicate instead of nonimmediate_operand and
8273         vector_or_const_vector_operand instead of vector_operand.
8274         * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp): For
8275         LE/LEU or GE/GEU with CONST_VECTOR cop1 try to transform those
8276         into LE/LEU or GT/GTU with larger or smaller by one cop1 if
8277         there is no wrap-around.  Force CONST_VECTOR cop0 or cop1 into
8278         REG.  Formatting fix.
8280 2022-11-08  Max Filippov  <jcmvbkbc@gmail.com>
8282         PR rtl-optimization/107482
8283         * ira-color.cc (assign_hard_reg): Only call
8284         update_costs_from_copies when retry_p is false.
8286 2022-11-08  konglin1  <lingling.kong@intel.com>
8288         Revert:
8289         2022-11-07  konglin1  <lingling.kong@intel.com>
8291         * config/i386/i386.opt:Add -mprefer-remote-atomic.
8292         * config/i386/sync.md (atomic_<plus_logic><mode>):
8293         New define_expand.
8294         (atomic_add<mode>): Rename to below one.
8295         (atomic_add<mode>_1): To this.
8296         (atomic_<logic><mode>): Ditto.
8297         (atomic_<logic><mode>_1): Ditto.
8298         * doc/invoke.texi: Add -mprefer-remote-atomic.
8300 2022-11-08  Haochen Jiang  <haochen.jiang@intel.com>
8302         * config/i386/i386-options.cc (m_CORE_ATOM): New.
8303         * config/i386/x86-tune.def
8304         (X86_TUNE_SCHEDULE): Initial tune for CORE_ATOM.
8305         (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
8306         (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
8307         (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
8308         (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
8309         (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Ditto.
8310         (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
8311         (X86_TUNE_USE_LEAVE): Ditto.
8312         (X86_TUNE_PUSH_MEMORY): Ditto.
8313         (X86_TUNE_USE_INCDEC): Ditto.
8314         (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
8315         (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
8316         (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
8317         (X86_TUNE_USE_SAHF): Ditto.
8318         (X86_TUNE_USE_BT): Ditto.
8319         (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
8320         (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
8321         (X86_TUNE_AVOID_MFENCE): Ditto.
8322         (X86_TUNE_USE_SIMODE_FIOP): Ditto.
8323         (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
8324         (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
8325         (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
8326         (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
8327         (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
8328         (X86_TUNE_AVOID_4BYTE_PREFIXES): Ditto.
8329         (X86_TUNE_USE_GATHER_2PARTS): Ditto.
8330         (X86_TUNE_USE_GATHER_4PARTS): Ditto.
8331         (X86_TUNE_USE_GATHER): Ditto.
8333 2022-11-08  Andrew MacLeod  <amacleod@redhat.com>
8335         PR tree-optimization/104530
8336         * gimple-range-cache.cc (ranger_cache::register_inferred_value):
8337         New.  Split from:
8338         (ranger_cache::apply_inferred_ranges): Move setting cache to
8339         separate function.
8340         * gimple-range-cache.h (register_inferred_value): New prototype.
8341         * gimple-range-infer.cc (infer_range_manager::has_range_p): New.
8342         * gimple-range-infer.h (has_range_p): New prototype.
8343         * gimple-range.cc (register_transitive_inferred_ranges): New.
8344         * gimple-range.h (register_transitive_inferred_ranges): New proto.
8345         * tree-vrp.cc (rvrp_folder::fold_stmt): Check for transitive inferred
8346         ranges at the end of the block before folding final stmt.
8348 2022-11-07  David Faust  <david.faust@oracle.com>
8350         * config/bpf/bpf.cc (handle_attr_preserve): Use maybe_make_core_relo().
8352 2022-11-07  Aldy Hernandez  <aldyh@redhat.com>
8354         PR tree-optimization/55157
8355         * range-op.cc (operator_mult::wi_fold): Optimize multiplications
8356         by powers of 2.
8358 2022-11-07  H.J. Lu  <hjl.tools@gmail.com>
8360         PR middle-end/102566
8361         * tree-ssa-ccp.cc (optimize_atomic_bit_test_and): Also handle
8362         if (_5 < 0) and if (_5 >= 0).
8364 2022-11-07  Richard Purdie  <richard.purdie@linuxfoundation.org>
8366         * file-prefix-map.cc (remap_filename): Handle NULL filenames.
8368 2022-11-07  Alexander Monakov  <amonakov@ispras.ru>
8370         PR tree-optimization/107505
8371         * tree-ssa-sink.cc (statement_sink_location): Additionally
8372         reject ECF_RETURNS_TWICE calls.
8374 2022-11-07  Aldy Hernandez  <aldyh@redhat.com>
8376         PR tree-optimization/107541
8377         * range-op.cc (operator_div::fold_range): Restrict power of 2
8378         optimization to positive numbers.
8380 2022-11-07  Richard Biener  <rguenther@suse.de>
8382         * tree-ssa-loop-unswitch.cc (unswitch_predicate::count): New.
8383         (unswitch_predicate::unswitch_predicate): Initialize count.
8384         (init_loop_unswitch_info): First collect candidates and
8385         determine the outermost loop to unswitch.
8386         (tree_ssa_unswitch_loops): First perform all guard hoisting,
8387         then perform unswitching on innermost loop predicates.
8388         (find_unswitching_predicates_for_bb): Keep track of the
8389         most profitable predicate to unswitch on.
8390         (tree_unswitch_single_loop): Unswitch given predicate if
8391         not NULL.
8393 2022-11-07  Martin Liska  <mliska@suse.cz>
8394             Gerald Pfeifer  <gerald@pfeifer.com>
8396         * doc/invoke.texi: Improve wording.
8398 2022-11-07  Martin Liska  <mliska@suse.cz>
8400         * range-op.cc: Add final override keywords.
8402 2022-11-07  Kewen Lin  <linkw@linux.ibm.com>
8404         PR tree-optimization/107412
8405         * gimple-fold.cc (gimple_fold_mask_load_store_mem_ref): Rename to ...
8406         (gimple_fold_partial_load_store_mem_ref): ... this, add one parameter
8407         mask_p indicating it's for mask or length, and add some handlings for
8408         IFN LEN_{LOAD,STORE}.
8409         (gimple_fold_mask_load): Rename to ...
8410         (gimple_fold_partial_load): ... this, add one parameter mask_p.
8411         (gimple_fold_mask_store): Rename to ...
8412         (gimple_fold_partial_store): ... this, add one parameter mask_p.
8413         (gimple_fold_call): Add the handlings for IFN LEN_{LOAD,STORE},
8414         and adjust calls on gimple_fold_mask_load_store_mem_ref to
8415         gimple_fold_partial_load_store_mem_ref.
8417 2022-11-07  Hu, Lin1  <lin1.hu@intel.com>
8419         * common/config/i386/cpuinfo.h
8420         (get_intel_cpu): Handle Grand Ridge.
8421         * common/config/i386/i386-common.cc
8422         (processor_names): Add grandridge.
8423         (processor_alias_table): Ditto.
8424         * common/config/i386/i386-cpuinfo.h:
8425         (enum processor_types): Add INTEL_GRANDRIDGE.
8426         * config.gcc: Add -march=grandridge.
8427         * config/i386/driver-i386.cc (host_detect_local_cpu):
8428         Handle grandridge.
8429         * config/i386/i386-c.cc (ix86_target_macros_internal):
8430         Ditto.
8431         * config/i386/i386-options.cc (m_GRANDRIDGE): New define.
8432         (processor_cost_table): Add grandridge.
8433         * config/i386/i386.h (enum processor_type):
8434         Add PROCESSOR_GRANDRIDGE.
8435         (PTA_GRANDRIDGE): Ditto.
8436         * doc/extend.texi: Add grandridge.
8437         * doc/invoke.texi: Ditto.
8439 2022-11-07  konglin1  <lingling.kong@intel.com>
8441         * config/i386/i386.opt:Add -mprefer-remote-atomic.
8442         * config/i386/sync.md (atomic_<plus_logic><mode>):
8443         New define_expand.
8444         (atomic_add<mode>): Rename to below one.
8445         (atomic_add<mode>_1): To this.
8446         (atomic_<logic><mode>): Ditto.
8447         (atomic_<logic><mode>_1): Ditto.
8448         * doc/invoke.texi: Add -mprefer-remote-atomic.
8450 2022-11-07  konglin1  <lingling.kong@intel.com>
8452         * common/config/i386/cpuinfo.h (get_available_features):
8453         Detect raoint.
8454         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_RAOINT_SET,
8455         OPTION_MASK_ISA2_RAOINT_UNSET): New.
8456         (ix86_handle_option): Handle -mraoint.
8457         * common/config/i386/i386-cpuinfo.h (enum processor_features):
8458         Add FEATURE_RAOINT.
8459         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
8460         raoint.
8461         * config.gcc: Add raointintrin.h
8462         * config/i386/cpuid.h (bit_RAOINT): New.
8463         * config/i386/i386-builtin.def (BDESC): Add new builtins.
8464         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
8465         __RAOINT__.
8466         * config/i386/i386-isa.def (RAOINT): Add DEF_PTA(RAOINT).
8467         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
8468         Add -mraoint.
8469         * config/i386/sync.md (rao_a<raointop><mode>): New define insn.
8470         * config/i386/i386.opt: Add option -mraoint.
8471         * config/i386/x86gprintrin.h: Include raointintrin.h.
8472         * doc/extend.texi: Document raoint.
8473         * doc/invoke.texi: Document -mraoint.
8474         * doc/sourcebuild.texi: Document target raoint.
8475         * config/i386/raointintrin.h: New file.
8477 2022-11-07  Haochen Jiang  <haochen.jiang@intel.com>
8479         * common/config/i386/cpuinfo.h
8480         (get_intel_cpu): Handle Granite Rapids.
8481         * common/config/i386/i386-common.cc:
8482         (processor_names): Add graniterapids.
8483         (processor_alias_table): Ditto.
8484         * common/config/i386/i386-cpuinfo.h
8485         (enum processor_subtypes): Add INTEL_GRANTIERAPIDS.
8486         * config.gcc: Add -march=graniterapids.
8487         * config/i386/driver-i386.cc (host_detect_local_cpu):
8488         Handle graniterapids.
8489         * config/i386/i386-c.cc (ix86_target_macros_internal):
8490         Ditto.
8491         * config/i386/i386-options.cc (m_GRANITERAPIDS): New.
8492         (processor_cost_table): Add graniterapids.
8493         * config/i386/i386.h (enum processor_type):
8494         Add PROCESSOR_GRANITERAPIDS.
8495         (PTA_GRANITERAPIDS): Ditto.
8496         * doc/extend.texi: Add graniterapids.
8497         * doc/invoke.texi: Ditto.
8499 2022-11-07  Haochen Jiang  <haochen.jiang@intel.com>
8500             Hongtao Liu  <hongtao.liu@intel.com>
8502         * common/config/i386/cpuinfo.h (get_available_features):
8503         Detect PREFETCHI.
8504         * common/config/i386/i386-common.cc
8505         (OPTION_MASK_ISA2_PREFETCHI_SET,
8506         OPTION_MASK_ISA2_PREFETCHI_UNSET): New.
8507         (ix86_handle_option): Handle -mprefetchi.
8508         * common/config/i386/i386-cpuinfo.h
8509         (enum processor_features): Add FEATURE_PREFETCHI.
8510         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY
8511         for prefetchi.
8512         * config.gcc: Add prfchiintrin.h.
8513         * config/i386/cpuid.h (bit_PREFETCHI): New.
8514         * config/i386/i386-builtin-types.def:
8515         Add DEF_FUNCTION_TYPE (VOID, PCVOID, INT)
8516         and DEF_FUNCTION_TYPE (VOID, PCVOID, INT, INT, INT).
8517         * config/i386/i386-builtin.def (BDESC): Add new builtins.
8518         * config/i386/i386-c.cc (ix86_target_macros_internal):
8519         Define __PREFETCHI__.
8520         * config/i386/i386-expand.cc: Handle new builtins.
8521         * config/i386/i386-isa.def (PREFETCHI):
8522         Add DEF_PTA(PREFETCHI).
8523         * config/i386/i386-options.cc
8524         (ix86_valid_target_attribute_inner_p): Handle prefetchi.
8525         * config/i386/i386.md (prefetchi): New define_insn.
8526         * config/i386/i386.opt: Add option -mprefetchi.
8527         * config/i386/predicates.md (local_func_symbolic_operand):
8528         New predicates.
8529         * config/i386/x86gprintrin.h: Include prfchiintrin.h.
8530         * config/i386/xmmintrin.h (enum _mm_hint): New enum for
8531         prefetchi.
8532         (_mm_prefetch): Handle the highest bit of enum.
8533         * doc/extend.texi: Document prefetchi.
8534         * doc/invoke.texi: Document -mprefetchi.
8535         * doc/sourcebuild.texi: Document target prefetchi.
8536         * config/i386/prfchiintrin.h: New file.
8538 2022-11-06  Uroš Bizjak  <ubizjak@gmail.com>
8540         * optabs.cc (can_vec_set_var_idx_p): Use operand[2]
8541         mode when checking vec_set_optab.
8543 2022-11-06  Xi Ruoyao  <xry111@xry111.site>
8545         * config/loongarch/loongarch.md (UNSPEC_FCOPYSIGN): New unspec.
8546         (type): Add fcopysign.
8547         (copysign<mode>3): New instruction template.
8549 2022-11-06  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8551         * multiple_target.cc (expand_target_clones): Free memory.
8553 2022-11-06  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8555         * cgraph.cc (cgraph_node::make_local): Remove redundant set_section.
8556         * multiple_target.cc (create_dispatcher_calls): Likewise.
8558 2022-11-05  Jonathan Wakely  <jwakely@redhat.com>
8560         PR c/41041
8561         * doc/cppopts.texi: Document -fwide-exec-charset defaults
8562         correctly.
8564 2022-11-05  Alexandre Oliva  <oliva@adacore.com>
8566         * common.opt (fmultiflags): New.
8567         * doc/invoke.texi: Document it.
8568         * gcc.cc (driver_self_specs): Discard it.
8569         * opts.cc (common_handle_option): Ignore it in the driver.
8571 2022-11-04  Jeff Chapman II  <jchapman@lock3software.com>
8572             Jason Merrill   <jason@redhat.com>
8574         * input.cc (get_source_text_between): New fn.
8575         * input.h (get_source_text_between): Declare.
8577 2022-11-04  Aldy Hernandez  <aldyh@redhat.com>
8579         PR tree-optimization/107342
8580         * range-op.cc (operator_mult::fold_range): New.
8581         (operator_div::fold_range): New.
8583 2022-11-04  Eric Botcazou  <ebotcazou@adacore.com>
8585         * fold-const.cc (operand_compare::operand_equal_p) <COMPONENT_REF>:
8586         Do not take into account operand 2.
8587         (operand_compare::hash_operand) <COMPONENT_REF>: Likewise.
8589 2022-11-04  Eric Botcazou  <ebotcazou@adacore.com>
8591         * expr.cc (emit_group_store): Do not use subword paradoxical subregs
8593 2022-11-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8595         * config/aarch64/aarch64-sve2.md: Fix typo in Cryptographic
8596         extensions comment.
8598 2022-11-04  Thomas Schwinge  <thomas@codesourcery.com>
8600         * config.gcc [target *-intelmic-* | *-intelmicemul-*]: Remove.
8601         * config/i386/i386-options.cc (ix86_omp_device_kind_arch_isa)
8602         [ACCEL_COMPILER]: Remove.
8603         * config/i386/intelmic-mkoffload.cc: Remove.
8604         * config/i386/intelmic-offload.h: Likewise.
8605         * config/i386/t-intelmic: Likewise.
8606         * config/i386/t-omp-device: Likewise.
8607         * configure.ac [target *-intelmic-* | *-intelmicemul-*]: Remove.
8608         * configure: Regenerate.
8609         * doc/install.texi (--enable-offload-targets=[...]): Update.
8610         * doc/sourcebuild.texi: Remove 'liboffloadmic' documentation.
8612 2022-11-04  Thomas Schwinge  <thomas@codesourcery.com>
8614         * Makefile.in (OBJS): Remove 'dbxout.o'.
8615         * config/nvptx/nvptx.cc: Don't '#include "dbxout.h"'.
8616         * dbxout.cc: Remove.
8617         * dbxout.h: Likewise.
8618         * target-def.h (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR):
8619         Default to 'default_asm_out_constructor',
8620         'default_asm_out_destructor'.
8621         * targhooks.cc (default_asm_out_constructor)
8622         (default_asm_out_destructor): New.
8623         * targhooks.h (default_asm_out_constructor)
8624         (default_asm_out_destructor): Declare.
8626 2022-11-04  Thomas Schwinge  <thomas@codesourcery.com>
8628         * Makefile.in (OBJS): Add 'dbxout.o'.
8629         * config/nvptx/nvptx.cc: '#include "dbxout.h"'.
8630         * dbxout.cc: New.
8631         * dbxout.h: Likewise.
8632         * target-def.h (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR):
8633         Default to 'default_stabs_asm_out_constructor',
8634         'default_stabs_asm_out_destructor'.
8636 2022-11-04  Hongyu Wang  <hongyu.wang@intel.com>
8637             Haochen Jiang  <haochen.jiang@intel.com>
8639         * common/config/i386/cpuinfo.h (get_available_features): Detect
8640         amx-fp16.
8641         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_FP16_SET,
8642         OPTION_MASK_ISA2_AMX_FP16_UNSET): New macros.
8643         (ix86_handle_option): Handle -mamx-fp16.
8644         * common/config/i386/i386-cpuinfo.h (enum processor_features):
8645         Add FEATURE_AMX_FP16.
8646         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
8647         amx-fp16.
8648         * config.gcc: Add amxfp16intrin.h.
8649         * config/i386/cpuid.h (bit_AMX_FP16): New.
8650         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
8651         __AMX_FP16__.
8652         * config/i386/i386-isa.def: Add DEF_PTA for AMX_FP16.
8653         * config/i386/i386-options.cc (isa2_opts): Add -mamx-fp16.
8654         (ix86_valid_target_attribute_inner_p): Add new ATTR.
8655         (ix86_option_override_internal): Handle AMX-FP16.
8656         * config/i386/i386.opt: Add -mamx-fp16.
8657         * config/i386/immintrin.h: Include amxfp16intrin.h.
8658         * doc/extend.texi: Document -mamx-fp16.
8659         * doc/invoke.texi: Document amx-fp16.
8660         * doc/sourcebuild.texi: Document amx_fp16.
8661         * config/i386/amxfp16intrin.h: New file.
8663 2022-11-04  Haochen Jiang  <haochen.jiang@intel.com>
8665         * common/config/i386/cpuinfo.h (get_intel_cpu):
8666         Add Sierra Forest.
8667         * common/config/i386/i386-common.cc
8668         (processor_names): Add Sierra Forest.
8669         (processor_alias_table): Ditto.
8670         * common/config/i386/i386-cpuinfo.h
8671         (enum processor_types): Add INTEL_SIERRAFOREST.
8672         * config.gcc: Add -march=sierraforest.
8673         * config/i386/driver-i386.cc (host_detect_local_cpu):
8674         Handle Sierra Forest.
8675         * config/i386/i386-c.cc (ix86_target_macros_internal):
8676         Ditto.
8677         * config/i386/i386-options.cc (m_SIERRAFOREST): New define.
8678         (processor_cost_table): Add sierra forest.
8679         * config/i386/i386.h (enum processor_type):
8680         Add PROCESSOR_SIERRA_FOREST.
8681         (PTA_SIERRAFOREST): Ditto.
8682         * doc/extend.texi: Add sierra forest.
8683         * doc/invoke.texi: Ditto.
8685 2022-11-04  Haochen Jiang  <haochen.jiang@intel.com>
8687         * common/config/i386/cpuinfo.h (get_available_features):
8688         Detect cmpccxadd.
8689         * common/config/i386/i386-common.cc
8690         (OPTION_MASK_ISA2_CMPCCXADD_SET,
8691         OPTION_MASK_ISA2_CMPCCXADD_UNSET): New.
8692         (ix86_handle_option): Handle -mcmpccxadd.
8693         * common/config/i386/i386-cpuinfo.h (enum processor_features):
8694         Add FEATURE_CMPCCXADD.
8695         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
8696         cmpccxadd.
8697         * config.gcc: Add cmpccxaddintrin.h.
8698         * config/i386/cpuid.h (bit_CMPCCXADD): New.
8699         * config/i386/i386-builtin-types.def:
8700         Add DEF_FUNCTION_TYPE(INT, PINT, INT, INT, INT)
8701         and DEF_FUNCTION_TYPE(LONGLONG, PLONGLONG, LONGLONG, LONGLONG, INT).
8702         * config/i386/i386-builtin.def (BDESC): Add new builtins.
8703         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
8704         __CMPCCXADD__.
8705         * config/i386/i386-expand.cc (ix86_expand_special_args_builtin):
8706         Add new parameter to indicate constant position.
8707         Handle INT_FTYPE_PINT_INT_INT_INT
8708         and LONGLONG_FTYPE_PLONGLONG_LONGLONG_LONGLONG_INT.
8709         * config/i386/i386-isa.def (CMPCCXADD): Add DEF_PTA(CMPCCXADD).
8710         * config/i386/i386-options.cc (isa2_opts): Add -mcmpccxadd.
8711         (ix86_valid_target_attribute_inner_p): Handle cmpccxadd.
8712         * config/i386/i386.opt: Add option -mcmpccxadd.
8713         * config/i386/sync.md (cmpccxadd_<mode>): New define insn.
8714         * config/i386/x86gprintrin.h: Include cmpccxaddintrin.h.
8715         * doc/extend.texi: Document cmpccxadd.
8716         * doc/invoke.texi: Document -mcmpccxadd.
8717         * doc/sourcebuild.texi: Document target cmpccxadd.
8718         * config/i386/cmpccxaddintrin.h: New file.
8720 2022-11-03  Jason Merrill  <jason@redhat.com>
8722         * doc/invoke.texi: -fconcepts no longer implies
8723         -fconcepts-ts before C++20.
8725 2022-11-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
8727         * config/gcn/gcn-valu.md (math_unop_insn): New attribute.
8728         (<math_unop><mode>2, <math_unop><mode>2<exec>, <math_unop><mode>2,
8729         <math_unop><mode>2<exec>, *<math_unop><mode>2_insn,
8730         *<math_unop><mode>2<exec>_insn): Use math_unop_insn to generate
8731         assembler output.
8733 2022-11-03  Andrew MacLeod  <amacleod@redhat.com>
8735         * gimple-range.cc (gimple_ranger::update_stmt): New.
8736         * gimple-range.h (gimple_ranger::update_stmt): New prototype.
8737         * tree-ssa-operands.cc (update_stmt_operands): Notify range
8738         query that stmt has changed.
8739         * value-query.h (range_query::update_stmt): New.
8741 2022-11-03  David Malcolm  <dmalcolm@redhat.com>
8743         * make-unique.h: New file.
8745 2022-11-03  Uroš Bizjak  <ubizjak@gmail.com>
8747         PR target/107404
8748         * config/i386/i386.md (eliminate reg-reg move by inverting the
8749         condition of a cmove #2 peephole2): Check if eliminated move
8750         initialized a register, used in the moved instruction.
8752 2022-11-03  Andrew Stubbs  <ams@codesourcery.com>
8754         PR target/107510
8755         * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Remove duplicate
8756         UNSPEC_SMIN_DPP_SHR conditionals.
8758 2022-11-02  Christoph Müllner  <christoph.muellner@vrull.eu>
8760         * common/config/riscv/riscv-common.cc: Add zawrs extension.
8761         * config/riscv/riscv-opts.h (MASK_ZAWRS): New.
8762         (TARGET_ZAWRS): New.
8763         * config/riscv/riscv.opt: New.
8765 2022-11-02  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
8767         PR driver/93371
8768         * gcc.cc (ASM_MAP): Honour -ffile-prefix-map.
8770 2022-11-02  Aldy Hernandez  <aldyh@redhat.com>
8772         * value-range.cc (frange::contains_p): Fix signed zero handling.
8773         (range_tests_signed_zeros): New test.
8775 2022-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8777         * builtins.cc (mathfn_built_in_2): #undef HUGE_VAL, NAN.
8779 2022-11-02  Xionghu Luo  <xionghuluo@tencent.com>
8781         PR target/100866
8782         * config/rs6000/altivec.md: (*altivec_vrl<VI_char>): Named to...
8783         (altivec_vrl<VI_char>): ...this.
8784         * config/rs6000/vsx.md (revb_<mode>): Call vspltish and vrlh when
8785         target is Power8 and mode is V8HI.
8787 2022-11-01  David Seifert  <soap@gentoo.org>
8789         * configure.ac: Add AC_CACHE_CHECK(..., gcc_cv_sys_sdt_h).
8790         * configure: Regenerate.
8792 2022-11-01  Richard Purdie  <richard.purdie@linuxfoundation.org>
8794         * file-prefix-map.cc (remap_filename): Allow remapping of relative paths.
8796 2022-11-01  Aldy Hernandez  <aldyh@redhat.com>
8798         PR tree-optimization/107490
8799         * range-op-float.cc (foperator_unordered_lt::op1_range): Handle
8800         NANs.
8801         (foperator_unordered_lt::op2_range): Same.
8802         (foperator_unordered_le::op1_range): Same.
8803         (foperator_unordered_le::op2_range): Same.
8804         (foperator_unordered_gt::op1_range): Same.
8805         (foperator_unordered_gt::op2_range): Same.
8806         (foperator_unordered_ge::op1_range): Same.
8807         (foperator_unordered_ge::op2_range): Same.
8809 2022-11-01  Andrew MacLeod  <amacleod@redhat.com>
8811         PR tree-optimization/107497
8812         * tree-vrp.cc (remove_unreachable::remove_and_update_globals):
8813         Check that ssa-name still exists before accessing it.
8815 2022-11-01  Andrew MacLeod  <amacleod@redhat.com>
8817         * params.opt (param_vrp1_mode): Make ranger default.
8819 2022-11-01  Andrew MacLeod  <amacleod@redhat.com>
8821         * tree-vrp.cc (class remove_unreachable): New.
8822         (remove_unreachable::maybe_register_block): New.
8823         (remove_unreachable::remove_and_update_globals): New.
8824         (rvrp_folder::rvrp_folder): Initialize m_unreachable.
8825         (rvrp_folder::post_fold_bb): Maybe register unreachable block.
8826         (rvrp_folder::m_unreachable): New member.
8827         (execute_ranger_vrp): Add final_pass flag, remove unreachables.
8829 2022-11-01  Andrew MacLeod  <amacleod@redhat.com>
8831         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Allow
8832         exit block to be specified.
8833         (ranger_cache::range_from_dom): If exit block is specified, use
8834         the immediate predecessor instead of the dominator to start.
8835         * gimple-range.cc (gimple_ranger::range_on_exit): Allow query
8836         for exit block.
8838 2022-11-01  Andrew MacLeod  <amacleod@redhat.com>
8840         * value-range.cc (irange::intersect_nonzero_bits): If new
8841         non-zero mask is the same as original, flag no change.
8843 2022-11-01  Alexander Monakov  <amonakov@ispras.ru>
8845         PR target/87832
8846         * config/i386/znver.md (znver1_idiv): New automaton.
8847         (znver1-idiv): New unit.
8848         (znver1_idiv_DI): Correct unit and cycles in the reservation.
8849         (znver1_idiv_SI): Ditto.
8850         (znver1_idiv_HI): Ditto.
8851         (znver1_idiv_QI): Ditto.
8852         (znver1_idiv_mem_DI): Ditto.
8853         (znver1_idiv_mem_SI): Ditto.
8854         (znver1_idiv_mem_HI): Ditto.
8855         (znver1_idiv_mem_QI): Ditto.
8856         (znver3_idiv_DI): Ditto.
8857         (znver3_idiv_SI): Ditto.
8858         (znver3_idiv_HI): Ditto.
8859         (znver3_idiv_QI): Ditto.
8860         (znver3_idiv_mem_DI): Ditto.
8861         (znver3_idiv_mem_SI): Ditto.
8862         (znver3_idiv_mem_HI): Ditto.
8863         (znver3_idiv_mem_QI): Ditto.
8865 2022-11-01  liuhongt  <hongtao.liu@intel.com>
8867         PR target/107057
8868         * config/i386/sse.md (*vec_interleave_highv2df): Remove
8869         constraint 1.
8870         (*vec_interleave_lowv2df): Ditto.
8871         (vec_concatv2df): Ditto.
8872         (*avx512f_unpcklpd512<mask_name>): Ditto and renamed to ..
8873         (avx512f_unpcklpd512<mask_name>): .. this.
8874         (avx512f_movddup512<mask_name>): Change to define_insn.
8875         (avx_movddup256<mask_name>): Ditto.
8876         (*avx_unpcklpd256<mask_name>): Remove constraint 1 and renamed
8877         to ..
8878         (avx_unpcklpd256<mask_name>): .. this.
8879         * config/i386/i386.cc (ix86_vec_interleave_v2df_operator_ok):
8880         Disallow MEM_P (op1) && MEM_P (op2).
8882 2022-11-01  liuhongt  <hongtao.liu@intel.com>
8884         PR target/55583
8885         * config/i386/i386.md (*x86_64_shld_1): Rename to ..
8886         (x86_64_shld_1): .. this.
8887         (*x86_shld_1): Rename to ..
8888         (x86_shld_1): .. this.
8889         (*x86_64_shrd_1): Rename to ..
8890         (x86_64_shrd_1): .. this.
8891         (*x86_shrd_1): Rename to ..
8892         (x86_shrd_1): .. this.
8893         (*x86_64_shld_shrd_1_nozext): New pre_reload splitter.
8894         (*x86_shld_shrd_1_nozext): Ditto.
8895         (*x86_64_shrd_shld_1_nozext): Ditto.
8896         (*x86_shrd_shld_1_nozext): Ditto.
8898 2022-11-01  Cui,Lili  <lili.cui@intel.com>
8900         * ipa-inline-analysis.cc (do_estimate_edge_time): Add function attribute
8901         judgement for INLINE_HINT_known_hot hint.
8903 2022-10-31  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
8905         * btfout.cc (btf_calc_num_vbytes): Compute enumeration size depending of
8906         enumerator type btf_enum{,64}.
8907         (btf_asm_type): Update btf_kflag according to enumeration type sign
8908         using dtd_enum_unsigned field for both:  BTF_KIND_ENUM{,64}.
8909         (btf_asm_enum_const): New argument to represent the size of
8910         the BTF enum type, writing the enumerator constant value for
8911         32 bits, if it's 64 bits then explicitly writes lower 32-bits
8912         value and higher 32-bits value.
8913         (output_asm_btf_enum_list): Add enumeration size argument.
8914         * ctfc.cc (ctf_add_enum): New argument to represent CTF enum
8915         basic information.
8916         (ctf_add_generic): Use of ei_{name. size, unsigned} to build the
8917         dtd structure containing enumeration information.
8918         (ctf_add_enumerator): Update comment mention support for BTF
8919         enumeration in 64-bits.
8920         * dwarf2ctf.cc (gen_ctf_enumeration_type): Extract signedness
8921         for enumeration type and use it in ctf_add_enum.
8922         * ctfc.h (ctf_dmdef): Update dmd_value to HOST_WIDE_INT to allow
8923         use 32/64 bits enumerators.
8924         information.
8925         (ctf_dtdef): New field to describe enum signedness.
8927 2022-10-31  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
8929         * config/riscv/riscv-vector-builtins-bases.cc: Change constexpr back to CONSTEXPR.
8930         * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Ditto.
8931         * config/riscv/riscv-vector-builtins.cc (struct registered_function_hasher): Ditto.
8932         * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info): Ditto.
8934 2022-10-31  Andrew Stubbs  <ams@codesourcery.com>
8936         * config/gcn/gcn-valu.md (fminmaxop): New iterator.
8937         (<fexpander><mode>3): New define_expand.
8938         (<fexpander><mode>3<exec>): Likewise.
8939         (reduc_<fexpander>_scal_<mode>): Likewise.
8940         * config/gcn/gcn.md (fexpander): New attribute.
8942 2022-10-31  Andrew Stubbs  <ams@codesourcery.com>
8944         * config/gcn/gcn-valu.md (V64_SI): Delete iterator.
8945         (V64_DI): Likewise.
8946         (V64_1REG): Likewise.
8947         (V64_INT_1REG): Likewise.
8948         (V64_2REG): Likewise.
8949         (V64_ALL): Likewise.
8950         (V64_FP): Likewise.
8951         (reduc_<reduc_op>_scal_<mode>): Use V_ALL. Use gen_vec_extract.
8952         (fold_left_plus_<mode>): Use V_FP.
8953         (*<reduc_op>_dpp_shr_<mode>): Use V_1REG.
8954         (*<reduc_op>_dpp_shr_<mode>): Use V_DI.
8955         (*plus_carry_dpp_shr_<mode>): Use V_INT_1REG.
8956         (*plus_carry_in_dpp_shr_<mode>): Use V_SI.
8957         (*plus_carry_dpp_shr_<mode>): Use V_DI.
8958         (mov_from_lane63_<mode>): Delete.
8959         (mov_from_lane63_<mode>): Delete.
8960         * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Support partial vectors.
8961         * config/gcn/gcn.md (unspec): Remove UNSPEC_MOV_FROM_LANE63.
8963 2022-10-31  Andrew Stubbs  <ams@codesourcery.com>
8965         * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
8966         Set base_type as ARG_UNUSED.
8968 2022-10-31  Jakub Jelinek  <jakub@redhat.com>
8970         * builtin-types.def (BT_COMPLEX_FLOAT16, BT_COMPLEX_FLOAT32,
8971         BT_COMPLEX_FLOAT64, BT_COMPLEX_FLOAT128, BT_COMPLEX_FLOAT32X,
8972         BT_COMPLEX_FLOAT64X, BT_COMPLEX_FLOAT128X,
8973         BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
8974         BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
8975         BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
8976         BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
8977         BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
8978         BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
8979         BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X,
8980         BT_FN_FLOAT16_COMPLEX_FLOAT16, BT_FN_FLOAT32_COMPLEX_FLOAT32,
8981         BT_FN_FLOAT64_COMPLEX_FLOAT64, BT_FN_FLOAT128_COMPLEX_FLOAT128,
8982         BT_FN_FLOAT32X_COMPLEX_FLOAT32X, BT_FN_FLOAT64X_COMPLEX_FLOAT64X,
8983         BT_FN_FLOAT128X_COMPLEX_FLOAT128X,
8984         BT_FN_COMPLEX_FLOAT16_COMPLEX_FLOAT16_COMPLEX_FLOAT16,
8985         BT_FN_COMPLEX_FLOAT32_COMPLEX_FLOAT32_COMPLEX_FLOAT32,
8986         BT_FN_COMPLEX_FLOAT64_COMPLEX_FLOAT64_COMPLEX_FLOAT64,
8987         BT_FN_COMPLEX_FLOAT128_COMPLEX_FLOAT128_COMPLEX_FLOAT128,
8988         BT_FN_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X_COMPLEX_FLOAT32X,
8989         BT_FN_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X_COMPLEX_FLOAT64X,
8990         BT_FN_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X_COMPLEX_FLOAT128X): New.
8991         * builtins.def (CABS_TYPE, CACOSH_TYPE, CARG_TYPE, CASINH_TYPE,
8992         CPOW_TYPE, CPROJ_TYPE): Define and undefine later.
8993         (BUILT_IN_CABS, BUILT_IN_CACOSH, BUILT_IN_CACOS, BUILT_IN_CARG,
8994         BUILT_IN_CASINH, BUILT_IN_CASIN, BUILT_IN_CATANH, BUILT_IN_CATAN,
8995         BUILT_IN_CCOSH, BUILT_IN_CCOS, BUILT_IN_CEXP, BUILT_IN_CLOG,
8996         BUILT_IN_CPOW, BUILT_IN_CPROJ, BUILT_IN_CSINH, BUILT_IN_CSIN,
8997         BUILT_IN_CSQRT, BUILT_IN_CTANH, BUILT_IN_CTAN): Add
8998         DEF_EXT_LIB_FLOATN_NX_BUILTINS.
8999         * fold-const-call.cc (fold_const_call_sc, fold_const_call_cc,
9000         fold_const_call_ccc): Add various CASE_CFN_*_FN: cases when
9001         CASE_CFN_* is present.
9002         * gimple-ssa-backprop.cc (backprop::process_builtin_call_use):
9003         Likewise.
9004         * builtins.cc (expand_builtin, fold_builtin_1): Likewise.
9005         * fold-const.cc (negate_mathfn_p, tree_expr_finite_p,
9006         tree_expr_maybe_signaling_nan_p, tree_expr_maybe_nan_p,
9007         tree_expr_maybe_real_minus_zero_p, tree_call_nonnegative_warnv_p):
9008         Likewise.
9010 2022-10-31  Jakub Jelinek  <jakub@redhat.com>
9012         * builtin-types.def (BT_FN_BFLOAT16_BFLOAT16_BFLOAT16): New.
9013         * builtins.def (BUILT_IN_NEXTAFTERF16B): New builtin.
9014         * fold-const-call.cc (fold_const_call_sss): Handle
9015         CFN_BUILT_IN_NEXTAFTERF16B.
9017 2022-10-31  Jakub Jelinek  <jakub@redhat.com>
9019         * builtin-types.def (BT_FLOAT16_PTR, BT_FLOAT32_PTR, BT_FLOAT64_PTR,
9020         BT_FLOAT128_PTR, BT_FLOAT32X_PTR, BT_FLOAT64X_PTR, BT_FLOAT128X_PTR):
9021         New DEF_PRIMITIVE_TYPE.
9022         (BT_FN_INT_FLOAT16, BT_FN_INT_FLOAT32, BT_FN_INT_FLOAT64,
9023         BT_FN_INT_FLOAT128, BT_FN_INT_FLOAT32X, BT_FN_INT_FLOAT64X,
9024         BT_FN_INT_FLOAT128X, BT_FN_LONG_FLOAT16, BT_FN_LONG_FLOAT32,
9025         BT_FN_LONG_FLOAT64, BT_FN_LONG_FLOAT128, BT_FN_LONG_FLOAT32X,
9026         BT_FN_LONG_FLOAT64X, BT_FN_LONG_FLOAT128X, BT_FN_LONGLONG_FLOAT16,
9027         BT_FN_LONGLONG_FLOAT32, BT_FN_LONGLONG_FLOAT64,
9028         BT_FN_LONGLONG_FLOAT128, BT_FN_LONGLONG_FLOAT32X,
9029         BT_FN_LONGLONG_FLOAT64X, BT_FN_LONGLONG_FLOAT128X): New
9030         DEF_FUNCTION_TYPE_1.
9031         (BT_FN_FLOAT16_FLOAT16_FLOAT16PTR, BT_FN_FLOAT32_FLOAT32_FLOAT32PTR,
9032         BT_FN_FLOAT64_FLOAT64_FLOAT64PTR, BT_FN_FLOAT128_FLOAT128_FLOAT128PTR,
9033         BT_FN_FLOAT32X_FLOAT32X_FLOAT32XPTR,
9034         BT_FN_FLOAT64X_FLOAT64X_FLOAT64XPTR,
9035         BT_FN_FLOAT128X_FLOAT128X_FLOAT128XPTR, BT_FN_FLOAT16_FLOAT16_INT,
9036         BT_FN_FLOAT32_FLOAT32_INT, BT_FN_FLOAT64_FLOAT64_INT,
9037         BT_FN_FLOAT128_FLOAT128_INT, BT_FN_FLOAT32X_FLOAT32X_INT,
9038         BT_FN_FLOAT64X_FLOAT64X_INT, BT_FN_FLOAT128X_FLOAT128X_INT,
9039         BT_FN_FLOAT16_FLOAT16_INTPTR, BT_FN_FLOAT32_FLOAT32_INTPTR,
9040         BT_FN_FLOAT64_FLOAT64_INTPTR, BT_FN_FLOAT128_FLOAT128_INTPTR,
9041         BT_FN_FLOAT32X_FLOAT32X_INTPTR, BT_FN_FLOAT64X_FLOAT64X_INTPTR,
9042         BT_FN_FLOAT128X_FLOAT128X_INTPTR, BT_FN_FLOAT16_FLOAT16_LONG,
9043         BT_FN_FLOAT32_FLOAT32_LONG, BT_FN_FLOAT64_FLOAT64_LONG,
9044         BT_FN_FLOAT128_FLOAT128_LONG, BT_FN_FLOAT32X_FLOAT32X_LONG,
9045         BT_FN_FLOAT64X_FLOAT64X_LONG, BT_FN_FLOAT128X_FLOAT128X_LONG): New
9046         DEF_FUNCTION_TYPE_2.
9047         (BT_FN_FLOAT16_FLOAT16_FLOAT16_INTPTR,
9048         BT_FN_FLOAT32_FLOAT32_FLOAT32_INTPTR,
9049         BT_FN_FLOAT64_FLOAT64_FLOAT64_INTPTR,
9050         BT_FN_FLOAT128_FLOAT128_FLOAT128_INTPTR,
9051         BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_INTPTR,
9052         BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_INTPTR,
9053         BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_INTPTR): New DEF_FUNCTION_TYPE_3.
9054         * builtins.def (ACOSH_TYPE, ATAN2_TYPE, ATANH_TYPE, COSH_TYPE,
9055         FDIM_TYPE, HUGE_VAL_TYPE, HYPOT_TYPE, ILOGB_TYPE, LDEXP_TYPE,
9056         LGAMMA_TYPE, LLRINT_TYPE, LOG10_TYPE, LRINT_TYPE, MODF_TYPE,
9057         NEXTAFTER_TYPE, REMQUO_TYPE, SCALBLN_TYPE, SCALBN_TYPE, SINH_TYPE):
9058         Define and undefine later.
9059         (FMIN_TYPE, SQRT_TYPE): Undefine at a later line.
9060         (INF_TYPE): Define at a later line.
9061         (BUILT_IN_ACOSH, BUILT_IN_ACOS, BUILT_IN_ASINH, BUILT_IN_ASIN,
9062         BUILT_IN_ATAN2, BUILT_IN_ATANH, BUILT_IN_ATAN, BUILT_IN_CBRT,
9063         BUILT_IN_COSH, BUILT_IN_COS, BUILT_IN_ERFC, BUILT_IN_ERF,
9064         BUILT_IN_EXP2, BUILT_IN_EXP, BUILT_IN_EXPM1, BUILT_IN_FDIM,
9065         BUILT_IN_FMOD, BUILT_IN_FREXP, BUILT_IN_HYPOT, BUILT_IN_ILOGB,
9066         BUILT_IN_LDEXP, BUILT_IN_LGAMMA, BUILT_IN_LLRINT, BUILT_IN_LLROUND,
9067         BUILT_IN_LOG10, BUILT_IN_LOG1P, BUILT_IN_LOG2, BUILT_IN_LOGB,
9068         BUILT_IN_LOG, BUILT_IN_LRINT, BUILT_IN_LROUND, BUILT_IN_MODF,
9069         BUILT_IN_NEXTAFTER, BUILT_IN_POW, BUILT_IN_REMAINDER, BUILT_IN_REMQUO,
9070         BUILT_IN_SCALBLN, BUILT_IN_SCALBN, BUILT_IN_SINH, BUILT_IN_SIN,
9071         BUILT_IN_TANH, BUILT_IN_TAN, BUILT_IN_TGAMMA): Add
9072         DEF_EXT_LIB_FLOATN_NX_BUILTINS.
9073         (BUILT_IN_HUGE_VAL): Use HUGE_VAL_TYPE instead of INF_TYPE in
9074         DEF_GCC_FLOATN_NX_BUILTINS.
9075         * fold-const-call.cc (fold_const_call_ss): Add various CASE_CFN_*_FN:
9076         cases when CASE_CFN_* is present.
9077         (fold_const_call_sss): Likewise.
9078         * builtins.cc (mathfn_built_in_2): Use CASE_MATHFN_FLOATN instead of
9079         CASE_MATHFN for various builtins in SEQ_OF_CASE_MATHFN macro.
9080         (builtin_with_linkage_p): Add CASE_FLT_FN_FLOATN_NX for various
9081         builtins next to CASE_FLT_FN.
9082         * fold-const.cc (tree_call_nonnegative_warnv_p): Add CASE_CFN_*_FN:
9083         next to CASE_CFN_*: for various builtins.
9084         * tree-call-cdce.cc (can_test_argument_range): Add
9085         CASE_FLT_FN_FLOATN_NX next to CASE_FLT_FN for various builtins.
9086         (edom_only_function): Likewise.
9088 2022-10-31  konglin1  <lingling.kong@intel.com>
9090         * common/config/i386/i386-common.cc
9091         (OPTION_MASK_ISA2_AVXNECONVERT_SET,
9092         OPTION_MASK_ISA2_AVXNECONVERT_UNSET): New.
9093         (ix86_handle_option): Handle -mavxneconvert, unset
9094         avxneconvert when avx2 is disabled.
9095         * common/config/i386/i386-cpuinfo.h (processor_types): Add
9096         FEATURE_AVXNECONVERT.
9097         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
9098         avxneconvert.
9099         * common/config/i386/cpuinfo.h (get_available_features):
9100         Detect avxneconvert.
9101         * config.gcc: Add avxneconvertintrin.h
9102         * config/i386/avxneconvertintrin.h: New.
9103         * config/i386/avx512bf16vlintrin.h (_mm256_cvtneps_pbh):
9104         Unified builtin with avxneconvert.
9105         (_mm_cvtneps_pbh): Ditto.
9106         * config/i386/cpuid.h (bit_AVXNECONVERT): New.
9107         * config/i386/i386-builtin-types.def: Add
9108         DEF_POINTER_TYPE (PCV8HF, V8HF, CONST),
9109         DEF_POINTER_TYPE (PCV8BF, V8BF, CONST),
9110         DEF_POINTER_TYPE (PCV16HF, V16HF, CONST),
9111         DEF_POINTER_TYPE (PCV16BF, V16BF, CONST),
9112         DEF_FUNCTION_TYPE (V4SF, PCBFLOAT16),
9113         DEF_FUNCTION_TYPE (V4SF, PCFLOAT16),
9114         DEF_FUNCTION_TYPE (V8SF, PCBFLOAT16),
9115         DEF_FUNCTION_TYPE (V8SF, PCFLOAT16),
9116         DEF_FUNCTION_TYPE (V4SF, PCV8BF),
9117         DEF_FUNCTION_TYPE (V4SF, PCV8HF),
9118         DEF_FUNCTION_TYPE (V8SF, PCV16HF),
9119         DEF_FUNCTION_TYPE (V8SF, PCV16BF),
9120         * config/i386/i386-builtin.def: Add new builtins.
9121         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
9122         __AVXNECONVERT__.
9123         * config/i386/i386-expand.cc (ix86_expand_special_args_builtin):
9124         Handle V4SF_FTYPE_PCBFLOAT16,V8SF_FTYPE_PCBFLOAT16, V4SF_FTYPE_PCFLOAT16,
9125         V8SF_FTYPE_PCFLOAT16,V4SF_FTYPE_PCV8BF,
9126         V4SF_FTYPE_PCV8HF,V8SF_FTYPE_PCV16BF,V8SF_FTYPE_PCV16HF.
9127         * config/i386/i386-isa.def : Add DEF_PTA(AVXNECONVERT) New.
9128         * config/i386/i386-options.cc (isa2_opts): Add -mavxneconvert.
9129         (ix86_valid_target_attribute_inner_p): Handle avxneconvert.
9130         * config/i386/i386.md: Add attr avx512bf16vl and avxneconvert.
9131         * config/i386/i386.opt: Add option -mavxneconvert.
9132         * config/i386/immintrin.h: Inculde avxneconvertintrin.h.
9133         * config/i386/sse.md (vbcstnebf162ps_<mode>): New define_insn.
9134         (vbcstnesh2ps_<mode>): Ditto.
9135         (vcvtnee<bf16_ph>2ps_<mode>):Ditto.
9136         (vcvtneo<bf16_ph>2ps_<mode>):Ditto.
9137         (vcvtneps2bf16_v4sf): Ditto.
9138         (*vcvtneps2bf16_v4sf): Ditto.
9139         (vcvtneps2bf16_v8sf): Ditto.
9140         * doc/invoke.texi: Document -mavxneconvert.
9141         * doc/extend.texi: Document avxneconvert.
9142         * doc/sourcebuild.texi: Document target avxneconvert.
9144 2022-10-31  konglin1  <lingling.kong@intel.com>
9146         * config/i386/avx512bf16intrin.h (__attribute__): Change short to bf16.
9147         (_mm_cvtsbh_ss): Ditto.
9148         (_mm512_cvtne2ps_pbh): Ditto.
9149         (_mm512_mask_cvtne2ps_pbh): Ditto.
9150         (_mm512_maskz_cvtne2ps_pbh): Ditto.
9151         * config/i386/avx512bf16vlintrin.h (__attribute__): Ditto.
9152         (_mm256_cvtne2ps_pbh): Ditto.
9153         (_mm256_mask_cvtne2ps_pbh): Ditto.
9154         (_mm256_maskz_cvtne2ps_pbh): Ditto.
9155         (_mm_cvtne2ps_pbh): Ditto.
9156         (_mm_mask_cvtne2ps_pbh): Ditto.
9157         (_mm_maskz_cvtne2ps_pbh): Ditto.
9158         (_mm_cvtness_sbh): Ditto.
9159         * config/i386/i386-builtin-types.def (V8BF): Add new
9160         DEF_VECTOR_TYPE for BFmode.
9161         (V16BF): Ditto.
9162         (V32BF): Ditto.
9163         * config/i386/i386-builtin.def (BDESC): Fixed builtins.
9164         * config/i386/i386-expand.cc (ix86_expand_args_builtin): Changed
9165         avx512bf16 ix86_builtin_func_type included HI to BF.
9166         * config/i386/immintrin.h: Add SSE2 depend for avx512bf16.
9167         * config/i386/sse.md (TARGET_AVX512VL): Changed HI vector to BF
9168         vector.
9169         (avx512f_cvtneps2bf16_v4sf): New define_expand.
9170         (*avx512f_cvtneps2bf16_v4sf): New define_insn.
9171         (avx512f_cvtneps2bf16_v4sf_maskz):Ditto.
9172         (avx512f_cvtneps2bf16_v4sf_mask): Ditto.
9173         (avx512f_cvtneps2bf16_v4sf_mask_1): Ditto.
9175 2022-10-31  liuhongt  <hongtao.liu@intel.com>
9177         PR target/107261
9178         * config/i386/i386-modes.def (VECTOR_MODE): Support V2BFmode.
9179         * config/i386/i386.cc (classify_argument): Handle V4BFmode and
9180         V2BFmode.
9181         (ix86_convert_const_vector_to_integer): Ditto.
9182         * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Remove
9183         V2BFmode.
9184         (VALID_SSE2_REG_MODE): Add V4BFmode and V2BFmode.
9185         (VALID_MMX_REG_MODE): Add V4BFmode.
9186         * config/i386/i386.md (mode): Add V4BF and V2BF.
9187         (MODE_SIZE): Ditto.
9188         * config/i386/mmx.md (MMXMODE) Add V4BF.
9189         (V_32): Add V2BF.
9190         (V_16_32_64): Add V4BF and V2BF.
9191         (mmxinsnmode): Add V4BF and V2BF.
9192         (*mov<mode>_internal): Hanlde V4BFmode and V2BFmode.
9194 2022-10-29  Eric Botcazou  <ebotcazou@adacore.com>
9196         * configure.ac (sjlj-exceptions): Restore dropped line.
9197         * configure: Regenerate.
9199 2022-10-29  Eric Botcazou  <ebotcazou@adacore.com>
9201         * alias.cc (init_alias_analysis): Do not record sets to the hard
9202         frame pointer if the frame pointer has not been eliminated.
9204 2022-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>
9206         * config/darwin-d.cc (TARGET_D_MINFO_START_NAME): Rename to ...
9207         (TARGET_D_MINFO_SECTION_START): ...this.
9208         (TARGET_D_MINFO_END_NAME): Rename to ...
9209         (TARGET_D_MINFO_SECTION_END): ... this.
9210         * config/elfos.h (TARGET_D_MINFO_SECTION): Remove.
9211         (TARGET_D_MINFO_START_NAME): Remove.
9212         (TARGET_D_MINFO_END_NAME): Remove.
9213         * config/i386/cygwin-d.cc (TARGET_D_MINFO_SECTION): Remove.
9214         (TARGET_D_MINFO_START_NAME): Remove.
9215         (TARGET_D_MINFO_END_NAME): Remove.
9216         * config/i386/winnt-d.cc (TARGET_D_MINFO_SECTION): Remove.
9217         (TARGET_D_MINFO_START_NAME): Remove.
9218         (TARGET_D_MINFO_END_NAME): Remove.
9219         * doc/tm.texi: Regenerate.
9220         * doc/tm.texi.in (TARGET_D_MINFO_START_NAME): Rename to ...
9221         (TARGET_D_MINFO_SECTION_START): ...this.
9222         (TARGET_D_MINFO_END_NAME): Rename to ...
9223         (TARGET_D_MINFO_SECTION_END): ...this.
9225 2022-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>
9227         * config.gcc: Split out glibc-d.o into linux-d.o, kfreebsd-d.o,
9228         kopensolaris-d.o, and gnu-d.o.  Split out cygwin-d.o from winnt-d.o.
9229         * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
9230         * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
9231         * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
9232         * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
9233         * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
9234         * config/i386/t-cygming: Add cygwin-d.o.
9235         * config/i386/winnt-d.cc (winnt_d_os_builtins): Only add
9236         MinGW-specific version condition.
9237         * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
9238         * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
9239         * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Remove.
9240         * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Remove.
9241         * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Remove.
9242         * config/t-glibc: Remove glibc-d.o, add gnu-d.o, kfreebsd-d.o,
9243         kopensolaris-d.o.
9244         * config/t-linux: Add linux-d.o.
9245         * config/glibc-d.cc: Remove file.
9246         * config/gnu-d.cc: New file.
9247         * config/i386/cygwin-d.cc: New file.
9248         * config/kfreebsd-d.cc: New file.
9249         * config/kopensolaris-d.cc: New file.
9250         * config/linux-d.cc: New file.
9252 2022-10-29  Jeff Law  <jeffreyalaw@gmail.com>
9254         * config/h8300/h8300.cc (pre_incdec_with_reg): Make reg argument
9255         an unsigned int
9256         * config/h8300/h8300-protos.h (pre_incdec_with_reg): Adjust prototype.
9258 2022-10-28  Joseph Myers  <joseph@codesourcery.com>
9260         * config/aarch64/aarch64.cc (aarch64_setup_incoming_varargs):
9261         Check TYPE_NO_NAMED_ARGS_STDARG_P.
9262         * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Likewise.
9263         * config/arc/arc.cc (arc_setup_incoming_varargs): Likewise.
9264         * config/arm/arm.cc (arm_setup_incoming_varargs): Likewise.
9265         * config/csky/csky.cc (csky_setup_incoming_varargs): Likewise.
9266         * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs):
9267         Likewise.
9268         * config/fr30/fr30.cc (fr30_setup_incoming_varargs): Likewise.
9269         * config/frv/frv.cc (frv_setup_incoming_varargs): Likewise.
9270         * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Likewise.
9271         * config/i386/i386.cc (ix86_setup_incoming_varargs): Likewise.
9272         * config/ia64/ia64.cc (ia64_setup_incoming_varargs): Likewise.
9273         * config/loongarch/loongarch.cc
9274         (loongarch_setup_incoming_varargs): Likewise.
9275         * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Likewise.
9276         * config/mcore/mcore.cc (mcore_setup_incoming_varargs): Likewise.
9277         * config/mips/mips.cc (mips_setup_incoming_varargs): Likewise.
9278         * config/mmix/mmix.cc (mmix_setup_incoming_varargs): Likewise.
9279         * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Likewise.
9280         * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Likewise.
9281         * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Likewise.
9282         * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Likewise.
9283         * config/sh/sh.cc (sh_setup_incoming_varargs): Likewise.
9284         * config/visium/visium.cc (visium_setup_incoming_varargs):
9285         Likewise.
9286         * config/vms/vms-c.cc (vms_c_common_override_options): Do not set
9287         flag_allow_parameterless_variadic_functions.
9288         * doc/invoke.texi (-fallow-parameterless-variadic-functions): Do
9289         not document option.
9290         * function.cc (assign_parms): Call assign_parms_setup_varargs for
9291         TYPE_NO_NAMED_ARGS_STDARG_P case.
9292         * ginclude/stdarg.h [__STDC_VERSION__ > 201710L] (va_start): Make
9293         variadic macro.  Pass second argument of 0 to __builtin_va_start.
9294         * target.def (setup_incoming_varargs): Update documentation.
9295         * doc/tm.texi: Regenerate.
9296         * tree-core.h (struct tree_type_common): Add
9297         no_named_args_stdarg_p.
9298         * tree-streamer-in.cc (unpack_ts_type_common_value_fields): Unpack
9299         TYPE_NO_NAMED_ARGS_STDARG_P.
9300         * tree-streamer-out.cc (pack_ts_type_common_value_fields): Pack
9301         TYPE_NO_NAMED_ARGS_STDARG_P.
9302         * tree.cc (type_cache_hasher::equal): Compare
9303         TYPE_NO_NAMED_ARGS_STDARG_P.
9304         (build_function_type): Add argument no_named_args_stdarg_p.
9305         (build_function_type_list_1, build_function_type_array_1)
9306         (reconstruct_complex_type): Update calls to build_function_type.
9307         (stdarg_p, prototype_p): Return true for (...) functions.
9308         (gimple_canonical_types_compatible_p): Compare
9309         TYPE_NO_NAMED_ARGS_STDARG_P.
9310         * tree.h (TYPE_NO_NAMED_ARGS_STDARG_P): New.
9311         (build_function_type): Update prototype.
9313 2022-10-28  Andre Vieira  <andre.simoesdiasvieira@arm.com>
9315         PR tree-optimization/107346
9316         * tree-vect-data-refs.cc (vect_check_gather_scatter): Reject offsets
9317         that aren't multiples of BITS_PER_UNIT.
9319 2022-10-28  Richard Biener  <rguenther@suse.de>
9321         PR tree-optimization/107407
9322         * tree-ssa-dse.cc (dse_classify_store): Perform backedge
9323         varying index check when collecting PHI uses rather than
9324         after optimizing processing of the candidate defs.
9326 2022-10-28  Richard Biener  <rguenther@suse.de>
9328         PR tree-optimization/107447
9329         * tree-ssa-loop-im.cc (determine_max_movement): Do not
9330         hoist returns-twice calls.
9332 2022-10-28  Richard Biener  <rguenther@suse.de>
9334         PR tree-optimization/107435
9335         * tree-vect-loop.cc (vectorizable_recurr): Convert initial
9336         value to vector component type.
9338 2022-10-28  Julian Brown  <julian@codesourcery.com>
9339             Thomas Schwinge  <thomas@codesourcery.com>
9341         PR middle-end/90115
9342         * omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not
9343         privatization candidates.
9345 2022-10-28  Martin Liska  <mliska@suse.cz>
9347         PR sanitizer/107298
9348         * doc/invoke.texi: Document sanitizers can trigger warnings.
9350 2022-10-28  Thomas Schwinge  <thomas@codesourcery.com>
9352         * doc/makefile.texi (Makefile Targets): Document
9353         'distclean-stage[N]'.
9355 2022-10-28  Aldy Hernandez  <aldyh@redhat.com>
9357         * value-range.cc (range_tests_floats): Use HONOR_INFINITIES.
9359 2022-10-27  Eric Botcazou  <ebotcazou@adacore.com>
9361         * config/aarch64/aarch64.h (DONT_USE_BUILTIN_SETJMP): Delete.
9363 2022-10-27  H.J. Lu  <hjl.tools@gmail.com>
9365         PR target/107172
9366         * config/i386/i386.md (UNSPEC_CC_NE): New.
9367         Replace ne:CCC/ne:CCO with UNSPEC_CC_NE in neg patterns.
9369 2022-10-27  Andrew Pinski  <apinski@marvell.com>
9371         * tree-ssa-phiopt.cc: Include tree-ssa-dce.h
9372         (replace_phi_edge_with_variable):
9373         New argument, dce_ssa_names. Call simple_dce_from_worklist.
9374         (match_simplify_replacement): If we inserted a sequence,
9375         mark the lhs of the new sequence to be possible dce.
9376         Always move the statement and mark the lhs (if it is a name)
9377         as possible to remove.
9379 2022-10-27  Richard Sandiford  <richard.sandiford@arm.com>
9381         * config/aarch64/aarch64-protos.h: Replace constexpr with
9382         CONSTEXPR.
9383         * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
9384         * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
9385         * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
9386         * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
9387         * config/aarch64/aarch64-sve-builtins.cc: Likewise.
9388         * config/aarch64/aarch64.cc: Likewise.
9389         * config/aarch64/driver-aarch64.cc: Likewise
9391 2022-10-27  Aldy Hernandez  <aldyh@redhat.com>
9393         PR tree-optimization/107394
9394         * value-range-storage.cc (frange_storage_slot::get_frange): Use
9395         frange constructor.
9397 2022-10-27  Thomas Schwinge  <thomas@codesourcery.com>
9399         * optc-save-gen.awk: Clarify 'Init' option property usage for
9400         streaming optimization.
9402 2022-10-27  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
9403             Yvan ROUX  <yvan.roux@foss.st.com>
9405         * ira.cc: Resize array after reg number increased.
9407 2022-10-27  Jiawei  <jiawei@iscas.ac.cn>
9408             Sinan Lin  <sinan@isrc.iscas.ac.cn>
9410         * config/riscv/constraints.md (TARGET_ZFINX ? GR_REGS): Set GPRS
9411         use while Zfinx is enable.
9412         * config/riscv/riscv.cc (riscv_hard_regno_mode_ok): Limit odd
9413         registers use when Zdinx enable in RV32 cases.
9414         (riscv_option_override): New target enable MASK_FDIV.
9415         (riscv_libgcc_floating_mode_supported_p): New error info when
9416         use incompatible arch&abi.
9417         (riscv_excess_precision): New target enable FLOAT16.
9419 2022-10-27  Jiawei  <jiawei@iscas.ac.cn>
9421         * config/riscv/iterators.md (TARGET_ZFINX):New target.
9422         (TARGET_ZDINX): Ditto.
9423         (TARGET_ZHINX): Ditto.
9424         * config/riscv/riscv-builtins.cc (AVAIL): Ditto.
9425         (riscv_atomic_assign_expand_fenv): Ditto.
9426         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Ditto.
9427         * config/riscv/riscv.md: Ditto.
9429 2022-10-27  Jiawei  <jiawei@iscas.ac.cn>
9430             Sinan Lin  <sinan@isrc.iscas.ac.cn>
9432         * common/config/riscv/riscv-common.cc: New extensions.
9433         * config/riscv/arch-canonicalize: New imply relations.
9434         * config/riscv/riscv-opts.h (MASK_ZFINX): New mask.
9435         (MASK_ZDINX): Ditto.
9436         (MASK_ZHINX): Ditto.
9437         (MASK_ZHINXMIN): Ditto.
9438         (TARGET_ZFINX): New target.
9439         (TARGET_ZDINX): Ditto.
9440         (TARGET_ZHINX): Ditto.
9441         (TARGET_ZHINXMIN): Ditto.
9442         * config/riscv/riscv.opt: New target variable.
9444 2022-10-26  David Faust  <david.faust@oracle.com>
9446         * config/bpf/bpf.cc: Support __builtin_preserve_field_info.
9447         (enum bpf_builtins): Add new builtin.
9448         (bpf_init_builtins): Likewise.
9449         (bpf_core_field_info): New function.
9450         (bpf_expand_builtin): Accomodate new builtin. Refactor adding new
9451         relocation to...
9452         (maybe_make_core_relo): ... here. New function.
9453         (bpf_resolve_overloaded_builtin): Accomodate new builtin.
9454         (bpf_core_newdecl): Likewise.
9455         (bpf_core_walk): Likewise.
9456         (bpf_core_is_maybe_aggregate_access): Improve logic.
9457         (struct core_walk_data): New.
9458         * config/bpf/coreout.cc (bpf_core_reloc_add): Allow adding different
9459         relocation kinds.
9460         * config/bpf/coreout.h: Analogous change.
9461         * doc/extend.texi: Document BPF __builtin_preserve_field_info.
9463 2022-10-26  Marek Polacek  <polacek@redhat.com>
9465         PR c++/106393
9466         * doc/invoke.texi: Document -Wdangling-reference.
9468 2022-10-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9470         * config/xtensa/xtensa.md (movdi):
9471         Copy operands[0...1] to ops[0...3] and then use the latter before
9472         calling xtensa_split_DI_reg_imm() and emitting insns.
9474 2022-10-26  Alexander Monakov  <amonakov@ispras.ru>
9476         PR other/107353
9477         * ipa-visibility.cc (function_and_variable_visibility):
9478         Conditionally upgrade TLS model instead of asserting.
9480 2022-10-26  Andrew MacLeod  <amacleod@redhat.com>
9482         * gimple-range-fold.cc (fold_using_range::fold_stmt): Check if
9483         stmt is non-negative and adjust the range.
9485 2022-10-26  Martin Liska  <mliska@suse.cz>
9487         * common/config/i386/cpuinfo.h (has_cpu_feature): Add comment.
9488         (reset_cpu_feature): New.
9489         (get_zhaoxin_cpu): Use reset_cpu_feature.
9491 2022-10-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9493         * config/riscv/riscv.cc (riscv_expand_epilogue): Fix statement.
9495 2022-10-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9497         PR target/107357
9498         * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Set to minimum size.
9499         (ADJUST_NUNITS): Adjust according to -march.
9500         (ADJUST_BYTESIZE): Ditto.
9501         * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p):
9502         Remove.
9503         (riscv_v_ext_vector_mode_p): Change function implementation.
9504         * config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher):
9505         Change to riscv_v_ext_vector_mode_p.
9506         (register_builtin_type): Ditto.
9507         * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): Change to enabled
9508         modes.
9509         (ENTRY): Ditto.
9510         (riscv_v_ext_enabled_vector_mode_p): Remove.
9511         (riscv_v_adjust_nunits): New function.
9512         (riscv_vector_mode_supported_p): Use riscv_v_ext_vector_mode_p instead.
9513         * config/riscv/riscv.h (riscv_v_adjust_nunits): New function.
9515 2022-10-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9517         * config.gcc (riscv*): Add riscv-v.o to extra_objs.
9518         * config/riscv/constraints.md (vu): New constraint.
9519         (vi): Ditto.
9520         (Wc0): Ditto.
9521         (Wc1): Ditto.
9522         * config/riscv/predicates.md (vector_length_operand): New.
9523         (reg_or_mem_operand): Ditto.
9524         (vector_move_operand): Ditto.
9525         (vector_mask_operand): Ditto.
9526         (vector_merge_operand): Ditto.
9527         * config/riscv/riscv-protos.h (riscv_regmode_natural_size) New.
9528         (riscv_vector::const_vec_all_same_in_range_p): Ditto.
9529         (riscv_vector::legitimize_move): Ditto.
9530         (tail_policy): Ditto.
9531         (mask_policy): Ditto.
9532         * config/riscv/riscv-v.cc: New.
9533         * config/riscv/riscv-vector-builtins-bases.cc
9534         (vsetvl::expand): Refactor how LMUL encoding.
9535         * config/riscv/riscv.cc (riscv_print_operand): Update how LMUL
9536         print and mask operand print.
9537         (riscv_regmode_natural_size): New.
9538         * config/riscv/riscv.h (REGMODE_NATURAL_SIZE): New.
9539         * config/riscv/riscv.md (mode): Add vector modes.
9540         * config/riscv/t-riscv (riscv-v.o) New.
9541         * config/riscv/vector-iterators.md: New.
9542         * config/riscv/vector.md (vundefined<mode>): New.
9543         (mov<mode>): New.
9544         (*mov<mode>): New.
9545         (@vsetvl<mode>_no_side_effects): New.
9546         (@pred_mov<mode>): New.
9548 2022-10-26  Monk Chiang  <monk.chiang@sifive.com>
9550         * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
9551         Add svinval and svnapot extension.
9552         (riscv_ext_flag_table): Ditto.
9553         * config/riscv/riscv-opts.h (MASK_SVINVAL): New.
9554         (MASK_SVNAPOT): Ditto.
9555         (TARGET_SVINVAL): Ditto.
9556         (TARGET_SVNAPOT): Ditto.
9557         * config/riscv/riscv.opt (riscv_sv_subext): New.
9559 2022-10-26  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9561         * config/riscv/riscv-modes.def: Adjust table indentation in commnet.
9563 2022-10-26  Martin Liska  <mliska@suse.cz>
9565         * configure: Regenerate.
9567 2022-10-26  Aldy Hernandez  <aldyh@redhat.com>
9569         * value-range.cc (frange::set): Use HONOR_*.
9570         (frange::verify_range): Same.
9571         * value-range.h (frange_val_min): Same.
9572         (frange_val_max): Same.
9574 2022-10-26  Jiufu Guo  <guojiufu@linux.ibm.com>
9576         PR target/106460
9577         * config/rs6000/rs6000.cc (rs6000_cannot_force_const_mem): Return true
9578         for HIGH code rtx.
9580 2022-10-26  Kito Cheng  <kito.cheng@sifive.com>
9582         * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
9583         Add `h`.
9584         (riscv_supported_std_ext): Ditto.
9585         (multi_letter_subset_rank): Remove `h`.
9586         (riscv_subset_list::parse_std_ext): Handle `h` as single letter
9587         extension.
9588         (riscv_subset_list::parse): Ditto.
9590 2022-10-25  Eugene Rozenfeld  <erozen@microsoft.com>
9592         * auto-profile.cc (get_combined_location): Include discriminator in the
9593         returned combined location.
9594         (read_function_instance): Read discriminators from profiles.
9596 2022-10-25  H.J. Lu  <hjl.tools@gmail.com>
9598         PR target/107304
9599         * expr.cc (get_inner_reference): Always use TYPE_MODE for vector
9600         field with vector raw mode.
9602 2022-10-25  Segher Boessenkool  <segher@kernel.crashing.org>
9604         * config/rs6000/rs6000.md (CCEITHER): Delete.
9605         (CCANY): New.
9606         (un): Delete.
9607         (isel_<un>signed_<GPR:mode>): Rename to...
9608         (isel_<CCANY:mode>_<GPR:mode>): ... this.  Adjust.
9609         (*isel_reversed_<un>signed_<GPR:mode>): Rename to...
9610         (*isel_reversed_<CCANY:mode>_<GPR:mode>): ... this.  Adjust.
9611         (setbc_<un>signed_<GPR:mode>): Rename to...
9612         (setbc_<CCANY:mode>_<GPR:mode>C): ... this.  Adjust."
9613         (*setbcr_<un>signed_<GPR:mode>): Rename to ...
9614         (*setbcr_<CCANY:mode>_<GPR:mode>): ... this.  Adjust.
9615         (*setnbc_<un>signed_<GPR:mode>): Rename to ...
9616         (*setnbc_<CCANY:mode>_<GPR:mode>): ... this.  Adjust.
9617         (*setnbcr_<un>signed_<GPR:mode>): Rename to ...
9618         (*setnbcr_<CCANY:mode>_<GPR:mode>): ... this.  Adjust.
9619         (eq<mode>3 for GPR): Adjust.
9620         (ne<mode>3 for GPR): Adjust.
9621         * config/rs6000/rs6000-string.cc (do_isel): Adjust.
9622         * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Adjust.
9624 2022-10-25  Richard Biener  <rguenther@suse.de>
9626         PR tree-optimization/107176
9627         PR tree-optimization/66375
9628         PR tree-optimization/42512
9629         * tree-scalar-evolution.cc (follow_ssa_edge_expr): Revert
9630         the PR66375 fix, do not not associate PLUS_EXPR to be able
9631         to use tail-recursion.
9632         (follow_ssa_edge_binary): Likewise.
9633         (interpret_loop_phi): Revert PR42512 fix, do not throw
9634         away analyze_evolution_in_loop result after the fact.
9635         (follow_ssa_edge_expr): When reaching halting_phi initalize
9636         the evolution to the symbolic value of the PHI result.
9637         (add_to_evolution_1): When adding the first evolution verify
9638         we can handle the expression wrapping the symbolic evolution
9639         and replace that in full using the initial condition.
9640         (class scev_dfs): New, contains ...
9641         (follow_ssa_edge_expr, follow_ssa_edge_binary,
9642         follow_ssa_edge_in_condition_phi_branch,
9643         follow_ssa_edge_in_condition_phi,
9644         follow_ssa_edge_inner_loop_phi,
9645         add_to_evolution, add_to_evolution_1): ... these with
9646         loop and halting_phi arguments in class data.
9647         (scev_dfs::get_ev): New toplevel DFS entry, start with
9648         a chrec_dont_know evolution.
9649         (analyze_evolution_in_loop): Use scev_dfs.
9651 2022-10-25  Eric Botcazou  <ebotcazou@adacore.com>
9653         * profile.cc (branch_prob): Be prepared for ignored functions with
9654         DECL_SOURCE_LOCATION set to UNKNOWN_LOCATION.
9656 2022-10-25  Richard Biener  <rguenther@suse.de>
9658         * tree-scalar-evolution.cc (follow_ssa_edge_expr): Move
9659         STRIP_USELESS_TYPE_CONVERSIONS to where it matters.
9661 2022-10-25  Tejas Joshi  <TejasSanjay.Joshi@amd.com>
9663         * common/config/i386/i386-common.cc (processor_alias_table): Use
9664         CPU_ZNVER3 for znver4.
9665         * config/i386/znver.md: Remove znver4 reservations.
9667 2022-10-25  Jakub Jelinek  <jakub@redhat.com>
9669         * gimplify.cc (gimple_boolify): Fix comment typos, prduce -> produce
9670         and There -> These.
9672 2022-10-25  Jakub Jelinek  <jakub@redhat.com>
9674         PR tree-optimization/107368
9675         * gimplify.cc (gimplify_call_expr): For complex IFN_ASSUME
9676         conditions call gimple_boolify on the condition.
9678 2022-10-25  YunQiang Su  <yunqiang.su@cipunited.com>
9680         * config.gcc: add -with-compact-branches=policy build option.
9681         * doc/install.texi: Likewise.
9682         * config/mips/mips.h: Likewise.
9684 2022-10-25  YunQiang Su  <yunqiang.su@cipunited.com>
9686         * config/mips/mips.cc (mips_option_override): not trigger error
9687         for compact-branches=always for pre-R6.
9688         * config/mips/mips.h (TARGET_RTP_PIC): not trigger error for
9689         compact-branches=always for pre-R6.
9690         (TARGET_CB_NEVER): Likewise.
9691         (TARGET_CB_ALWAYS): Likewise.
9692         (struct mips_cpu_info): define macros for compact branch policy.
9693         * doc/invoke.texi: Document "always" with pre-R6.
9695 2022-10-25  Jakub Jelinek  <jakub@redhat.com>
9697         PR tree-optimization/107369
9698         * gimplify.cc (gimplify_call_expr): If seen_error, handle complex
9699         IFN_ASSUME the same as for -O0.
9701 2022-10-25  YunQiang Su  <yunqiang.su@cipunited.com>
9703         * configure.ac: AC_DEFINE(ENABLE_MULTIARCH, 1)
9704         * configure: Regenerated.
9705         * config.in: Regenerated.
9706         * config/mips/mips.h: don't define STANDARD_STARTFILE_PREFIX_1
9707         if ENABLE_MULTIARCH is defined.
9708         * config/mips/t-linux64: define correct multiarch path when
9709         multiarch is enabled.
9711 2022-10-25  Richard Biener  <rguenther@suse.de>
9713         PR tree-optimization/100756
9714         * tree-ssa-loop-niter.cc (expand_simple_operations): Also
9715         expand multiplications by invariants.
9717 2022-10-25  Kewen Lin  <linkw@linux.ibm.com>
9719         PR tree-optimization/107338
9720         * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Move
9721         shfit_n calculation before the adjustments for widening loads.
9723 2022-10-25  Martin Liska  <mliska@suse.cz>
9725         * common/config/riscv/riscv-common.cc
9726         (riscv_get_valid_option_values): Get out of ifdef.
9728 2022-10-25  Martin Liska  <mliska@suse.cz>
9730         PR target/107364
9731         * common/config/i386/i386-cpuinfo.h (enum processor_vendor):
9732         Fix pedantic warning.
9734 2022-10-24  Martin Liska  <mliska@suse.cz>
9736         PR analyzer/107366
9737         * diagnostic-format-sarif.cc
9738         (sarif_builder::maybe_make_physical_location_object): Gracefully
9739         reject locations with NULL filename.
9741 2022-10-24  David Malcolm  <dmalcolm@redhat.com>
9743         PR analyzer/106300
9744         * doc/invoke.texi (Static Analyzer Options): Add "pipe" and
9745         "pipe2" to the list of functions the analyzer has hardcoded
9746         knowledge of.
9748 2022-10-24  Jason Merrill  <jason@redhat.com>
9750         * tree.h (build_string_literal): New one-argument overloads that
9751         take tree (identifier) and const char *.
9752         * builtins.cc (fold_builtin_FILE)
9753         (fold_builtin_FUNCTION)
9754         * gimplify.cc (gimple_add_init_for_auto_var)
9755         * vtable-verify.cc (verify_bb_vtables): Simplify calls.
9757 2022-10-24  Martin Liska  <mliska@suse.cz>
9759         PR target/107364
9760         * common/config/i386/i386-cpuinfo.h (enum processor_vendor):
9761         Reorder enum values as BUILTIN_VENDOR_MAX should not point
9762         in the middle of the valid enum values.
9764 2022-10-24  Marek Polacek  <polacek@redhat.com>
9766         PR c++/107276
9767         * tree.cc (maybe_wrap_with_location): Don't create a location wrapper
9768         when the type is erroneous.
9770 2022-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
9772         PR target/106583
9773         * config/aarch64/aarch64.cc (aarch64_internal_mov_immediate)
9774         Add support for a bitmask immediate with 2 MOVKs.
9775         (aarch64_check_bitmask): New function after refactorization.
9776         (aarch64_bitmask_imm): Simplify replication of small modes.
9777         Split function into 64-bit only version for efficiency.
9778         (aarch64_move_imm): Move near other immediate functions.
9779         (aarch64_uimm12_shift): Likewise.
9780         (aarch64_clamp_to_uimm12_shift): Likewise.
9781         (aarch64_movk_shift): Likewise.
9782         (aarch64_replicate_bitmask_imm): Likewise.
9783         (aarch64_and_split_imm1): Likewise.
9784         (aarch64_and_split_imm2): Likewise.
9785         (aarch64_and_bitmask_imm): Likewise.
9786         (aarch64_movw_imm): Likewise.
9788 2022-10-24  Aldy Hernandez  <aldyh@redhat.com>
9790         PR tree-optimization/107355
9791         * range-op-float.cc (foperator_abs::op1_range): Handle NAN.
9793 2022-10-24  Tobias Burnus  <tobias@codesourcery.com>
9795         PR middle-end/107236
9796         * omp-expand.cc (expand_omp_target): Set calls_declare_variant_alt
9797         in DECL_CONTEXT and not to cfun->decl.
9798         * cgraphclones.cc (cgraph_node::create_clone): Copy also the
9799         node's calls_declare_variant_alt value.
9801 2022-10-24  Kito Cheng  <kito.cheng@sifive.com>
9803         * common/config/riscv/riscv-common.cc (riscv_tunes): New.
9804         (riscv_get_valid_option_values): New.
9805         (TARGET_GET_VALID_OPTION_VALUES): New.
9806         * config/riscv/riscv-cores.def (RISCV_TUNE): New, define options
9807         for tune here.
9808         (RISCV_CORE): Fix comment.
9809         * config/riscv/riscv.cc (riscv_tune_info_table): Move definition to
9810         riscv-cores.def.
9812 2022-10-24  Aldy Hernandez  <aldyh@redhat.com>
9814         PR tree-optimization/107365
9815         * value-range.cc (frange::verify_range): Predicate NAN check in
9816         VARYING range on HONOR_NANS instead of flag_finite_math_only.
9817         (range_tests_floats): Same.
9818         (range_tests_floats_various): New.
9819         (range_tests): Call range_tests_floats_various.
9821 2022-10-24  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
9822             Yvan ROUX  <yvan.roux@foss.st.com>
9824         * lto-wrapper.cc: Quote paths in makefile.
9826 2022-10-24  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9828         * config/riscv/riscv.cc (riscv_legitimize_move): Support (set (mem) (const_poly_int)).
9830 2022-10-24  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9832         * config/riscv/riscv-vector-builtins-bases.cc: Replace CONSTEXPR
9833         with constexpr throughout.
9834         * config/riscv/riscv-vector-builtins-shapes.cc (SHAPE): Likewise.
9835         * config/riscv/riscv-vector-builtins.cc
9836         (struct registered_function_hasher): Likewise.
9837         * config/riscv/riscv-vector-builtins.h (struct rvv_arg_type_info):
9838         Likewise.
9840 2022-10-24  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9842         * config/riscv/riscv-vector-switch.def (ENTRY): Remove unused TI/TF vector modes.
9844 2022-10-24  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9846         * config/riscv/riscv.h (REG_CLASS_CONTENTS): Fix ALL_REGS.
9848 2022-10-22  Michael Eager  <eager@eagercon.com>
9850         * config/microblaze/microblaze.cc
9851         (microblaze_legitimize_address): Initialize 'reg' to NULL, check for NULL.
9852         (microblaze_address_insns): Replace abort() with gcc_unreachable().
9853         (print_operand_address): Same.
9854         (microblaze_expand_move): Initialize 'p1' to NULL, check for NULL.
9855         (get_branch_target): Replace abort() with gcc_unreachable().
9857 2022-10-22  Aldy Hernandez  <aldyh@redhat.com>
9859         * value-range.cc (range_tests_floats): Predicate [-Inf, +Inf] test
9860         with !flag_finite_math_only.
9862 2022-10-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9864         * config/xtensa/xtensa.cc (xtensa_conditional_register_usage):
9865         Remove register A0 from FIXED_REGS if the CALL0 ABI.
9866         (xtensa_expand_epilogue): Change to emit '(use (reg:SI A0_REG))'
9867         unconditionally after restoring callee-saved registers for
9868         sibling-call functions, in order to prevent misleading that
9869         register A0 is free to use.
9871 2022-10-21  Jakub Jelinek  <jakub@redhat.com>
9873         PR target/107322
9874         * config/i386/i386-expand.cc (ix86_prepare_fp_compare_args): For
9875         BFmode comparisons promote arguments to SFmode and recurse.
9876         (ix86_expand_int_movcc, ix86_expand_fp_movcc): Return false early
9877         if comparison operands are BFmode and operands[1] is not
9878         ix86_fp_comparison_operator.
9880 2022-10-21  Tejas Joshi  <TejasSanjay.Joshi@amd.com>
9882         * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver4.
9883         * common/config/i386/i386-common.cc (processor_names): Add znver4.
9884         (processor_alias_table): Add znver4 and modularize old znvers.
9885         * common/config/i386/i386-cpuinfo.h (processor_subtypes):
9886         AMDFAM19H_ZNVER4.
9887         * config.gcc (x86_64-*-* |...): Likewise.
9888         * config/i386/driver-i386.cc (host_detect_local_cpu): Let
9889         -march=native recognize znver4 cpus.
9890         * config/i386/i386-c.cc (ix86_target_macros_internal): Add znver4.
9891         * config/i386/i386-options.cc (m_ZNVER4): New definition.
9892         (m_ZNVER): Include m_ZNVER4.
9893         (processor_cost_table): Add znver4.
9894         * config/i386/i386.cc (ix86_reassociation_width): Likewise.
9895         * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER4.
9896         (PTA_ZNVER1): New definition.
9897         (PTA_ZNVER2): Likewise.
9898         (PTA_ZNVER3): Likewise.
9899         (PTA_ZNVER4): Likewise.
9900         * config/i386/i386.md (define_attr "cpu"): Add znver4 and rename
9901         md file.
9902         * config/i386/x86-tune-costs.h (znver4_cost): New definition.
9903         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver4.
9904         (ix86_adjust_cost): Likewise.
9905         * config/i386/znver1.md: Rename to znver.md.
9906         * config/i386/znver.md: Add new reservations for znver4.
9907         * doc/extend.texi: Add details about znver4.
9908         * doc/invoke.texi: Likewise.
9910 2022-10-21  Richard Biener  <rguenther@suse.de>
9912         PR tree-optimization/107323
9913         * tree-loop-distribution.cc (pg_unmark_merged_alias_ddrs):
9914         New function.
9915         (loop_distribution::break_alias_scc_partitions): Revert
9916         postorder save/restore from the PR94125 fix.  Instead
9917         make sure to not ignore edges from SCCs we are going to
9918         merge.
9920 2022-10-21  Monk Chiang  <monk.chiang@sifive.com>
9922         * config/riscv/riscv.md: Add atomic type attribute.
9923         * config/riscv/sync.md: Add atomic type for atomic instructions.
9925 2022-10-21  Jakub Jelinek  <jakub@redhat.com>
9927         PR tree-optimization/54346
9928         * match.pd ((vec_perm (vec_perm@0 @1 @2 VECTOR_CST) @0 VECTOR_CST)):
9929         Optimize nested VEC_PERM_EXPRs even if target can't handle the
9930         new one provided we don't increase number of VEC_PERM_EXPRs the
9931         target can't handle.
9933 2022-10-21  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9935         * config.gcc: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o
9936         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New macro.
9937         (DEF_RVV_FUNCTION): Ditto.
9938         (handle_pragma_vector): Add intrinsic framework.
9939         * config/riscv/riscv.cc (riscv_print_operand): Add operand print for vsetvl/vsetvlmax.
9940         * config/riscv/riscv.md: include vector.md.
9941         * config/riscv/t-riscv: Add riscv-vector-builtins-bases.o and riscv-vector-builtins-shapes.o
9942         * config/riscv/riscv-vector-builtins-bases.cc: New file.
9943         * config/riscv/riscv-vector-builtins-bases.h: New file.
9944         * config/riscv/riscv-vector-builtins-functions.def: New file.
9945         * config/riscv/riscv-vector-builtins-shapes.cc: New file.
9946         * config/riscv/riscv-vector-builtins-shapes.h: New file.
9947         * config/riscv/riscv-vector-builtins-types.def: New file.
9948         * config/riscv/vector.md: New file.
9950 2022-10-21  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
9952         * config.gcc: Add gt files since function_instance is GTY ((user)).
9953         * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV intrinsic framework.
9954         (riscv_builtin_decl): Ditto.
9955         (riscv_expand_builtin): Ditto.
9956         * config/riscv/riscv-protos.h (builtin_decl): New function.
9957         (expand_builtin): Ditto.
9958         (enum riscv_builtin_class): New enum to classify RVV intrinsic and RISC-V general built-in.
9959         * config/riscv/riscv-vector-builtins.cc (class GTY): New declaration.
9960         (struct registered_function_hasher): New struct.
9961         (DEF_RVV_OP_TYPE): New macro.
9962         (DEF_RVV_TYPE): Ditto.
9963         (DEF_RVV_PRED_TYPE): Ditto.
9964         (GTY): New declaration.
9965         (add_attribute): New function.
9966         (check_required_extensions): Ditto.
9967         (rvv_arg_type_info::get_tree_type): Ditto.
9968         (function_instance::function_instance): Ditto.
9969         (function_instance::operator==): Ditto.
9970         (function_instance::any_type_float_p): Ditto.
9971         (function_instance::get_return_type): Ditto.
9972         (function_instance::get_arg_type): Ditto.
9973         (function_instance::hash): Ditto.
9974         (function_instance::call_properties): Ditto.
9975         (function_instance::reads_global_state_p): Ditto.
9976         (function_instance::modifies_global_state_p): Ditto.
9977         (function_instance::could_trap_p): Ditto.
9978         (function_builder::function_builder): Ditto.
9979         (function_builder::~function_builder): Ditto.
9980         (function_builder::allocate_argument_types): Ditto.
9981         (function_builder::register_function_group): Ditto.
9982         (function_builder::append_name): Ditto.
9983         (function_builder::finish_name): Ditto.
9984         (function_builder::get_attributes): Ditto.
9985         (function_builder::add_function): Ditto.
9986         (function_builder::add_unique_function): Ditto.
9987         (function_call_info::function_call_info): Ditto.
9988         (function_expander::function_expander): Ditto.
9989         (function_expander::add_input_operand): Ditto.
9990         (function_expander::generate_insn): Ditto.
9991         (registered_function_hasher::hash): Ditto.
9992         (registered_function_hasher::equal): Ditto.
9993         (builtin_decl): Ditto.
9994         (expand_builtin): Ditto.
9995         (gt_ggc_mx): Define for using GCC garbage collect.
9996         (gt_pch_nx): Define for using GCC garbage collect.
9997         * config/riscv/riscv-vector-builtins.def (DEF_RVV_OP_TYPE): New macro.
9998         (DEF_RVV_PRED_TYPE): Ditto.
9999         (vbool64_t): Add suffix.
10000         (vbool32_t): Ditto.
10001         (vbool16_t): Ditto.
10002         (vbool8_t): Ditto.
10003         (vbool4_t): Ditto.
10004         (vbool2_t): Ditto.
10005         (vbool1_t): Ditto.
10006         (vint8mf8_t): Ditto.
10007         (vuint8mf8_t): Ditto.
10008         (vint8mf4_t): Ditto.
10009         (vuint8mf4_t): Ditto.
10010         (vint8mf2_t): Ditto.
10011         (vuint8mf2_t): Ditto.
10012         (vint8m1_t): Ditto.
10013         (vuint8m1_t): Ditto.
10014         (vint8m2_t): Ditto.
10015         (vuint8m2_t): Ditto.
10016         (vint8m4_t): Ditto.
10017         (vuint8m4_t): Ditto.
10018         (vint8m8_t): Ditto.
10019         (vuint8m8_t): Ditto.
10020         (vint16mf4_t): Ditto.
10021         (vuint16mf4_t): Ditto.
10022         (vint16mf2_t): Ditto.
10023         (vuint16mf2_t): Ditto.
10024         (vint16m1_t): Ditto.
10025         (vuint16m1_t): Ditto.
10026         (vint16m2_t): Ditto.
10027         (vuint16m2_t): Ditto.
10028         (vint16m4_t): Ditto.
10029         (vuint16m4_t): Ditto.
10030         (vint16m8_t): Ditto.
10031         (vuint16m8_t): Ditto.
10032         (vint32mf2_t): Ditto.
10033         (vuint32mf2_t): Ditto.
10034         (vint32m1_t): Ditto.
10035         (vuint32m1_t): Ditto.
10036         (vint32m2_t): Ditto.
10037         (vuint32m2_t): Ditto.
10038         (vint32m4_t): Ditto.
10039         (vuint32m4_t): Ditto.
10040         (vint32m8_t): Ditto.
10041         (vuint32m8_t): Ditto.
10042         (vint64m1_t): Ditto.
10043         (vuint64m1_t): Ditto.
10044         (vint64m2_t): Ditto.
10045         (vuint64m2_t): Ditto.
10046         (vint64m4_t): Ditto.
10047         (vuint64m4_t): Ditto.
10048         (vint64m8_t): Ditto.
10049         (vuint64m8_t): Ditto.
10050         (vfloat32mf2_t): Ditto.
10051         (vfloat32m1_t): Ditto.
10052         (vfloat32m2_t): Ditto.
10053         (vfloat32m4_t): Ditto.
10054         (vfloat32m8_t): Ditto.
10055         (vfloat64m1_t): Ditto.
10056         (vfloat64m2_t): Ditto.
10057         (vfloat64m4_t): Ditto.
10058         (vfloat64m8_t): Ditto.
10059         (vv): Ditto.
10060         (vx): Ditto.
10061         (v): Ditto.
10062         (wv): Ditto.
10063         (wx): Ditto.
10064         (x_x_v): Ditto.
10065         (vf2): Ditto.
10066         (vf4): Ditto.
10067         (vf8): Ditto.
10068         (vvm): Ditto.
10069         (vxm): Ditto.
10070         (x_x_w): Ditto.
10071         (v_v): Ditto.
10072         (v_x): Ditto.
10073         (vs): Ditto.
10074         (mm): Ditto.
10075         (m): Ditto.
10076         (vf): Ditto.
10077         (vm): Ditto.
10078         (wf): Ditto.
10079         (vfm): Ditto.
10080         (v_f): Ditto.
10081         (ta): Ditto.
10082         (tu): Ditto.
10083         (ma): Ditto.
10084         (mu): Ditto.
10085         (tama): Ditto.
10086         (tamu): Ditto.
10087         (tuma): Ditto.
10088         (tumu): Ditto.
10089         (tam): Ditto.
10090         (tum): Ditto.
10091         * config/riscv/riscv-vector-builtins.h (GCC_RISCV_VECTOR_BUILTINS_H): New macro.
10092         (RVV_REQUIRE_RV64BIT): Ditto.
10093         (RVV_REQUIRE_ZVE64): Ditto.
10094         (RVV_REQUIRE_ELEN_FP_32): Ditto.
10095         (RVV_REQUIRE_ELEN_FP_64): Ditto.
10096         (enum operand_type_index): New enum.
10097         (DEF_RVV_OP_TYPE): New macro.
10098         (enum predication_type_index): New enum.
10099         (DEF_RVV_PRED_TYPE): New macro.
10100         (enum rvv_base_type): New enum.
10101         (struct rvv_builtin_suffixes): New struct.
10102         (struct rvv_arg_type_info): Ditto.
10103         (struct rvv_type_info): Ditto.
10104         (struct rvv_op_info): Ditto.
10105         (class registered_function): New class.
10106         (class function_base): Ditto.
10107         (class function_shape): Ditto.
10108         (struct function_group_info): New struct.
10109         (class GTY): New class.
10110         (class function_builder): Ditto.
10111         (class function_call_info): Ditto.
10112         (function_call_info::function_returns_void_p): New function.
10113         (class function_expander): New class.
10114         (function_instance::operator!=): New function.
10115         (function_expander::expand): Ditto.
10116         (function_expander::add_input_operand): Ditto.
10117         (function_base::call_properties): Ditto.
10119 2022-10-21  Haochen Jiang  <haochen.jiang@intel.com>
10121         * config/i386/sse.md (ssedvecmode): Rename from VI1SI.
10122         (ssedvecmodelower): Rename from vi1si.
10123         (sdot_prod<mode>): New define_expand.
10124         (udot_prod<mode>): Ditto.
10126 2022-10-21  Kong Lingling  <lingling.kong@intel.com>
10127             Hongyu Wang  <hongyu.wang@intel.com>
10128             Haochen Jiang  <haochen.jiang@intel.com>
10130         * common/config/i386/cpuinfo.h (get_available_features): Detect
10131         avxvnniint8.
10132         * common/config/i386/i386-common.cc
10133         (OPTION_MASK_ISA2_AVXVNNIINT8_SET): New.
10134         (OPTION_MASK_ISA2_AVXVNNIINT8_UNSET): Ditto.
10135         (ix86_handle_option): Handle -mavxvnniint8.
10136         * common/config/i386/i386-cpuinfo.h (enum processor_features):
10137         Add FEATURE_AVXVNNIINT8.
10138         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
10139         avxvnniint8.
10140         * config.gcc: Add avxvnniint8intrin.h.
10141         * config/i386/avxvnniint8intrin.h: New file.
10142         * config/i386/cpuid.h (bit_AVXVNNIINT8): New.
10143         * config/i386/i386-builtin.def: Add new builtins.
10144         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
10145         __AVXVNNIINT8__.
10146         * config/i386/i386-options.cc (isa2_opts): Add -mavxvnniint8.
10147         (ix86_valid_target_attribute_inner_p): Handle avxvnniint8.
10148         * config/i386/i386-isa.def: Add DEF_PTA(AVXVNNIINT8) New..
10149         * config/i386/i386.opt: Add option -mavxvnniint8.
10150         * config/i386/immintrin.h: Include avxvnniint8intrin.h.
10151         * config/i386/sse.md (UNSPEC_VPMADDUBSWACCD
10152         UNSPEC_VPMADDUBSWACCSSD,UNSPEC_VPMADDWDACCD,
10153         UNSPEC_VPMADDWDACCSSD): Rename according to new style.
10154         (vpdp<vpdotprodtype>_<mode>): New define_insn.
10155         * doc/extend.texi: Document avxvnniint8.
10156         * doc/invoke.texi: Document -mavxvnniint8.
10157         * doc/sourcebuild.texi: Document target avxvnniint8.
10159 2022-10-21  Hongyu Wang  <hongyu.wang@intel.com>
10161         * common/config/i386/i386-common.cc
10162         (OPTION_MASK_ISA_AVXIFMA_SET, OPTION_MASK_ISA2_AVXIFMA_UNSET,
10163         OPTION_MASK_ISA2_AVX2_UNSET): New macro.
10164         (ix86_handle_option): Handle -mavxifma.
10165         * common/config/i386/i386-cpuinfo.h (processor_types): Add
10166         FEATURE_AVXIFMA.
10167         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
10168         avxifma.
10169         * common/config/i386/cpuinfo.h (get_available_features):
10170         Detect avxifma.
10171         * config.gcc: Add avxifmaintrin.h
10172         * config/i386/avx512ifmavlintrin.h: (_mm_madd52lo_epu64): Change
10173         to macro.
10174         (_mm_madd52hi_epu64): Likewise.
10175         (_mm256_madd52lo_epu64): Likewise.
10176         (_mm256_madd52hi_epu64): Likewise.
10177         * config/i386/avxifmaintrin.h: New header.
10178         * config/i386/cpuid.h (bit_AVXIFMA): New.
10179         * config/i386/i386-builtin.def: Add new builtins, and correct
10180         pattern names for AVX512IFMA.
10181         * config/i386/i386-builtins.cc (def_builtin): Handle AVX-IFMA
10182         builtins like AVX-VNNI.
10183         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
10184         __AVXIFMA__.
10185         * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
10186         Relax ISA masks for AVXIFMA.
10187         * config/i386/i386-isa.def: Add AVXIFMA.
10188         * config/i386/i386-options.cc (isa2_opts): Add -mavxifma.
10189         (ix86_valid_target_attribute_inner_p): Handle avxifma.
10190         * config/i386/i386.md (isa): Add attr avxifma and avxifmavl.
10191         * config/i386/i386.opt: Add option -mavxifma.
10192         * config/i386/immintrin.h: Inculde avxifmaintrin.h.
10193         * config/i386/sse.md (avx_vpmadd52<vpmadd52type>_<mode>):
10194         Remove.
10195         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Remove.
10196         (vpamdd52huq<mode>_maskz): Rename to ...
10197         (vpmadd52huq<mode>_maskz): ... this.
10198         (vpamdd52luq<mode>_maskz): Rename to ...
10199         (vpmadd52luq<mode>_maskz): ... this.
10200         (vpmadd52<vpmadd52type><mode>): New define_insn.
10201         (vpmadd52<vpmadd52type>v8di): Likewise.
10202         (vpmadd52<vpmadd52type><mode>_maskz_1): Likewise.
10203         (vpamdd52<vpmadd52type><mode>_mask): Rename to ...
10204         (vpmadd52<vpmadd52type><mode>_mask): ... this.
10205         * doc/invoke.texi: Document -mavxifma.
10206         * doc/extend.texi: Document avxifma.
10207         * doc/sourcebuild.texi: Document target avxifma.
10209 2022-10-20  Aldy Hernandez  <aldyh@redhat.com>
10211         PR c++/106654
10212         * value-query.cc (get_range_global): Handle non integer ranges for
10213         default def SSA names.
10215 2022-10-20  Aldy Hernandez  <aldyh@redhat.com>
10217         * range-op-float.cc (foperator_unordered_lt::op1_range): New.
10218         (foperator_unordered_lt::op2_range): New.
10220 2022-10-20  Artem Klimov  <jakmobius@gmail.com>
10221             Alexander Monakov   <amonakov@gcc.gnu.org>
10223         PR middle-end/99619
10224         * ipa-visibility.cc (function_and_variable_visibility): Promote
10225         TLS access model afer visibility optimizations.
10226         * varasm.cc (have_optimized_refs): New helper.
10227         (optimize_dyn_tls_for_decl_p): New helper. Use it ...
10228         (decl_default_tls_model): ... here in place of 'optimize' check.
10230 2022-10-20  Aldy Hernandez  <aldyh@redhat.com>
10232         * range-op-float.cc (foperator_unordered_le::op1_range): Adjust
10233         false side with a NAN operand.
10234         (foperator_unordered_le::op2_range): Same.
10235         (foperator_unordered_gt::op1_range): Same.
10236         (foperator_unordered_gt::op2_range): Same.
10237         (foperator_unordered_ge::op1_range): Same.
10238         (foperator_unordered_ge::op2_range): Same.
10239         (foperator_unordered_equal::op1_range): Same.
10241 2022-10-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10243         PR tree-optimization/107326
10244         * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Change
10245         vectype when widening container.
10247 2022-10-20  Aldy Hernandez  <aldyh@redhat.com>
10249         * value-range.h (frange::set_varying): Do not set NAN flags for
10250         !HONOR_NANS.
10251         * value-range.cc (frange::normalize_kind): Adjust for no NAN when
10252         !HONOR_NANS.
10253         (frange::verify_range): Same.
10254         * range-op-float.cc (maybe_isnan): Remove flag_finite_math_only check.
10256 2022-10-20  Aldy Hernandez  <aldyh@redhat.com>
10258         * range-op-float.cc (finite_operand_p): Remove.
10259         (finite_operands_p): Rename to...
10260         (maybe_isnan): ...this.
10261         (frelop_early_resolve): Use maybe_isnan instead of finite_operands_p.
10262         (foperator_equal::fold_range): Same.
10263         (foperator_equal::op1_range): Same.
10264         (foperator_not_equal::fold_range): Same.
10265         (foperator_lt::fold_range): Same.
10266         (foperator_le::fold_range): Same.
10267         (foperator_gt::fold_range): Same.
10268         (foperator_ge::fold_range): Same.
10270 2022-10-20  Jakub Jelinek  <jakub@redhat.com>
10272         * passes.cc (pass_manager::register_pass): Fix a comment
10273         typo - copmilation -> compilation.
10275 2022-10-20  Richard Biener  <rguenther@suse.de>
10277         * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
10278         Disallow latch PHI defs.
10279         (vectorizable_recurr): Revert previous change.
10281 2022-10-20  Julian Brown  <julian@codesourcery.com>
10283         PR target/105421
10284         * config/gcn/gcn.cc (gcn_detect_incoming_pointer_arg): Any pointer
10285         argument forces FLAT addressing mode, not just
10286         pointer-to-non-aggregate.
10288 2022-10-20  Thomas Schwinge  <thomas@codesourcery.com>
10290         * configure.ac (AC_CONFIG_MACRO_DIRS): Instantiate.
10291         * configure: Regenerate.
10293 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
10295         * config/aarch64/aarch64-sve-builtins.h
10296         (gimple_folder::fold_to_cstu): New member function.
10297         * config/aarch64/aarch64-sve-builtins.cc
10298         (gimple_folder::fold_to_cstu): Define.
10299         * config/aarch64/aarch64-sve-builtins-base.cc
10300         (svcnt_bhwd_impl::fold): Use it.
10302 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
10304         * config/aarch64/aarch64-sve-builtins-functions.h (quiet)
10305         (rtx_code_function, rtx_code_function_rotated, unspec_based_function)
10306         (unspec_based_function_rotated, unspec_based_function_exact_insn)
10307         (unspec_based_fused_function, unspec_based_fused_lane_function):
10308         Replace constructors with using directives.
10309         * config/aarch64/aarch64-sve-builtins-base.cc (svcnt_bhwd_pat_impl)
10310         (svcreate_impl, svdotprod_lane_impl, svget_impl, svld1_extend_impl)
10311         (svld1_gather_extend_impl, svld234_impl, svldff1_gather_extend)
10312         (svset_impl, svst1_scatter_truncate_impl, svst1_truncate_impl)
10313         (svst234_impl, svundef_impl): Likewise.
10314         * config/aarch64/aarch64-sve-builtins-sve2.cc
10315         (svldnt1_gather_extend_impl, svmovl_lb_impl): Likewise.
10316         (svstnt1_scatter_truncate_impl): Likewise.
10318 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
10320         * config/aarch64/aarch64-sve-builtins-base.cc: Replace CONSTEXPR
10321         with constexpr throughout.
10322         * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
10323         * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
10324         * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
10325         * config/aarch64/aarch64-sve-builtins.cc: Likewise.
10327 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
10329         * config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove
10330         merging alternative.
10331         (*aarch64_brk<brk_op>_ptest): Likewise.
10333 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
10335         * config/aarch64/iterators.md (SVE_BRKP): New iterator.
10336         * config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern.
10337         (*aarch64_brkn_ptest): Likewise.
10338         (*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP.
10339         (*aarch64_brk<brk_op>_ptest): Likewise.
10341 2022-10-20  Richard Biener  <rguenther@suse.de>
10343         PR c/107305
10344         PR c/107306
10345         * tree-cfg.h (verify_gimple_in_seq): Add parameter to
10346         indicate whether to emit an ICE.  Add return value.
10347         (verify_gimple_in_cfg): Likewise.
10348         * tree-cfg.cc (verify_gimple_in_seq): Likewise.
10349         (verify_gimple_in_cfg): Likewise.
10351 2022-10-20  Richard Biener  <rguenther@suse.de>
10353         PR tree-optimization/107240
10354         * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Attempt to
10355         simplify shifted value first.
10357 2022-10-20  Andrew MacLeod  <amacleod@redhat.com>
10359         * gimple-range-gori.h (compute_operand_range): Make public.
10360         * gimple-range-infer.cc (gimple_infer_range::check_assume_func): New.
10361         (gimple_infer_range::gimple_infer_range): Check for assume calls.
10362         * gimple-range-infer.h (check_assume_func): Add prototype.
10363         * gimple-range.cc (assume_query::assume_range_p): New.
10364         (assume_query::range_of_expr): New.
10365         (assume_query::assume_query): New.
10366         (assume_query::calculate_op): New.
10367         (assume_query::calculate_phi): New.
10368         (assume_query::check_taken_edge): New.
10369         (assume_query::calculate_stmt): New.
10370         (assume_query::dump): New.
10371         * gimple-range.h (class assume_query): New.
10372         * tree-vrp.cc (pass_assumptions::execute): Add processing.
10374 2022-10-19  Aldy Hernandez  <aldyh@redhat.com>
10376         * range-op-float.cc (build_le): Document result.
10377         (build_lt): Same.
10378         (build_ge): Same.
10379         (foperator_ge::op2_range): Check result of build_*.
10380         (foperator_unordered_le::op1_range): Same.
10381         (foperator_unordered_le::op2_range): Same.
10382         (foperator_unordered_gt::op1_range): Same.
10383         (foperator_unordered_gt::op2_range): Same.
10384         (foperator_unordered_ge::op1_range): Same.
10385         (foperator_unordered_ge::op2_range): Same.
10387 2022-10-19  Marek Polacek  <polacek@redhat.com>
10389         PR c++/85043
10390         * doc/invoke.texi: Update documentation of -Wuseless-cast.
10392 2022-10-19  Andrew MacLeod  <amacleod@redhat.com>
10394         * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
10395         Value_Range not int_range_max.
10397 2022-10-19  Aldy Hernandez  <aldyh@redhat.com>
10399         PR tree-optimization/107312
10400         * range.h (range_true_and_false): Special case 1-bit signed types.
10401         * value-range.cc (range_tests_misc): New test.
10403 2022-10-19  LIU Hao  <lh_mouse@126.com>
10405         * config/i386/mingw-mcfgthread.h: New file
10406         * config/i386/mingw32.h: Add builtin macro and default libraries
10407         for mcfgthread when thread model is `mcf`
10408         * config.gcc: Include 'i386/mingw-mcfgthread.h' when thread model
10409         is `mcf`
10410         * configure.ac: Recognize `mcf` as a valid thread model
10411         * config.in: Regenerate
10412         * configure: Regenerate
10414 2022-10-19  Lewis Hyatt  <lhyatt@gmail.com>
10416         * gengtype.cc (output_escaped_param): Add missing const.
10417         (get_string_option): Add missing check for option type.
10418         (walk_type): Support new "string_length" GTY option.
10419         (write_types_process_field): Likewise.
10420         * ggc-common.cc (gt_pch_note_object): Add optional length argument.
10421         * ggc.h (gt_pch_note_object): Adjust prototype for new argument.
10422         (gt_pch_n_S2): Declare...
10423         * stringpool.cc (gt_pch_n_S2): ...new function.
10424         * doc/gty.texi: Document new GTY((string_length)) option.
10426 2022-10-19  Martin Liska  <mliska@suse.cz>
10428         * doc/extend.texi: Remove useless @tie{} directives.
10430 2022-10-19  Martin Jambor  <mjambor@suse.cz>
10432         PR tree-optimization/107206
10433         * tree-sra.cc (struct access): New field grp_result_of_prop_from_lhs.
10434         (analyze_access_subtree): Do not create replacements for accesses with
10435         this flag when not toally scalarizing.
10436         (propagate_subaccesses_from_lhs): Set the new flag.
10438 2022-10-19  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
10440         PR target/106355
10441         * config/s390/s390.cc (s390_call_saved_register_used): For a
10442         parameter with BLKmode fix determining number of consecutive
10443         registers.
10445 2022-10-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
10447         * config/xtensa/xtensa-protos.h
10448         (xtensa_split1_finished_p, xtensa_split_DI_reg_imm): New prototypes.
10449         * config/xtensa/xtensa.cc
10450         (xtensa_split1_finished_p, xtensa_split_DI_reg_imm, xtensa_lra_p):
10451         New functions.
10452         (TARGET_LRA_P): Replace the dummy hook with xtensa_lra_p.
10453         (xt_true_regnum): Rework.
10454         * config/xtensa/xtensa.h (CALL_REALLY_USED_REGISTERS):
10455         Switch from CALL_USED_REGISTERS, and revise the comment.
10456         * config/xtensa/constraints.md (Y):
10457         Use !xtensa_split1_finished_p() instead of can_create_pseudo_p().
10458         * config/xtensa/predicates.md (move_operand): Ditto.
10459         * config/xtensa/xtensa.md: Add two new split patterns:
10460         - splits DImode immediate load into two SImode ones
10461         - puts out-of-constraint SImode constants into the constant pool
10462         * config/xtensa/xtensa.opt (-mlra): New target-specific option
10463         for testing purpose.
10465 2022-10-19  Robin Dapp  <rdapp@linux.ibm.com>
10467         * config/s390/s390.md: Move reload_completed and check operands for REG_P.
10469 2022-10-19  Jakub Jelinek  <jakub@redhat.com>
10471         PR middle-end/107262
10472         * expr.cc (convert_mode_scalar): For BFmode -> SFmode conversions
10473         of constants, use simplify_unary_operation if fromi has VOIDmode
10474         instead of recursive convert_mode_scalar.
10476 2022-10-19  Jakub Jelinek  <jakub@redhat.com>
10478         PR tree-optimization/106990
10479         * match.pd ((~X - ~Y) -> Y - X, -x & 1 -> x & 1): Guard with
10480         !TYPE_OVERFLOW_SANITIZED (type).
10482 2022-10-19  Jakub Jelinek  <jakub@redhat.com>
10484         * config/i386/i386-builtins.cc (ix86_bf16_ptr_type_node): Remove.
10485         (ix86_bf16_type_node): New variable.
10486         (ix86_register_bf16_builtin_type): If bfloat16_type_node is NULL
10487         from generic code, set only ix86_bf16_type_node to a new REAL_TYPE
10488         rather than bfloat16_type_node, otherwise set ix86_bf16_type_node
10489         to bfloat16_type_node.  Register __bf16 on ix86_bf16_type_node
10490         rather than bfloat16_type_node.  Don't initialize unused
10491         ix86_bf16_ptr_type_node.
10492         * config/i386/i386-builtin-types.def (BFLOAT16): Use
10493         ix86_bf16_type_node rather than bfloat16_type_node.
10495 2022-10-19  Richard Biener  <rguenther@suse.de>
10497         PR tree-optimization/106781
10498         * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Copy
10499         LHS removal from fixup_noreturn_call.
10501 2022-10-19  liuhongt  <hongtao.liu@intel.com>
10503         PR target/107271
10504         * config/i386/i386-expand.cc (ix86_vec_perm_index_canon): New.
10505         (expand_vec_perm_shufps_shufps): Call
10506         ix86_vec_perm_index_canon
10508 2022-10-18  Martin Jambor  <mjambor@suse.cz>
10510         * ipa-prop.h (ipa_agg_value): Remove type.
10511         (ipa_agg_value_set): Likewise.
10512         (ipa_copy_agg_values): Remove function.
10513         (ipa_release_agg_values): Likewise.
10514         (ipa_auto_call_arg_values) Add a forward declaration.
10515         (ipa_call_arg_values): Likewise.
10516         (class ipa_argagg_value_list): New constructors, added member function
10517         value_for_index_p.
10518         (class ipa_auto_call_arg_values): Removed the destructor and member
10519         function safe_aggval_at.  Use ipa_argagg_values for m_known_aggs.
10520         (class ipa_call_arg_values): Removed member function safe_aggval_at.
10521         Use ipa_argagg_values for m_known_aggs.
10522         (ipa_get_indirect_edge_target): Removed declaration.
10523         (ipa_find_agg_cst_for_param): Likewise.
10524         (ipa_find_agg_cst_from_init): New declaration.
10525         (ipa_agg_value_from_jfunc): Likewise.
10526         (ipa_agg_value_set_from_jfunc): Removed declaration.
10527         (ipa_push_agg_values_from_jfunc): New declaration.
10528         * ipa-cp.cc (ipa_agg_value_from_node): Renamed to
10529         ipa_agg_value_from_jfunc, made public.
10530         (ipa_agg_value_set_from_jfunc): Removed.
10531         (ipa_push_agg_values_from_jfunc): New function.
10532         (ipa_get_indirect_edge_target_1): Removed known_aggs parameter, use
10533         avs for this purpose too.
10534         (ipa_get_indirect_edge_target): Removed the overload working on
10535         ipa_auto_call_arg_values, use ipa_argagg_value_list in the remaining
10536         one.
10537         (devirtualization_time_bonus): Use ipa_argagg_value_list and
10538         ipa_get_indirect_edge_target_1 instead of
10539         ipa_get_indirect_edge_target.
10540         (context_independent_aggregate_values): Removed function.
10541         (gather_context_independent_values): Work on ipa_argagg_value_list.
10542         (estimate_local_effects): Likewise, define some iterator variables
10543         only in the construct where necessary.
10544         (ipcp_discover_new_direct_edges): Adjust the call to
10545         ipa_get_indirect_edge_target_1.
10546         (push_agg_values_for_index_from_edge): Adjust the call
10547         ipa_agg_value_from_node which has been renamed to
10548         ipa_agg_value_from_jfunc.
10549         * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Work on
10550         ipa_argagg_value_list.
10551         (evaluate_properties_for_edge): Replace manual filling in aggregate
10552         values with call to ipa_push_agg_values_from_jfunc.
10553         (estimate_calls_size_and_time): Work on ipa_argagg_value_list.
10554         (ipa_cached_call_context::duplicate_from): Likewise.
10555         (ipa_cached_call_context::release): Likewise.
10556         (ipa_call_context::equal_to): Likewise.
10557         * ipa-prop.cc (ipa_find_agg_cst_from_init): Make public.
10558         (ipa_find_agg_cst_for_param): Removed function.
10559         (ipa_find_agg_cst_from_jfunc_items): New function.
10560         (try_make_edge_direct_simple_call): Replace calls to
10561         ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
10562         ipa_find_agg_cst_from_init and ipa_find_agg_cst_from_jfunc_items.
10563         (try_make_edge_direct_virtual_call): Replace calls to
10564         ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with
10565         simple query of constant jump function and a call to
10566         ipa_find_agg_cst_from_jfunc_items.
10567         (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): Removed.
10569 2022-10-18  Martin Jambor  <mjambor@suse.cz>
10571         * ipa-prop.h (IPA_PROP_ARG_INDEX_LIMIT_BITS): New.
10572         (ipcp_transformation): Added forward declaration.
10573         (ipa_argagg_value): New type.
10574         (ipa_argagg_value_list): New type.
10575         (ipa_agg_replacement_value): Removed type.
10576         (ipcp_transformation): Switch from using ipa_agg_replacement_value
10577         to ipa_argagg_value_list.
10578         (ipa_get_agg_replacements_for_node): Removed.
10579         (ipa_dump_agg_replacement_values): Removed declaration.
10580         * ipa-cp.cc: Define INCLUDE_ALGORITHM.
10581         (values_equal_for_ipcp_p): Moved up in the file.
10582         (ipa_argagg_value_list::dump): New function.
10583         (ipa_argagg_value_list::debug): Likewise.
10584         (ipa_argagg_value_list::get_elt): Likewise.
10585         (ipa_argagg_value_list::get_elt_for_index): Likewise.
10586         (ipa_argagg_value_list::get_value): New overloaded functions.
10587         (ipa_argagg_value_list::superset_of_p): New function.
10588         (new ipa_argagg_value_list::push_adjusted_values): Likewise.
10589         (push_agg_values_from_plats): Likewise.
10590         (intersect_argaggs_with): Likewise.
10591         (get_clone_agg_value): Removed.
10592         (ipa_agg_value_from_node): Make last parameter const, use
10593         ipa_argagg_value_list to search values coming from clones.
10594         (ipa_get_indirect_edge_target_1): Use ipa_argagg_value_list to search
10595         values coming from clones.
10596         (ipcp_discover_new_direct_edges): Pass around a vector of
10597         ipa_argagg_values rather than a link list of replacement values.
10598         (cgraph_edge_brings_value_p): Use ipa_argagg_value_list to search
10599         values coming from clones.
10600         (create_specialized_node): Work with a vector of ipa_argagg_values
10601         rather than a link list of replacement values.
10602         (self_recursive_agg_pass_through_p): Make the pointer parameters
10603         const.
10604         (copy_plats_to_inter): Removed.
10605         (intersect_with_plats): Likewise.
10606         (agg_replacements_to_vector): Likewise.
10607         (intersect_with_agg_replacements): Likewise.
10608         (intersect_aggregates_with_edge): Likewise.
10609         (push_agg_values_for_index_from_edge): Likewise.
10610         (push_agg_values_from_edge): Likewise.
10611         (find_aggregate_values_for_callers_subset): Rewrite.
10612         (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
10613         (ipcp_val_agg_replacement_ok_p): Use ipa_argagg_value_list to search
10614         aggregate values.
10615         (decide_about_value): Work with a vector of ipa_argagg_values rather
10616         than a link list of replacement values.
10617         (decide_whether_version_node): Likewise.
10618         (ipa_analyze_node): Check number of parameters, assert that there
10619         are no descriptors when bailing out.
10620         * ipa-prop.cc (ipa_set_node_agg_value_chain): Switch to a vector of
10621         ipa_argagg_value.
10622         (ipa_node_params_t::duplicate): Removed superfluous handling of
10623         ipa_agg_replacement_values.  Name of src parameter removed because
10624         it is no longer used.
10625         (ipcp_transformation_t::duplicate): Replaced duplication of
10626         ipa_agg_replacement_values with copying vector m_agg_values.
10627         (ipa_dump_agg_replacement_values): Removed.
10628         (write_ipcp_transformation_info): Stream the new data-structure
10629         instead of the old.
10630         (read_ipcp_transformation_info): Likewise.
10631         (adjust_agg_replacement_values): Work with ipa_argagg_values instead
10632         of linked lists of ipa_agg_replacement_values, copy the items and
10633         truncate the vector as necessary to keep it sorted instead of marking
10634         items as invalid.  Return one bool if CFG should be updated.
10635         (ipcp_modif_dom_walker): Store ipcp_transformation instead of
10636         linked list of ipa_agg_replacement_values.
10637         (ipcp_modif_dom_walker::before_dom_children): Use
10638         ipa_argagg_value_list instead of walking a list of
10639         ipa_agg_replacement_values.
10640         (ipcp_transform_function): Switch to the new data structure, adjust
10641         dumping.
10643 2022-10-18  Richard Biener  <rguenther@suse.de>
10645         PR tree-optimization/107302
10646         * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm
10647         placement for a PHI latch def.
10649 2022-10-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10651         PR tree-optimization/107275
10652         * tree-if-conv.cc (if_convertible_loop_p_1): Move
10653         find_data_references_in_loop call from here...
10654         (if_convertible_loop_p): And move data-reference vector initialization
10655         from here...
10656         (tree_if_conversion):... to here.
10658 2022-10-18  Jakub Jelinek  <jakub@redhat.com>
10660         PR c++/106654
10661         * gimple.def (GIMPLE_ASSUME): New statement kind.
10662         * gimple.h (struct gimple_statement_assume): New type.
10663         (is_a_helper <gimple_statement_assume *>::test,
10664         is_a_helper <const gimple_statement_assume *>::test): New.
10665         (gimple_build_assume): Declare.
10666         (gimple_has_substatements): Return true for GIMPLE_ASSUME.
10667         (gimple_assume_guard, gimple_assume_set_guard,
10668         gimple_assume_guard_ptr, gimple_assume_body_ptr, gimple_assume_body):
10669         New inline functions.
10670         * gsstruct.def (GSS_ASSUME): New.
10671         * gimple.cc (gimple_build_assume): New function.
10672         (gimple_copy): Handle GIMPLE_ASSUME.
10673         * gimple-pretty-print.cc (dump_gimple_assume): New function.
10674         (pp_gimple_stmt_1): Handle GIMPLE_ASSUME.
10675         * gimple-walk.cc (walk_gimple_op): Handle GIMPLE_ASSUME.
10676         * omp-low.cc (WALK_SUBSTMTS): Likewise.
10677         (lower_omp_1): Likewise.
10678         * omp-oacc-kernels-decompose.cc (adjust_region_code_walk_stmt_fn):
10679         Likewise.
10680         * tree-cfg.cc (verify_gimple_stmt, verify_gimple_in_seq_2): Likewise.
10681         * function.h (struct function): Add assume_function bitfield.
10682         * gimplify.cc (gimplify_call_expr): If the assumption isn't
10683         simple enough, expand it into GIMPLE_ASSUME wrapped block or
10684         for -O0 drop it.
10685         * gimple-low.cc: Include attribs.h.
10686         (create_assumption_fn): New function.
10687         (struct lower_assumption_data): New type.
10688         (find_assumption_locals_r, assumption_copy_decl,
10689         adjust_assumption_stmt_r, adjust_assumption_stmt_op,
10690         lower_assumption): New functions.
10691         (lower_stmt): Handle GIMPLE_ASSUME.
10692         * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove
10693         IFN_ASSUME calls.
10694         * lto-streamer-out.cc (output_struct_function_base): Pack
10695         assume_function bit.
10696         * lto-streamer-in.cc (input_struct_function_base): And unpack it.
10697         * cgraphunit.cc (cgraph_node::expand): Don't verify assume_function
10698         has TREE_ASM_WRITTEN set and don't release its body.
10699         (symbol_table::compile): Allow assume functions not to have released
10700         body.
10701         * internal-fn.cc (expand_ASSUME): Remove gcc_unreachable.
10702         * passes.cc (execute_one_pass): For TODO_discard_function don't
10703         release body of assume functions.
10704         * cgraph.cc (cgraph_node::verify_node): Don't verify cgraph nodes
10705         of PROP_assumptions_done functions.
10706         * tree-pass.h (PROP_assumptions_done): Define.
10707         (TODO_discard_function): Adjust comment.
10708         (make_pass_assumptions): Declare.
10709         * passes.def (pass_assumptions): Add.
10710         * timevar.def (TV_TREE_ASSUMPTIONS): New.
10711         * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_ASSUME.
10712         * tree-vrp.cc (pass_data_assumptions): New variable.
10713         (pass_assumptions): New class.
10714         (make_pass_assumptions): New function.
10716 2022-10-18  Richard Biener  <rguenther@suse.de>
10718         PR tree-optimization/107301
10719         * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
10720         Check whether we can duplicate the block.
10721         (find_implicit_erroneous_behavior): Likewise.
10723 2022-10-18  Andrew MacLeod  <amacleod@redhat.com>
10725         PR tree-optimization/107273
10726         * value-relation.cc (equiv_oracle::add_partial_equiv): Merge
10727         instead of copying precison of each member.
10729 2022-10-17  Jeff Law  <jeffreyalaw@gmail.com>
10731         PR target/101697
10732         * config/h8300/combiner.md: Replace '<' preincment constraint with
10733         ZA/Z1..ZH/Z7 combinations.
10734         * config/h8300/movepush.md: Similarly
10736 2022-10-17  Jeff Law  <jeffreyalaw@gmail.com>
10738         * config/h8300/constraints.md (Za..Zh): New constraints for
10739         autoinc addresses using a specific register.
10740         * config/h8300/h8300.cc (pre_incdec_with_reg): New function.
10741         * config/h8300/h8300-protos.h (pre_incdec_with_reg): Add prototype.
10743 2022-10-17  Jeff Law  <jlaw@ventanamicro.com>
10745         * config/i386/cet.c: Remove accidental commit.
10746         * config/i386/driver-mingw32.c: Likewise.
10747         * config/i386/i386-builtins.c: Likewise.
10748         * config/i386/i386-d.c:  Likewise.
10749         * config/i386/i386-expand.c: Likewise.
10750         * config/i386/i386-features.c: Likewise.
10751         * config/i386/i386-options.c: Likewise.
10752         * config/i386/t-cet: Likewise.
10753         * config/i386/x86-tune-sched-atom.c: Likewise.
10754         * config/i386/x86-tune-sched-bd.c: Likewise.
10755         * config/i386/x86-tune-sched-core.c: Likewise.
10756         * config/i386/x86-tune-sched.c: Likewise.
10758 2022-10-17  Jeff Law  <jeffreyalaw@gmail.com>
10760         * common/config/h8300/h8300-common.cc (h8300_option_optimization_table):
10761         Enable redundant extension elimination at -O2 and above.
10762         * config/i386/cet.c: New file.
10763         * config/i386/driver-mingw32.c: New file.
10764         * config/i386/i386-builtins.c: New file.
10765         * config/i386/i386-d.c: New file.
10766         * config/i386/i386-expand.c: New file.
10767         * config/i386/i386-features.c: New file.
10768         * config/i386/i386-options.c: New file.
10769         * config/i386/t-cet: New file.
10770         * config/i386/x86-tune-sched-atom.c: New file.
10771         * config/i386/x86-tune-sched-bd.c: New file.
10772         * config/i386/x86-tune-sched-core.c: New file.
10773         * config/i386/x86-tune-sched.c: New file.
10775 2022-10-17  Jeff Law  <jeffreyalaw@gmail.com>
10777         * config/h8300/extensions.md (CCZN setting zero extended load): Add
10778         missing splitter.
10780 2022-10-17  Aldy Hernandez  <aldyh@redhat.com>
10782         PR tree-optimization/107293
10783         * tree-ssa-dom.cc
10784         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
10785         Check that condition post-dominates the definition point.
10787 2022-10-17  Aldy Hernandez  <aldyh@redhat.com>
10789         PR tree-optimization/107286
10790         * value-range.cc (range_tests_floats): Do not test for -Inf when
10791         flag_finite_math_only.
10793 2022-10-17  Andrew MacLeod  <amacleod@redhat.com>
10795         * gimple-range-fold.cc (fold_using_range::range_of_range_op):
10796         Provide relation_trio class.
10797         * gimple-range-gori.cc (gori_compute::refine_using_relation):
10798         Provide relation_trio class.
10799         (gori_compute::refine_using_relation): Ditto.
10800         (gori_compute::compute_operand1_range): Provide lhs_op2 and
10801         op1_op2 relations via relation_trio class.
10802         (gori_compute::compute_operand2_range): Ditto.
10803         * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
10804         relation_trio instead of relation_kind.
10805         (gimple_range_op_handler::calc_op2): Ditto.
10806         (*::fold_range): Ditto.
10807         * gimple-range-op.h (gimple_range_op::calc_op1): Adjust prototypes.
10808         (gimple_range_op::calc_op2): Adjust prototypes.
10809         * range-op-float.cc (*::fold_range): Use relation_trio instead of
10810         relation_kind.
10811         (*::op1_range): Ditto.
10812         (*::op2_range): Ditto.
10813         * range-op.cc (*::fold_range): Use relation_trio instead of
10814         relation_kind.
10815         (*::op1_range): Ditto.
10816         (*::op2_range): Ditto.
10817         * range-op.h (class range_operator): Adjust prototypes.
10818         (class range_operator_float): Ditto.
10819         (class range_op_handler): Adjust prototypes.
10820         (relop_early_resolve): Pickup op1_op2 relation from relation_trio.
10821         * value-relation.cc (VREL_LAST): Adjust use to be one past the end of
10822         the enum.
10823         (relation_oracle::validate_relation): Use relation_trio in call
10824         to fold_range.
10825         * value-relation.h (enum relation_kind_t): Add VREL_LAST as
10826         final element.
10827         (class relation_trio): New.
10828         (TRIO_VARYING, TRIO_SHIFT, TRIO_MASK): New.
10830 2022-10-17  Andrew MacLeod  <amacleod@redhat.com>
10832         * range-op-float.cc (foperator_not_equal::op1_range): Check for
10833         VREL_EQ after singleton.
10834         (foperator_unordered::op1_range): Set VARYING before calling
10835         clear_nan().
10836         (foperator_ordered::op1_range): Set rather than clear NAN if both
10837         operands are the same.
10839 2022-10-17  Andrew MacLeod  <amacleod@redhat.com>
10841         * value-relation.cc (value_relation::dump): Change message.
10842         * value-relation.h (value_relation::set_relation): If op1 is the
10843         same as op2 do not create a relation.
10845 2022-10-17  Thomas Schwinge  <thomas@codesourcery.com>
10847         * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of
10848         'case QImode:', etc.
10850 2022-10-17  Thomas Schwinge  <thomas@codesourcery.com>
10852         * gimple-expr.cc (mark_addressable_2): Tag as 'static'.
10854 2022-10-17  Richard Biener  <rguenther@suse.de>
10855             Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
10857         PR tree-optimization/99409
10858         PR tree-optimization/99394
10859         * tree-vectorizer.h (vect_def_type::vect_first_order_recurrence): Add.
10860         (stmt_vec_info_type::recurr_info_type): Likewise.
10861         (vectorizable_recurr): New function.
10862         * tree-vect-loop.cc (vect_phi_first_order_recurrence_p): New
10863         function.
10864         (vect_analyze_scalar_cycles_1): Look for first order
10865         recurrences.
10866         (vect_analyze_loop_operations): Handle them.
10867         (vect_transform_loop): Likewise.
10868         (vectorizable_recurr): New function.
10869         (maybe_set_vectorized_backedge_value): Handle the backedge value
10870         setting in the first order recurrence PHI and the permutes.
10871         * tree-vect-stmts.cc (vect_analyze_stmt): Handle first order
10872         recurrences.
10873         (vect_transform_stmt): Likewise.
10874         (vect_is_simple_use): Likewise.
10875         (vect_is_simple_use): Likewise.
10876         * tree-vect-slp.cc (vect_get_and_check_slp_defs): Likewise.
10877         (vect_build_slp_tree_2): Likewise.
10878         (vect_schedule_scc): Handle the backedge value setting in the
10879         first order recurrence PHI and the permutes.
10881 2022-10-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
10883         * config/riscv/t-riscv: Change Tab into 2 space.
10885 2022-10-17  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
10887         * config/riscv/riscv-vector-builtins.cc (mangle_builtin_type): Move down the function.
10889 2022-10-17  Arsen Arsenovic  <arsen@aarsen.me>
10891         * config.gcc: --target=*-elf --without-{newlib,headers} should
10892         provide stdint.h.
10894 2022-10-17  Hu, Lin1  <lin1.hu@intel.com>
10896         * common/config/i386/cpuinfo.h:
10897         (get_intel_cpu): Handle Meteorlake.
10898         * common/config/i386/i386-common.cc:
10899         (processor_alias_table): Add Meteorlake.
10901 2022-10-17  Haochen Jiang  <haochen.jiang@intel.com>
10903         * common/config/i386/cpuinfo.h:
10904         (get_intel_cpu): Handle Raptorlake.
10905         * common/config/i386/i386-common.cc:
10906         (processor_alias_table): Add Raptorlake.
10908 2022-10-16  Jeff Law  <jeffreyalaw@gmail.com>
10910         * config/h8300/constraints.md (Z0..Z7): New register
10911         constraints.
10912         * config/h8300/h8300.h (reg_class): Add new classes.
10913         (REG_CLASS_NAMES): Similarly.
10914         (REG_CLASS_CONTENTS): Similarly.
10916 2022-10-16  Jeff Law  <jeffreyalaw@gmail.com>
10918         * config/h8300/constraints.md (Zz constraint): Renamed
10919         from "z".
10920         * config/h8300/movepush.md (movqi_h8sx, movhi_h8sx): Adjust
10921         constraint to use Zz instead of Z.
10923 2022-10-16  Jeff Law  <jeffreyalaw@gmail.com>
10925         * config/h8300/h8300.cc (h8300_register_move_cost): Fix typo.
10927 2022-10-14  Aldy Hernandez  <aldyh@redhat.com>
10929         * value-range.cc (frange::set): Implement distinction between
10930         HONOR_SIGNED_ZEROS and MODE_HAS_SIGNED_ZEROS.
10932 2022-10-14  Aldy Hernandez  <aldyh@redhat.com>
10934         * gimple-range-op.cc (class cfn_copysign): New.
10935         (gimple_range_op_handler::maybe_builtin_call): Add
10936         CFN_BUILT_IN_COPYSIGN*.
10938 2022-10-14  Aldy Hernandez  <aldyh@redhat.com>
10940         * real.h (real_isdenormal): Check rvc_normal.
10941         * value-range.cc (range_tests_floats): New test.
10943 2022-10-14  Aldy Hernandez  <aldyh@redhat.com>
10945         * gimple-range-op.cc
10946         (gimple_range_op_handler::maybe_builtin_call): Replace
10947         CFN_BUILTIN_SIGNBIT* cases with CASE_FLT_FN.
10949 2022-10-14  Aldy Hernandez  <aldyh@redhat.com>
10951         * value-range.cc (frange::set): Normalize ranges for both bounds.
10953 2022-10-14  Aldy Hernandez  <aldyh@redhat.com>
10955         * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS.
10957 2022-10-14  Aldy Hernandez  <aldyh@redhat.com>
10959         * gimple-range-op.cc
10960         (gimple_range_op_handler::maybe_builtin_call): Add
10961         CFN_BUILT_IN_SIGNBIT[FL]* entries.
10963 2022-10-14  Richard Biener  <rguenther@suse.de>
10965         PR tree-optimization/107254
10966         * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
10967         For permutes also analyze live lanes.
10968         (vect_schedule_slp_node): For permutes also code generate
10969         live lane extracts.
10971 2022-10-14  Eric Botcazou  <ebotcazou@adacore.com>
10973         PR target/107248
10974         * config/sparc/sparc.cc (sparc_expand_prologue): Emit a frame
10975         blockage for leaf functions.
10976         (sparc_flat_expand_prologue): Emit frame instead of full blockage.
10977         (sparc_expand_epilogue): Emit a frame blockage for leaf functions.
10978         (sparc_flat_expand_epilogue): Emit frame instead of full blockage.
10980 2022-10-14  Jakub Jelinek  <jakub@redhat.com>
10982         * tree-core.h (enum tree_index): Add TI_BFLOAT16_TYPE.
10983         * tree.h (bfloat16_type_node): Define.
10984         * tree.cc (excess_precision_type): Promote bfloat16_type_mode
10985         like float16_type_mode.
10986         (build_common_tree_nodes): Initialize bfloat16_type_node if
10987         BFmode is supported.
10988         * expmed.h (maybe_expand_shift): Declare.
10989         * expmed.cc (maybe_expand_shift): No longer static.
10990         * expr.cc (convert_mode_scalar): Don't ICE on BF -> HF or HF -> BF
10991         conversions.  If there is no optab, handle BF -> {DF,XF,TF,HF}
10992         conversions as separate BF -> SF -> {DF,XF,TF,HF} conversions, add
10993         -ffast-math generic implementation for BF -> SF and SF -> BF
10994         conversions.
10995         * builtin-types.def (BT_BFLOAT16, BT_FN_BFLOAT16_CONST_STRING): New.
10996         * builtins.def (BUILT_IN_NANSF16B): New builtin.
10997         * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NANSF16B.
10998         * config/i386/i386.cc (classify_argument): Handle E_BCmode.
10999         (ix86_libgcc_floating_mode_supported_p): Also return true for BFmode
11000         for -msse2.
11001         (ix86_mangle_type): Mangle BFmode as DF16b.
11002         (ix86_invalid_conversion, ix86_invalid_unary_op,
11003         ix86_invalid_binary_op): Remove.
11004         (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP,
11005         TARGET_INVALID_BINARY_OP): Don't redefine.
11006         * config/i386/i386-builtins.cc (ix86_bf16_type_node): Remove.
11007         (ix86_register_bf16_builtin_type): Use bfloat16_type_node rather than
11008         ix86_bf16_type_node, only create it if still NULL.
11009         * config/i386/i386-builtin-types.def (BFLOAT16): Likewise.
11010         * config/i386/i386.md (cbranchbf4, cstorebf4): New expanders.
11012 2022-10-14  Jakub Jelinek  <jakub@redhat.com>
11014         PR middle-end/323
11015         PR c++/107097
11016         * doc/invoke.texi (-fexcess-precision=standard): Mention that the
11017         option now also works in C++.
11019 2022-10-13  Eric Botcazou  <ebotcazou@adacore.com>
11021         * gimple-ssa-warn-access.cc (pass_waccess::check_call): Return
11022         early for calls made from thunks.
11024 2022-10-13  Eric Botcazou  <ebotcazou@adacore.com>
11026         * expr.cc (emit_group_stote): Fix handling of modes of different
11027         sizes for big-endian targets in latest change and add commentary.
11029 2022-10-13  Martin Liska  <mliska@suse.cz>
11031         * output.h (assemble_vtv_preinit_initializer): Remove.
11032         * varasm.cc (assemble_vtv_preinit_initializer): Remove.
11034 2022-10-13  Andrew MacLeod  <amacleod@redhat.com>
11036         PR tree-optimization/102540
11037         PR tree-optimization/102872
11038         * gimple-range-cache.cc (ranger_cache::fill_block_cache):
11039         Handle partial equivs.
11040         (ranger_cache::range_from_dom): Cleanup dump output.
11042 2022-10-13  Andrew MacLeod  <amacleod@redhat.com>
11044         * range-op.cc (operator_cast::lhs_op1_relation): New.
11045         (operator_bitwise_and::lhs_op1_relation): New.
11047 2022-10-13  Andrew MacLeod  <amacleod@redhat.com>
11049         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Use
11050         iterator.
11051         * value-relation.cc
11052         (equiv_relation_iterator::equiv_relation_iterator): New.
11053         (equiv_relation_iterator::next): New.
11054         (equiv_relation_iterator::get_name): New.
11055         * value-relation.h (class relation_oracle): Privatize some methods.
11056         (class equiv_relation_iterator): New.
11057         (FOR_EACH_EQUIVALENCE): New.
11058         (FOR_EACH_PARTIAL_EQUIV): New.
11059         (FOR_EACH_PARTIAL_AND_FULL_EQUIV): New.
11061 2022-10-13  Andrew MacLeod  <amacleod@redhat.com>
11063         * value-relation.cc (equiv_chain::dump): Don't print empty
11064         equivalences.
11065         (equiv_oracle::equiv_oracle): Allocate a partial equiv table.
11066         (equiv_oracle::~equiv_oracle): Release the partial equiv table.
11067         (equiv_oracle::add_partial_equiv): New.
11068         (equiv_oracle::partial_equiv_set): New.
11069         (equiv_oracle::partial_equiv): New.
11070         (equiv_oracle::query_relation): Check for partial equivs too.
11071         (equiv_oracle::dump): Also dump partial equivs.
11072         (dom_oracle::register_relation): Handle partial equivs.
11073         (dom_oracle::query_relation): Check for partial equivs.
11074         * value-relation.h (enum relation_kind_t): Add partial equivs.
11075         (relation_partial_equiv_p): New.
11076         (relation_equiv_p): New.
11077         (class pe_slice): New.
11078         (class equiv_oracle): Add prototypes.
11079         (pe_to_bits): New.
11080         (bits_to_pe): New.
11081         (pe_min): New.
11083 2022-10-13  Richard Biener  <rguenther@suse.de>
11085         PR tree-optimization/107247
11086         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
11087         Reduce multi vector SLP reduction accumulators.  Check
11088         the adjusted number of accumulator vectors against
11089         one for the re-use in the epilogue.
11091 2022-10-13  Jakub Jelinek  <jakub@redhat.com>
11093         * genmodes.cc (emit_mode_wider): Emit previous content of
11094         mode_wider array into mode_next array and for mode_wider
11095         emit always VOIDmode for !CLASS_HAS_WIDER_MODES_P classes,
11096         otherwise skip through modes with the same precision.
11097         * machmode.h (mode_next): Declare.
11098         (GET_MODE_NEXT_MODE): New inline function.
11099         (mode_iterator::get_next, mode_iterator::get_known_next): New
11100         function templates.
11101         (FOR_EACH_MODE_IN_CLASS): Use get_next instead of get_wider.
11102         (FOR_EACH_MODE): Use get_known_next instead of get_known_wider.
11103         (FOR_EACH_MODE_FROM): Use get_next instead of get_wider.
11104         (FOR_EACH_WIDER_MODE_FROM): Define.
11105         (FOR_EACH_NEXT_MODE): Define.
11106         * expmed.cc (emit_store_flag_1): Use FOR_EACH_WIDER_MODE_FROM
11107         instead of FOR_EACH_MODE_FROM.
11108         * optabs.cc (prepare_cmp_insn): Likewise.  Remove redundant
11109         !CLASS_HAS_WIDER_MODES_P check.
11110         (prepare_float_lib_cmp): Use FOR_EACH_WIDER_MODE_FROM instead of
11111         FOR_EACH_MODE_FROM.
11112         * config/i386/i386-expand.cc (get_mode_wider_vector): Use
11113         GET_MODE_NEXT_MODE instead of GET_MODE_WIDER_MODE.
11115 2022-10-13  Wilco Dijkstra  <wdijkstr@arm.com>
11117         PR target/105773
11118         * config/aarch64/aarch64.cc (aarch64_select_cc_mode): Allow
11119         GT/LE for merging compare with zero into AND.
11120         (aarch64_get_condition_code_1): Add CC_NZVmode support.
11121         * config/aarch64/aarch64-modes.def: Add CC_NZV.
11122         * config/aarch64/aarch64.md: Use CC_NZV in cmp+and patterns.
11124 2022-10-13  Richard Biener  <rguenther@suse.de>
11126         PR tree-optimization/107160
11127         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
11128         Do not register accumulator if we failed to reduce it
11129         to a single vector.
11131 2022-10-13  Aldy Hernandez  <aldyh@redhat.com>
11133         * range-op-float.cc (range_operator_float::op1_op2_relation): New.
11134         (class foperator_equal): Add using.
11135         (class foperator_not_equal): Same.
11136         (class foperator_lt): Same.
11137         (class foperator_le): Same.
11138         (class foperator_gt): Same.
11139         (class foperator_ge): Same.
11140         * range-op.cc (range_op_handler::op1_op2_relation): New.
11141         * range-op.h (range_operator_float::op1_op2_relation): New.
11143 2022-10-13  Richard Biener  <rguenther@suse.de>
11145         * genmatch.cc (parser::parse_c_expr): Diagnose 'return'.
11146         * match.pd: Replace 'return' statements in with expressions
11147         with appropriate variants.
11149 2022-10-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11151         PR tree-optimization/107229
11152         * tree-if-conv.cc (get_bitfield_rep): Fix bitposition calculation.
11154 2022-10-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11156         PR tree-optimization/107226
11157         * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Reject
11158         BITFIELD_REF's with non integral typed first operands.
11160 2022-10-13  Joseph Myers  <joseph@codesourcery.com>
11162         * ginclude/float.h (FLT_IS_IEC_60559, DBL_IS_IEC_60559)
11163         (LDBL_IS_IEC_60559): Update comment.
11165 2022-10-12  Aldy Hernandez  <aldyh@redhat.com>
11167         * range-op-float.cc (class foperator_negate): New.
11168         (floating_op_table::floating_op_table): Add NEGATE_EXPR
11169         (range_op_float_tests): Add negate tests.
11171 2022-10-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
11173         * config/riscv/riscv-vector-builtins.h: Remove unused macro.
11175 2022-10-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
11177         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Apply
11178         clang-format.
11179         (add_vector_type_attribute): Ditto.
11180         * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Apply
11181         clang-format.
11182         * config/riscv/riscv-vector-builtins.h (DEF_RVV_TYPE): Apply
11183         clang-format.
11185 2022-10-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
11187         * config/riscv/riscv-vector-builtins.cc (builtin_types): Redefine
11188         vector types.
11189         (build_const_pointer): New function.
11190         (register_builtin_type): Ditto.
11191         (DEF_RVV_TYPE): Simplify macro.
11192         (register_vector_type): Refine implementation.
11193         * config/riscv/riscv-vector-builtins.h (rvv_builtin_types_t): New.
11195 2022-10-12  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
11197         * config/riscv/riscv-vector-builtins.h (class rvv_switcher): Move to
11198         this to ....
11199         * config/riscv/riscv-vector-builtins.cc (class rvv_switcher):
11200         here.
11202 2022-10-12  Cui,Lili  <lili.cui@intel.com>
11204         * config/i386/driver-i386.cc (host_detect_local_cpu):
11205         Move sapphirerapids out of AVX512_VP2INTERSECT.
11206         * config/i386/i386.h: Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS
11207         * doc/invoke.texi: Remove AVX512_VP2INTERSECT from SAPPHIRERAPIDS
11209 2022-10-12  Martin Liska  <mliska@suse.cz>
11211         * gcov-io.cc (gcov_write_summary): Rename to ...
11212         (gcov_write_object_summary): ... this.
11213         * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY_LENGTH): Rename from ...
11214         (GCOV_TAG_SUMMARY_LENGTH): ... this.
11216 2022-10-12  Martin Liska  <mliska@suse.cz>
11218         * configure: Regenerate.
11220 2022-10-12  Aldy Hernandez  <aldyh@redhat.com>
11222         * range-op-float.cc (frange_float): New.
11223         (range_op_float_tests): New.
11224         * range-op.cc (range_op_tests): Call range_op_float_tests.
11226 2022-10-12  Aldy Hernandez  <aldyh@redhat.com>
11228         * value-range.h (frange::nan_signbit_p): New.
11230 2022-10-12  Aldy Hernandez  <aldyh@redhat.com>
11232         * value-range.cc (frange::set_nonnegative): Pass bool to
11233         update_nan.
11234         * value-range.h: Disallow conversion to bool in update_nan().
11236 2022-10-12  Aldy Hernandez  <aldyh@redhat.com>
11238         * value-range.h (frange::frange): Add constructor taking type.
11240 2022-10-12  Aldy Hernandez  <aldyh@redhat.com>
11242         * range-op-float.cc: Add relation_kind = VREL_VARYING to all
11243         methods.
11245 2022-10-11  Aldy Hernandez  <aldyh@redhat.com>
11247         * gimple-range-gori.cc (gori_compute::logical_combine): Avoid
11248         calling tracer.trailer().
11250 2022-10-11  Jakub Jelinek  <jakub@redhat.com>
11252         PR target/107185
11253         * config/i386/i386.md (*notxor<mode>_1): Use MASK_REG_P (x) instead of
11254         MASK_REGNO_P (REGNO (x)).
11256 2022-10-11  Aldy Hernandez  <aldyh@redhat.com>
11258         * range-op-float.cc (class foperator_abs): New.
11259         (floating_op_table::floating_op_table): Add ABS_EXPR entry.
11261 2022-10-11  Aldy Hernandez  <aldyh@redhat.com>
11263         * range-op-float.cc (foperator_unordered_le::op1_range): New.
11264         (foperator_unordered_le::op2_range): New.
11265         (foperator_unordered_gt::op1_range): New.
11266         (foperator_unordered_gt::op2_range): New.
11267         (foperator_unordered_ge::op1_range): New.
11268         (foperator_unordered_ge::op2_range): New.
11269         (foperator_unordered_equal::op1_range): New.
11271 2022-10-11  Aldy Hernandez  <aldyh@redhat.com>
11273         * range-op-float.cc (class foperator_unordered_lt): New.
11274         (class foperator_relop_unknown): Remove
11275         (class foperator_unordered_le): New.
11276         (class foperator_unordered_gt): New.
11277         (class foperator_unordered_ge): New.
11278         (class foperator_unordered_equal): New.
11279         (floating_op_table::floating_op_table): Replace all UN_EXPR
11280         entries with their appropriate fop_unordered_* counterpart.
11282 2022-10-11  Aldy Hernandez  <aldyh@redhat.com>
11284         * range-op.cc (operator_equal::op1_range): Move BRS_TRUE case up.
11285         (operator_lt::op2_range): Same.
11286         (operator_le::op2_range): Same.
11287         (operator_gt::op2_range): Same.
11288         (operator_ge::op2_range): Same.
11290 2022-10-11  Richard Biener  <rguenther@suse.de>
11292         PR tree-optimization/107212
11293         * tree-vect-loop.cc (vectorizable_reduction): Make sure to
11294         set STMT_VINFO_REDUC_DEF for all live lanes in a SLP
11295         reduction.
11296         (vectorizable_live_operation): Do not pun to the SLP
11297         node representative for reduction epilogue generation.
11299 2022-10-11  Andrew Stubbs  <ams@codesourcery.com>
11301         * config/gcn/gcn-valu.md (neg<mode>2): New define_expand.
11303 2022-10-11  Andrew Stubbs  <ams@codesourcery.com>
11305         * config/gcn/gcn-valu.md (vec_init<V_ALL:mode><V_ALL_ALT:mode>): New.
11306         * config/gcn/gcn.cc (GEN_VN): Add andvNsi3, subvNsi3.
11307         (GEN_VNM): Add gathervNm_expr.
11308         (GEN_VN_NOEXEC): Add vec_seriesvNsi.
11309         (gcn_expand_vector_init): Add initialization of vectors from smaller
11310         vectors.
11312 2022-10-11  Andrew Stubbs  <ams@codesourcery.com>
11314         * config/gcn/gcn-protos.h (get_exec): Add prototypes for two variants.
11315         * config/gcn/gcn-valu.md
11316         (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): New define_expand.
11317         * config/gcn/gcn.cc (get_exec): Export the existing function. Add a
11318         new overload variant.
11320 2022-10-11  Andrew Stubbs  <ams@codesourcery.com>
11322         * config/gcn/gcn-valu.md
11323         (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): Use MODE_VF.
11324         (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): Likewise.
11325         * config/gcn/gcn.h (MODE_VF): New macro.
11327 2022-10-11  Andrew Stubbs  <ams@codesourcery.com>
11329         * config/gcn/gcn-modes.def (VECTOR_MODE): Add new modes
11330         V32QI, V32HI, V32SI, V32DI, V32TI, V32HF, V32SF, V32DF,
11331         V16QI, V16HI, V16SI, V16DI, V16TI, V16HF, V16SF, V16DF,
11332         V8QI, V8HI, V8SI, V8DI, V8TI, V8HF, V8SF, V8DF,
11333         V4QI, V4HI, V4SI, V4DI, V4TI, V4HF, V4SF, V4DF,
11334         V2QI, V2HI, V2SI, V2DI, V2TI, V2HF, V2SF, V2DF.
11335         (ADJUST_ALIGNMENT): Likewise.
11336         * config/gcn/gcn-protos.h (gcn_full_exec): Delete.
11337         (gcn_full_exec_reg): Delete.
11338         (gcn_scalar_exec): Delete.
11339         (gcn_scalar_exec_reg): Delete.
11340         (vgpr_1reg_mode_p): Use inner mode to identify vector registers.
11341         (vgpr_2reg_mode_p): Likewise.
11342         (vgpr_vector_mode_p): Use VECTOR_MODE_P.
11343         * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF,
11344         V_QIHI, V_1REG, V_INT_1REG, V_INT_1REG_ALT, V_FP_1REG, V_2REG, V_noQI,
11345         V_noHI, V_INT_noQI, V_INT_noHI, V_ALL, V_ALL_ALT, V_INT, V_FP):
11346         Add additional vector modes.
11347         (V64_SI, V64_DI, V64_ALL, V64_FP): New iterators.
11348         (scalar_mode, SCALAR_MODE, vnsi, VnSI, vndi, VnDI, sdwa):
11349         Add additional vector mode mappings.
11350         (mov<mode>): Implement vector length conversions.
11351         (ldexp<mode>3<exec>): Use VnSI.
11352         (frexp<mode>_exp2<exec>): Likewise.
11353         (VCVT_MODE, VCVT_FMODE, VCVT_IMODE): Add additional vector modes.
11354         (reduc_<reduc_op>_scal_<mode>): Use V64_ALL.
11355         (fold_left_plus_<mode>): Use V64_FP.
11356         (*<reduc_op>_dpp_shr_<mode>): Use V64_1REG.
11357         (*<reduc_op>_dpp_shr_<mode>): Use V64_DI.
11358         (*plus_carry_dpp_shr_<mode>): Use V64_INT_1REG.
11359         (*plus_carry_in_dpp_shr_<mode>): Use V64_SI.
11360         (*plus_carry_dpp_shr_<mode>): Use V64_DI.
11361         (mov_from_lane63_<mode>): Use V64_2REG.
11362         * config/gcn/gcn.cc (VnMODE): New function.
11363         (gcn_can_change_mode_class): Support multiple vector sizes.
11364         (gcn_modes_tieable_p): Likewise.
11365         (gcn_operand_part): Likewise.
11366         (gcn_scalar_exec): Delete function.
11367         (gcn_scalar_exec_reg): Delete function.
11368         (gcn_full_exec): Delete function.
11369         (gcn_full_exec_reg): Delete function.
11370         (gcn_inline_fp_constant_p): Support multiple vector sizes.
11371         (gcn_fp_constant_p): Likewise.
11372         (A): New macro.
11373         (GEN_VN_NOEXEC): New macro.
11374         (GEN_VNM_NOEXEC): New macro.
11375         (GEN_VN): New macro.
11376         (GEN_VNM): New macro.
11377         (GET_VN_FN): New macro.
11378         (CODE_FOR): New macro.
11379         (CODE_FOR_OP): New macro.
11380         (gen_mov_with_exec): Delete function.
11381         (gen_duplicate_load): Delete function.
11382         (gcn_expand_vector_init): Support multiple vector sizes.
11383         (strided_constant): Likewise.
11384         (gcn_addr_space_legitimize_address): Likewise.
11385         (gcn_expand_scalar_to_vector_address): Likewise.
11386         (gcn_expand_scaled_offsets): Likewise.
11387         (gcn_secondary_reload): Likewise.
11388         (gcn_valid_cvt_p): Likewise.
11389         (gcn_expand_builtin_1): Likewise.
11390         (gcn_make_vec_perm_address): Likewise.
11391         (gcn_vectorize_vec_perm_const): Likewise.
11392         (gcn_vector_mode_supported_p): Likewise.
11393         (gcn_autovectorize_vector_modes): New hook.
11394         (gcn_related_vector_mode): Support multiple vector sizes.
11395         (gcn_expand_dpp_shr_insn): Add FIXME comment.
11396         (gcn_md_reorg): Support multiple vector sizes.
11397         (print_reg): Likewise.
11398         (print_operand): Likewise.
11399         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): New hook.
11401 2022-10-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11403         * tree-if-conv.cc (if_convertible_loop_p_1): Move ordering of loop bb's from
11404         here...
11405         (tree_if_conversion): ... to here.  Also call bitfield lowering when
11406         appropriate.
11407         (version_loop_for_if_conversion): Adapt to enable loop versioning when we only
11408         need to lower bitfields.
11409         (ifcvt_split_critical_edges): Relax condition of expected loop form as this is
11410         checked earlier.
11411         (get_bitfield_rep): New function.
11412         (lower_bitfield): Likewise.
11413         (bitfields_to_lower_p): Likewise.
11414         (need_to_lower_bitfields): New global boolean.
11415         (need_to_ifcvt): Likewise.
11416         * tree-vect-data-refs.cc (vect_find_stmt_data_reference): Improve diagnostic
11417         message.
11418         * tree-vect-patterns.cc (vect_recog_temp_ssa_var): Add default value for last
11419         parameter.
11420         (vect_recog_bitfield_ref_pattern): New.
11421         (vect_recog_bit_insert_pattern): New.
11423 2022-10-11  liuhongt  <hongtao.liu@intel.com>
11425         PR target/107093
11426         * config/i386/i386.md (*notxor<mode>_1): New post_reload
11427         define_insn_and_split.
11428         (*notxorqi_1): Ditto.
11430 2022-10-11  Aldy Hernandez  <aldyh@redhat.com>
11432         PR tree-optimization/107195
11433         * value-range.cc (irange::set_range_from_nonzero_bits): Set range
11434         to [0,0] when nonzero mask is 0.
11436 2022-10-11  Olivier Hainque  <hainque@adacore.com>
11438         * configure: Regenerate.
11440 2022-10-11  Olivier Hainque  <hainque@adacore.com>
11442         * config.gcc (*vxworks*): Add t-slibgcc fragment
11443         if enable_shared.
11445 2022-10-11  Olivier Hainque  <hainque@adacore.com>
11447         * config/vxworks.h (VX_LGCC_EH_SO0, VX_LGCC_EH_SO1): New
11448         internal macros.
11449         (VXWORKS_LIBGCC_SPEC): Use them and document.
11451 2022-10-11  Martin Liska  <mliska@suse.cz>
11453         * gimple-range-op.cc: Add override keyword.
11455 2022-10-11  Eugene Rozenfeld  <erozen@microsoft.com>
11457         PR debug/107193
11458         * tree-cfg.cc (assign_discriminators): Move declaration of cur_locus_e
11459         out of the loop.
11461 2022-10-11  Liwei Xu  <liwei.xu@intel.com>
11462             liuhongt  <hongtao.liu@intel.com>
11464         PR tree-optimization/54346
11465         * match.pd: Merge the index of VCST then generates the new vec_perm.
11467 2022-10-11  Jeff Law  <jeffreyalaw@gmail.com>
11469         PR rtl-optimization/107182
11470         * cfgrtl.cc (fixup_reorder_chain): When optimizing a jump to a
11471         return, clear EDGE_CROSSING on the appropriate edge.
11473 2022-10-11  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
11475         * config/riscv/riscv-vector-builtins.cc (struct vector_type_info): Move
11476         from config/riscv/riscv-vector-builtins.h.
11477         (DEF_RVV_TYPE): Change USER_NAME to NAME.
11478         (register_vector_type): Change user_name to name.
11479         * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Change
11480         USER_NAME to NAME.
11481         * config/riscv/riscv-vector-builtins.h (struct vector_type_info): Move
11482         to riscv-vector-builtins.cc.
11483         (DEF_RVV_TYPE): Change USER_NAME to NAME.
11485 2022-10-11  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
11487         * config/riscv/riscv.md: Add vsetvl instruction type.
11489 2022-10-10  Nathan Sidwell  <nathan@acm.org>
11491         * common.opt (-fabi-version=): Document 18.
11492         * doc/invoke.texi (-fabi-version): Document 18.
11494 2022-10-10  Andrea Corallo  <andrea.corallo@arm.com>
11496         PR other/99723
11497         * toplev.cc (toplev::main): Don't run self tests in case of
11498         previous error.
11500 2022-10-10  Kito Cheng  <kito.cheng@sifive.com>
11502         * config/riscv/riscv-c.cc: Add newline to the end of file.
11504 2022-10-10  Aldy Hernandez  <aldyh@redhat.com>
11506         * range-op-float.cc (class foperator_identity): Make members public.
11507         (class foperator_equal): Same.
11508         (class foperator_not_equal): Same.
11509         (class foperator_lt): Same.
11510         (class foperator_le): Same.
11511         (class foperator_gt): Same.
11512         (class foperator_ge): Same.
11513         (class foperator_unordered): Same.
11514         (class foperator_ordered): Same.
11516 2022-10-10  Aldy Hernandez  <aldyh@redhat.com>
11518         * value-range.h (frange::maybe_isnan): New.
11520 2022-10-10  Aldy Hernandez  <aldyh@redhat.com>
11522         * range-op-float.cc (foperator_not_equal::op1_range): Set NAN on
11523         TRUE side for x != x.
11525 2022-10-10  Aldy Hernandez  <aldyh@redhat.com>
11527         * range-op-float.cc (foperator_unordered::op1_range): Set NAN when
11528         operands are equal and result is TRUE.
11530 2022-10-10  Aldy Hernandez  <aldyh@redhat.com>
11532         * range.h (range_true): Return int_range<2>.
11533         (range_false): Same.
11534         (range_true_and_false): Same.
11536 2022-10-10  Aldy Hernandez  <aldyh@redhat.com>
11538         * gimple-range-op.cc: Add op1_range entry for __builtin_signbit.
11540 2022-10-10  liuhongt  <hongtao.liu@intel.com>
11542         PR target/107185
11543         * config/i386/i386.md (lrint<MODEF:mode><SWI48:mode>2): Swap
11544         predicate of operands[0] and operands[1].
11546 2022-10-10  Claudiu Zissulescu  <claziss@gmail.com>
11548         * common/config/arc/arc-common.cc (arc_option_optimization_table):
11549         Remove Rcq and Rcw options.
11550         * config/arc/arc.opt (mRcq): Ignore option, preserve it for
11551         backwards compatibility.
11552         (mRcw): Likewise.
11553         * doc/invoke.texi (mRcw, mRcq): Update document.
11555 2022-10-10  Claudiu Zissulescu  <claziss@gmail.com>
11557         * config/arc/arc.cc (arc_check_short_reg_p): New function.
11558         (arc_address_cost): Replace satisfies_constraint_Rcq with the
11559         above new function.
11560         (arc_output_addsi): Likewise.
11561         (split_addsi): Likewise.
11562         (split_subsi): Likewise.
11563         * config/arc/arc.md (movqi_insn): Remove Rcq constraint.
11564         (movhi_insn): Likewise.
11565         (movsi_insn): Likewise.
11566         (tst_movb): Likewise.
11567         (tst): Likewise.
11568         (tst_bitfield): Likewise.
11569         (abssi2): Likewise.
11570         (addsi3_mixed): Likewise.
11571         (mulhisi3_reg): Likewise.
11572         (umulhisi3_reg): Likewise.
11573         (mulsi_600): Likewise.
11574         (mul64): Likewise.
11575         (subsi3_insn): Likewise.
11576         (bicsi3_insn): Likewise.
11577         (xorsi3): Likewise.
11578         (negsi2): Likewise.
11579         (one_cmplsi2): Likewise.
11580         (lshrsi3_insn): Likewise.
11581         (cmpsi_cc_insn_mixed): Likewise.
11582         (cmpsi_cc_zn_insn): Likewise.
11583         (btst): Likewise.
11584         (cmpsi_cc_z_insn): Likewise.
11585         (cmpsi_cc_c_insn): Likewise.
11586         (indirect_jump): Likewise.
11587         (casesi_jump): Likewise.
11588         (call_i): Likewise.
11589         (call_value_i): Likewise.
11590         (bbit): Likewise.
11591         (abssf2): Likewise.
11592         (ashlsi2_cnt1): Likewise.
11593         (lshrsi3_cnt1): Likewise.
11594         (ashrsi3_cnt1): Likewise.
11595         * config/arc/constraints.md (Rcq): Remove.
11597 2022-10-10  Claudiu Zissulescu  <claziss@gmail.com>
11599         * config/arc/arc.md (smaxsi3): Remove Rcw.
11600         (sminsi3): Likewise.
11601         (addsi3_mixed): Likewise.
11602         (add_f_2): Likewise.
11603         (subsi3_insn): Likewise.
11604         (sub_f): Likewise.
11605         (sub_n): Likewise.
11606         (bset): Likewise.
11607         (bxor): Likewise.
11608         (bclr): Likewise.
11609         (bset_insn): Likewise.
11610         (bxor_insn): Likewise.
11611         (bclr_insn): Likewise.
11612         (bmsk_insn): Likewise.
11613         (bicsi3_insn): Likewise.
11614         (xorsi3): Likewise.
11615         (negsi2): Likewise.
11616         (lshrsi3_insn): Likewise.
11617         (abssf2): Likewise.
11618         (negsf2): Likewise.
11619         * config/arc/constraints.md(Rcw): Remove it.
11621 2022-10-10  Claudiu Zissulescu  <claziss@gmail.com>
11623         * config/arc/arc.md(mulsi3_700): Remove Rcr.
11624         (mulsi3_highpart): Likewise.
11625         (umulsi3_highpart_i): Likewise.
11626         (umulsi3_highpart_int): Likewise.
11627         (macd): Likewise.
11628         (macdu): Likewise.
11629         * config/arc/constraints.md (Rcr): Remove it.
11631 2022-10-10  Claudiu Zissulescu  <claziss@gmail.com>
11633         * config/arc/arc.cc (arc_save_callee_enter): Use negative offsets.
11635 2022-10-09  Dimitar Dimitrov  <dimitar@dinux.eu>
11637         PR target/106562
11638         * config/pru/pru-protos.h (pru_noteq_condition): New
11639         function declaration.
11640         * config/pru/pru.cc (pru_noteq_condition): New function.
11641         * config/pru/pru.md (cbranchdi4): Define new pattern.
11643 2022-10-09  Dimitar Dimitrov  <dimitar@dinux.eu>
11645         * config/pru/pru.md (lshrdi3): New expand pattern.
11646         (ashldi3): Ditto.
11648 2022-10-09  YunQiang Su  <yunqiang.su@cipunited.com>
11650         * config.gcc: set with_arch to default_mips_arch if no defined.
11651         * config/mips/driver-native.cc (host_detect_local_cpu):
11652         try getauxval(AT_BASE_PLATFORM) and _MIPS_ARCH, too.
11653         pass -mnan=2008 if __mips_nan2008__ is defined.
11654         * config.in: define HAVE_SYS_AUXV_H and HAVE_GETAUXVAL.
11655         * configure.ac: detect sys/auxv.h and getauxval.
11656         * configure: regenerated.
11658 2022-10-07  Eugene Rozenfeld  <erozen@microsoft.com>
11660         * tree-cfg.cc (assign_discriminators): Set discriminators for call stmts
11661         on the same line within the same basic block.
11663 2022-10-07  Qing Zhao  <qing.zhao@oracle.com>
11665         PR tree-optimization/101836
11666         * tree-object-size.cc (addr_object_size): Use array_at_struct_end_p
11667         to determine a flexible array member reference.
11669 2022-10-07  Qing Zhao  <qing.zhao@oracle.com>
11671         * doc/extend.texi: Document strict_flex_array attribute.
11672         * doc/invoke.texi: Document -fstrict-flex-arrays[=n] option.
11673         * print-tree.cc (print_node): Print new bit decl_not_flexarray.
11674         * tree-core.h (struct tree_decl_common): New bit field
11675         decl_not_flexarray.
11676         * tree-streamer-in.cc (unpack_ts_decl_common_value_fields): Stream
11677         in new bit decl_not_flexarray.
11678         * tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream
11679         out new bit decl_not_flexarray.
11680         * tree.cc (array_at_struct_end_p): Update it with the new bit field
11681         decl_not_flexarray.
11682         * tree.h (DECL_NOT_FLEXARRAY): New flag.
11684 2022-10-07  Olivier Hainque  <hainque@adacore.com>
11686         * config/vxworks/_vxworks-versions.h: Use OS specific
11687         paths in #include of version.h.
11689 2022-10-07  Martin Liska  <mliska@suse.cz>
11691         * opts.cc (finish_options): Print sorry message only
11692         for -flive-patching=inline-only-static.
11694 2022-10-07  Jason Merrill  <jason@redhat.com>
11696         * gimplify.cc (gimplify_modify_expr_rhs): Don't optimize
11697         x = *(A*)&<expr> to x = <expr> for a TREE_ADDRESSABLE type.
11699 2022-10-07  Richard Biener  <rguenther@suse.de>
11701         PR tree-optimization/107153
11702         * tree-cfg.cc (gimple_duplicate_sese_tail): Do not update
11703         SSA form here.
11704         * tree-parloops.cc (gen_parallel_loop): Update SSA form
11705         after to-exit-first transform, no PHI insertion is necessary.
11706         (pass_parallelize_loops::execute): Force re-write of the
11707         virtual operand SSA web.
11709 2022-10-07  Jonathan Wakely  <jwakely@redhat.com>
11711         * value-range.cc (irange::irange_contains_p): Fix comment typo.
11713 2022-10-07  Eric Botcazou  <ebotcazou@adacore.com>
11715         * function.cc (thread_prologue_and_epilogue_insns): Update only
11716         entry and exit blocks when not optimizing.  Remove dead statement.
11718 2022-10-07  Aldy Hernandez  <aldyh@redhat.com>
11720         * value-range.cc (irange::irange_set): Convert nonzero mask to
11721         tree.
11722         (irange::irange_set_anti_range): Same.
11723         (irange::set): Same.
11724         (irange::verify_range): Same.
11725         (irange::contains_p): Same.
11726         (irange::invert): Same.
11727         (irange::set_range_from_nonzero_bits): Same.
11728         (irange::set_nonzero_bits): Same.
11729         (mask_to_wi): Same.
11730         (irange::intersect_nonzero_bits): Same.
11731         (irange::union_nonzero_bits): Same.
11732         * value-range.h (irange::varying_compatible_p): Same.
11733         (gt_ggc_mx): Same.
11734         (gt_pch_nx): Same.
11735         (irange::set_undefined): Same.
11736         (irange::set_varying): Same.
11738 2022-10-07  Martin Liska  <mliska@suse.cz>
11740         * config/i386/i386-protos.h (ix86_binary_operator_ok): Add array
11741         size to function parameter.
11742         (ix86_unary_operator_ok): Likewise.
11744 2022-10-07  Martin Liska  <mliska@suse.cz>
11746         * auto-profile.cc (get_inline_stack): Remove unused variable.
11748 2022-10-07  Jakub Jelinek  <jakub@redhat.com>
11750         * ipa-prop.h (ipa_constant_data): Fix comment typo.
11751         * value-range.cc (irange::irange_contains_p): Likewise.
11752         * value-relation.cc (dom_oracle::set_one_relation): Likewise.
11753         * gimple-predicate-analysis.cc (predicate::simplify_4): Likewise.
11754         * tree-inline.cc (remap_ssa_name): Likewise.
11756 2022-10-07  Jakub Jelinek  <jakub@redhat.com>
11758         * attribs.h (is_attribute_namespace_p): New inline function.
11759         (lookup_attribute): Document meaning of ATTR_NS equal to "".
11760         * attribs.cc (remove_attribute): Use is_attribute_namespace_p.
11761         (private_lookup_attribute): For ATTR_NS "" match either standard
11762         attribute or "gnu" namespace one.
11764 2022-10-07  Olivier Hainque  <hainque@adacore.com>
11766         * config/vxworks.h (DWARF_VERSION_DEFAULT): Adjust from
11767         4 to 3 for VxWorks >= 7.
11769 2022-10-07  Olivier Hainque  <hainque@adacore.com>
11771         * defaults.h (DWARF_DEFAULT_VERSION): Define if not
11772         defined already.
11773         * common.opt (gdwarf-): Use it.
11774         * doc/tm.texi.in (DWARF_DEFAULT_VERSION): Document.
11775         * doc/tm.texi: Update accordingly.
11776         * config/vxworks.h (DWARF_DEFAULT_VERSION): Redefine.
11777         * config/vxworks.cc: Remove code setting dwarf_version, now
11778         handled by the DWARF_DEFAULT_VERSION redefinition.
11780 2022-10-07  Olivier Hainque  <hainque@adacore.com>
11782         * ginclude/stddef.h: #undef offsetof before #define.
11784 2022-10-06  Aldy Hernandez  <aldyh@redhat.com>
11786         PR tree-optimization/107170
11787         * vr-values.cc (vr_values::range_of_expr):  Do not die on
11788         unsupported types.
11790 2022-10-06  Joseph Myers  <joseph@codesourcery.com>
11792         * doc/invoke.texi (-fno-asm): Update description of effects on
11793         typeof keyword.
11795 2022-10-06  Eric Botcazou  <ebotcazou@adacore.com>
11797         * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Bail out for a self
11798         dependency that is a write-after-write if the access function is not
11799         affine or constant.
11801 2022-10-06  Eric Botcazou  <ebotcazou@adacore.com>
11803         * df-scan.cc (df_ref_create_structure): Minor cleanup.
11805 2022-10-06  Richard Biener  <rguenther@suse.de>
11807         PR middle-end/107115
11808         * expr.cc (store_expr): Check mems_same_for_tbaa_p before
11809         eliding a seemingly redundant store.
11811 2022-10-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11813         * config/aarch64/atomics.md (*atomic_load<ALLX:mode>_zext<SD_HSDI:mode>):
11814         New pattern.
11816 2022-10-06  Philipp Tomsich  <philipp.tomsich@vrull.eu>
11818         * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
11819         Ampere-1 core entry.
11821 2022-10-06  Philipp Tomsich  <philipp.tomsich@vrull.eu>
11823         * config/aarch64/driver-aarch64.cc (readline): Fix off-by-one.
11825 2022-10-06  Richard Biener  <rguenther@suse.de>
11827         PR tree-optimization/107107
11828         * tree-ssa-sccvn.cc (visit_reference_op_store): Do not
11829         affect value-numbering when doing the tail merging
11830         MODIFY_EXPR lookup.
11832 2022-10-06  Claudiu Zissulescu  <claziss@synopsys.com>
11834         * config/arc/linux.h (LINK_SPEC): Remove max-page-size and
11835         common-pave-size.
11837 2022-10-06  Jakub Jelinek  <jakub@redhat.com>
11839         PR c++/106654
11840         * internal-fn.def (ASSUME): New internal function.
11841         * internal-fn.h (expand_ASSUME): Declare.
11842         * internal-fn.cc (expand_ASSUME): Define.
11843         * gimplify.cc (gimplify_call_expr): Gimplify IFN_ASSUME.
11844         * fold-const.h (simple_condition_p): Declare.
11845         * fold-const.cc (simple_operand_p_2): Rename to ...
11846         (simple_condition_p): ... this.  Remove forward declaration.
11847         No longer static.  Adjust function comment and fix a typo in it.
11848         Adjust recursive call.
11849         (simple_operand_p): Adjust function comment.
11850         (fold_truth_andor): Adjust simple_operand_p_2 callers to call
11851         simple_condition_p.
11852         * doc/extend.texi: Document assume attribute.  Move fallthrough
11853         attribute example to its section.
11855 2022-10-06  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
11857         PR rtl-optimization/107088
11858         * cselib.cc (new_cselib_val): Skip BImode while keeping track of
11859         subvalue relations.
11861 2022-10-06  Aldy Hernandez  <aldyh@redhat.com>
11863         * value-range.cc (frange::set): Call set_nan unconditionally.
11864         (range_tests_nan): Adjust tests.
11865         (range_tests_signed_zeros): Same.
11866         (range_tests_floats): Same.
11867         * value-range.h (frange::update_nan): Guard with HONOR_NANS.
11868         (frange::set_nan): Set undefined if !HONOR_NANS.
11870 2022-10-06  Aldy Hernandez  <aldyh@redhat.com>
11872         * range-op-float.cc (foperator_lt::fold_range): Remove extra check
11873         to finite_operands_p.
11874         (foperator_le::fold_range): Same.
11875         (foperator_gt::fold_range): Same.
11876         (foperator_ge::fold_range): Same.
11878 2022-10-06  Aldy Hernandez  <aldyh@redhat.com>
11880         * value-range-pretty-print.cc (vrange_printer::print_real_value):
11881         Avoid printing INF and NAN twice.
11883 2022-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
11885         * config/rs6000/constraints.md (wD): Delete.
11886         * doc/md.texi (Machine Constraints): Adjust.
11888 2022-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
11890         * config/rs6000/vsx.md (vsx_extract_<mode>): Replace define_insn by a
11891         define_expand.  Split the contents to...
11892         (*vsx_extract_<mode>_0): ... this.  Rewrite.
11893         (*vsx_extract_<mode>_1): ... and this.  Rewrite.
11895 2022-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
11897         * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Use "n" instead of
11898         "wD" constraint.
11900 2022-10-05  David Malcolm  <dmalcolm@redhat.com>
11902         PR analyzer/107060
11903         * doc/analyzer.texi (__analyzer_get_unknown_ptr): Document.
11905 2022-10-05  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
11907         * config.gcc: Add riscv_vector.h.
11908         * config/riscv/riscv-builtins.cc: Add RVV builtin types support.
11909         * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): New function.
11910         (riscv_register_pragmas): Ditto.
11911         * config/riscv/riscv-protos.h (riscv_register_pragmas): Ditto.
11912         (init_builtins): Move declaration from riscv-vector-builtins.h to riscv-protos.h.
11913         (mangle_builtin_type): Ditto.
11914         (verify_type_context): Ditto.
11915         (handle_pragma_vector): New function.
11916         * config/riscv/riscv-vector-builtins.cc (GTY): New variable.
11917         (register_vector_type): New function.
11918         (init_builtins): Add RVV builtin types support.
11919         (handle_pragma_vector): New function.
11920         * config/riscv/riscv-vector-builtins.h (GCC_RISCV_V_BUILTINS_H): Change
11921         name according to file name.
11922         (GCC_RISCV_VECTOR_BUILTINS_H): Ditto.
11923         (init_builtins): Remove declaration in riscv-vector-builtins.h.
11924         (mangle_builtin_type): Ditto.
11925         (verify_type_context): Ditto.
11926         * config/riscv/riscv.cc: Adjust for RVV builtin types support.
11927         * config/riscv/riscv.h (REGISTER_TARGET_PRAGMAS): New macro.
11928         * config/riscv/t-riscv: Remove redundant file including.
11929         * config/riscv/riscv_vector.h: New file.
11931 2022-10-05  Aldy Hernandez  <aldyh@redhat.com>
11933         * range-op.cc (operator_cast::fold_range): Handle truncating casts
11934         for nonzero masks.
11936 2022-10-05  Martin Liska  <mliska@suse.cz>
11938         PR c/107156
11939         * attribs.h (lookup_attribute_by_prefix): Support the attribute
11940         starting with underscore (_Noreturn).
11942 2022-10-05  Aldy Hernandez  <aldyh@redhat.com>
11944         PR tree-optimization/107052
11945         * gimple-range-op.cc (cfn_popcount::fold_range): Take into account
11946         nonzero bit mask.
11948 2022-10-05  Aldy Hernandez  <aldyh@redhat.com>
11950         PR tree-optimization/107052
11951         * range-op.cc (operator_cast::fold_range): Set nonzero mask.
11953 2022-10-05  Eric Botcazou  <ebotcazou@adacore.com>
11955         PR tree-optimization/106698
11956         * pointer-query.cc (handle_array_ref): Fix handling of low bound.
11958 2022-10-05  Vineet Gupta  <vineetg@rivosinc.com>
11960         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
11961         Remove __riscv_cmodel_pic, that deprecated in last version.
11963 2022-10-05  David Malcolm  <dmalcolm@redhat.com>
11965         PR analyzer/107072
11966         * Makefile.in (ANALYZER_OBJS): Add analyzer/call-summary.o.
11968 2022-10-04  Jakub Jelinek  <jakub@redhat.com>
11970         * attribs.h (remove_attribute): Declare overload with additional
11971         attr_ns argument.
11972         (private_lookup_attribute): Declare overload with additional
11973         attr_ns and attr_ns_len arguments.
11974         (lookup_attribute): New overload with additional attr_ns argument.
11975         * attribs.cc (remove_attribute): New overload with additional
11976         attr_ns argument.
11977         (private_lookup_attribute): New overload with additional
11978         attr_ns and attr_ns_len arguments.
11980 2022-10-04  Jakub Jelinek  <jakub@redhat.com>
11982         * attribs.cc (handle_ignored_attributes_option, decl_attributes,
11983         common_function_versions): Use auto_diagnostic_group.
11985 2022-10-04  Aldy Hernandez  <aldyh@redhat.com>
11987         * value-range.cc (irange::set_nonzero_bits): Remove assert.
11989 2022-10-04  Richard Sandiford  <richard.sandiford@arm.com>
11991         * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New macro.
11992         * config/aarch64/aarch64-arches.def (armv8.3-a): Include RCPC.
11993         * config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1)
11994         (neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores.
11995         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
11996         __ARM_FEATURE_RCPC when appropriate.
11998 2022-10-04  Tobias Burnus  <tobias@codesourcery.com>
12000         * doc/invoke.texi (-fopenmp): Mention C++ attribut syntax.
12001         (-fopenmp-simd): Likewise; update permitted directives.
12003 2022-10-04  Tobias Burnus  <tobias@codesourcery.com>
12005         * doc/install.texi (Specific): Add missing items to bullet list.
12006         (amdgcn): Update LLVM requirements, use version not date for newlib.
12007         (nvptx): Use version not git hash for newlib.
12009 2022-10-04  Aldy Hernandez  <aldyh@redhat.com>
12011         * value-range-storage.cc (irange_storage_slot::set_irange): Remove
12012         special case.
12013         * value-range.cc (irange::irange_set): Adjust for nonzero mask
12014         being a wide int.
12015         (irange::irange_set_anti_range): Same.
12016         (irange::set): Same.
12017         (irange::verify_range): Same.
12018         (irange::legacy_equal_p): Same.
12019         (irange::operator==): Same.
12020         (irange::contains_p): Same.
12021         (irange::legacy_intersect): Same.
12022         (irange::legacy_union): Same.
12023         (irange::irange_single_pair_union): Call union_nonzero_bits.
12024         (irange::irange_union): Same.
12025         (irange::irange_intersect): Call intersect_nonzero_bits.
12026         (irange::intersect): Adjust for nonzero mask being a wide int.
12027         (irange::invert): Same.
12028         (irange::set_nonzero_bits): Same.
12029         (irange::get_nonzero_bits_from_range): New.
12030         (irange::set_range_from_nonzero_bits): New.
12031         (irange::get_nonzero_bits): Adjust for nonzero mask being a wide
12032         int.
12033         (irange::intersect_nonzero_bits): Same.
12034         (irange::union_nonzero_bits): Same.
12035         (range_tests_nonzero_bits): Remove test.
12036         * value-range.h (irange::varying_compatible_p): Adjust for nonzero
12037         mask being a wide int.
12038         (gt_ggc_mx): Same.
12039         (gt_pch_nx): Same.
12040         (irange::set_undefined): Same.
12041         (irange::set_varying): Same.
12042         (irange::normalize_kind): Same.
12044 2022-10-04  Aldy Hernandez  <aldyh@redhat.com>
12046         PR tree-optimization/107130
12047         * gimple-range-op.cc (class cfn_popcount): Call op_cfn_ffs.
12048         (class cfn_ffs): New.
12049         (gimple_range_op_handler::maybe_builtin_call): Separate out
12050         CASE_CFN_FFS into its own case.
12052 2022-10-03  Sergei Trofimovich  <siarheit@google.com>
12054         * config/i386/t-i386: Add build-time dependencies against
12055         i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
12056         i386-features.o.
12058 2022-10-03  Andrew Stubbs  <ams@codesourcery.com>
12060         * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
12061         operand 3.
12062         * doc/md.texi (while_ult): Document new operand 3 usage.
12063         * internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type
12064         maps to a non-vector mode.
12066 2022-10-03  Andrew MacLeod  <amacleod@redhat.com>
12068         PR tree-optimization/107109
12069         * range-op.cc (adjust_op1_for_overflow): Don't process undefined.
12071 2022-10-03  Christophe Lyon  <christophe.lyon@arm.com>
12073         * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
12074         clobber.
12075         (mve_vrev64q_m_f<mode>): Likewise.
12077 2022-10-03  Aldy Hernandez  <aldyh@redhat.com>
12079         * value-range.cc (irange::set_nonzero_bits): Do not pessimize range.
12080         (range_tests_nonzero_bits): New test.
12082 2022-10-03  Aldy Hernandez  <aldyh@redhat.com>
12084         * value-range.cc (irange::operator==): Early bail on m_num_ranges
12085         equal to 0.
12087 2022-10-03  Aldy Hernandez  <aldyh@redhat.com>
12089         * value-range.cc (irange::legacy_equal_p): Remove nonozero mask
12090         check when comparing VR_VARYING ranges.
12092 2022-10-03  Aldy Hernandez  <aldyh@redhat.com>
12094         * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare
12095         incompatible ranges in ipa-prop.
12097 2022-10-02  Jakub Jelinek  <jakub@redhat.com>
12099         PR tree-optimization/107121
12100         * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics,
12101         DEFFERED_INIT -> DEFERRED_INIT.
12103 2022-10-02  Marc Poulhiès  <poulhies@adacore.com>
12105         * config/vxworks-driver.cc: New.
12106         * config.gcc (*vxworks*): Add vxworks-driver.o in extra_gcc_objs.
12107         * config/t-vxworks: Add vxworks-driver.o.
12108         * config/vxworks.h (GCC_DRIVER_HOST_INITIALIZATION): New.
12110 2022-10-02  Olivier Hainque  <hainque@adacore.com>
12112         * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If
12113         HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless
12114         of ENABLE_SHARED_LIBGCC.
12116 2022-10-01  Stafford Horne  <shorne@gmail.com>
12118         * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if
12119         HAVE_AS_TLS is defined.
12121 2022-10-01  Julian Brown  <julian@codesourcery.com>
12123         * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create)
12124         handling.
12126 2022-10-01  Jeff Law  <jeffreyalaw@gmail.com>
12128         * config/h8300/h8300.md (HSI2): New iterator.
12129         (eqne_invert): Similarly.
12130         * config/h8300/testcompare.md (testhi_upper_z): New pattern.
12131         (cmpqi_z, cmphi_z, cmpsi_z): Likewise.
12132         (store_z_qi, store_z_i_qi, store_z_hi, store_z_hi_sb): New
12133         define_insn_and_splits and/or define_insns.
12134         (store_z_hi_neg, store_z_hi_and, store_z_<mode>): Likewise.
12135         (store_z_<mode>_neg, store_z_<mode>_and, store_z): Likewise.
12137 2022-10-01  Jeff Law  <jeffreyalaw@gmail.com>
12139         * tree-ssa-dom.cc (record_edge_info): Install correct version of
12140         patch.
12142 2022-10-01  Eugene Rozenfeld  <erozen@microsoft.com>
12144         * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
12146 2022-09-30  Jeff Law  <jeffreyalaw@gmail.com>
12148         * tree-ssa-dom.cc (single_block_loop_p): New function.
12149         (record_edge_info): Also record equivalences for the outgoing
12150         edge of a single block loop where the condition is an invariant.
12152 2022-09-30  Jeff Law  <jeffreyalaw@gmail.com>
12154         * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too.
12155         (free_all_edge_infos): Do not clear e->aux here.
12157 2022-09-30  H.J. Lu  <hjl.tools@gmail.com>
12159         * target.def (TARGET_C_EXCESS_PRECISION): Document
12160         -fexcess-precision=16.
12162 2022-09-30  Palmer Dabbelt  <palmer@rivosinc.com>
12164         * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16.
12166 2022-09-30  Palmer Dabbelt  <palmer@rivosinc.com>
12168         PR target/106815
12169         * config/riscv/riscv.cc (riscv_excess_precision): Add support
12170         for EXCESS_PRECISION_TYPE_FLOAT16.
12172 2022-09-30  Jakub Jelinek  <jakub@redhat.com>
12174         PR c++/107080
12175         * config/arm/arm.cc (arm_mangle_type): Mangle just __fp16 as Dh
12176         and _Float16 as DF16_.
12177         * config/csky/csky.cc (csky_init_builtins): Fix a comment typo.
12178         (csky_mangle_type): Mangle __fp16 as Dh and _Float16 as DF16_
12179         rather than mangling __fp16 as __fp16.
12181 2022-09-30  Lewis Hyatt  <lhyatt@gmail.com>
12183         PR preprocessor/69543
12184         * tree-ssa-uninit.cc (warn_uninit): Stop stripping macro tracking
12185         information away from the diagnostic location.
12186         (maybe_warn_read_write_only): Likewise.
12187         (maybe_warn_operand): Likewise.
12189 2022-09-30  Jakub Jelinek  <jakub@redhat.com>
12191         PR c++/107080
12192         * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16
12193         as Dh and _Float16 as DF16_.
12195 2022-09-30  Jakub Jelinek  <jakub@redhat.com>
12197         PR c++/107080
12198         * config/i386/i386.cc (ix86_mangle_type): Always return NULL
12199         for float128_type_node or float64x_type_node, don't check
12200         float128t_type_node later on.
12201         * config/ia64/ia64.cc (ia64_mangle_type): Always return NULL
12202         for float128_type_node or float64x_type_node.
12203         * config/rs6000/rs6000.cc (rs6000_mangle_type): Likewise.
12204         Don't check float128_type_node later on.
12205         * config/s390/s390.cc (s390_mangle_type): Don't use
12206         TYPE_MAIN_VARIANT on type which was set to TYPE_MAIN_VARIANT
12207         a few lines earlier.
12209 2022-09-30  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
12210             Yvan ROUX   <yvan.roux@foss.st.com>
12212         * doc/sourcebuild.texi: Document new vma_equals_lma effective
12213         target check.
12215 2022-09-30  Jiawei  <jiawei@iscas.ac.cn>
12217         * config/riscv/riscv.cc (riscv_file_start): New .option.
12218         * config/riscv/riscv.opt: New options.
12219         * doc/invoke.texi: New definations.
12221 2022-09-30  Kewen Lin  <linkw@linux.ibm.com>
12223         PR target/99888
12224         PR target/105649
12225         * doc/invoke.texi (option -fpatchable-function-entry): Adjust the
12226         documentation for PowerPC ELFv2 ABI dual entry points.
12227         * config/rs6000/rs6000-internal.h
12228         (rs6000_print_patchable_function_entry): New function declaration.
12229         * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
12230         Support patchable-function-entry by emitting nops before and after
12231         local entry for the function that needs global entry.
12232         * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): Skip
12233         the function that needs global entry till global entry has been
12234         emitted.
12235         * config/rs6000/rs6000.h (struct machine_function): New bool member
12236         global_entry_emitted.
12238 2022-09-30  Richard Biener  <rguenther@suse.de>
12240         PR tree-optimization/107095
12241         * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg
12242         for .MASK_STORE size.
12244 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
12246         * range-op.cc (plus_minus_ranges): New.
12247         (adjust_op1_for_overflow): New.
12248         (operator_plus::op1_range): Use new adjustment.
12249         (operator_plus::op2_range): Ditto.
12250         (operator_minus::op1_range): Ditto.
12251         * value-relation.h (relation_lt_le_gt_ge_p): New.
12253 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
12255         * gimple-range-gori.cc (gori_compute::refine_using_relation): New.
12256         (gori_compute::compute_operand1_range): Invoke
12257         refine_using_relation when applicable.
12258         (gori_compute::compute_operand2_range): Ditto.
12259         * gimple-range-gori.h (class gori_compute): Adjust prototypes.
12261 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
12263         * gimple-range-gori.cc (ori_compute::compute_operand_range):
12264         Create a relation record and pass it along when possible.
12265         (gori_compute::compute_operand1_range): Pass relation along.
12266         (gori_compute::compute_operand2_range): Ditto.
12267         (gori_compute::compute_operand1_and_operand2_range): Ditto.
12268         * gimple-range-gori.h (class gori_compute): Adjust prototypes.
12269         * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Pass
12270         relation to op1_range call.
12271         (gimple_range_op_handler::calc_op2): Pass relation to op2_range call.
12272         * gimple-range-op.h (class gimple_range_op_handler): Adjust
12273         prototypes.
12275 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
12277         * value-relation.cc (class value_relation): Move to .h file.
12278         (value_relation::set_relation): Ditto.
12279         (value_relation::value_relation): ditto.
12280         * value-relation.h (class value_relation): Move from .cc file.
12281         (value_relation::set_relation): Ditto
12282         (value_relation::value_relation): Ditto.
12284 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
12286         * range-op.cc (operator_minus::op2_range): Check for undefined.
12287         (operator_mult::op1_range): Ditto.
12288         (operator_exact_divide::op1_range): Ditto.
12289         (operator_lshift::op1_range): Ditto.
12290         (operator_rshift::op1_range): Ditto.
12291         (operator_cast::op1_range): Ditto.
12292         (operator_bitwise_and::op1_range): Ditto.
12293         (operator_bitwise_or::op1_range): Ditto.
12294         (operator_trunc_mod::op1_range): Ditto.
12295         (operator_trunc_mod::op2_range): Ditto.
12296         (operator_bitwise_not::op1_range): Ditto.
12297         (pointer_or_operator::op1_range): Ditto.
12298         (range_op_handler::op1_range): Ditto.
12299         (range_op_handler::op2_range): Ditto.
12301 2022-09-29  Andrew Stubbs  <ams@codesourcery.com>
12303         * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
12304         Remove unused elt_bits variable.
12306 2022-09-29  Olivier Hainque  <hainque@adacore.com>
12308         * config/vxworks.h: Add comment on our use of
12309         HAVE_INITFINI_ARRAY_SUPPORT.
12311 2022-09-29  Olivier Hainque  <hainque@adacore.com>
12313         * config/aarch64/t-aarch64-vxworks: Request multilib
12314         variants for mcmodel=large.
12316 2022-09-29  Olivier Hainque  <hainque@adacore.com>
12318         * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove
12319         resetting to 0.
12321 2022-09-29  Olivier Hainque  <hainque@adacore.com>
12323         * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0
12324         when ARM_UNWIND_INFO is set.
12326 2022-09-29  Julian Brown  <julian@codesourcery.com>
12328         PR middle-end/107028
12329         * gimplify.cc (omp_check_mapping_compatibility,
12330         oacc_resolve_clause_dependencies): New functions.
12331         (omp_accumulate_sibling_list): Remove redundant duplicate clause
12332         detection for OpenACC.
12333         (build_struct_sibling_lists): Skip deleted groups.  Don't build sibling
12334         list for struct variables that are fully mapped on the same directive
12335         for OpenACC.
12336         (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies.
12338 2022-09-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
12340         PR middle-end/25521
12341         * varasm.cc (categorize_decl_for_section): Place `const volatile'
12342         objects in read-only sections.
12343         (default_select_section): Likewise.
12345 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12347         * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead
12348         of to_widest.
12350 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12352         * config/aarch64/aarch64.h (TARGET_CRYPTO, TARGET_SHA3, TARGET_SM4)
12353         (TARGET_DOTPROD): Don't depend on TARGET_SIMD.
12354         (TARGET_AES, TARGET_SHA2): Likewise.  Remove TARGET_CRYPTO test.
12355         (TARGET_FP_F16INST): Don't depend on TARGET_FLOAT.
12356         (TARGET_SVE2, TARGET_SVE_F32MM, TARGET_SVE_F64MM): Don't depend
12357         on TARGET_SVE.
12358         (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
12359         (TARGET_SVE2_SM4): Don't depend on TARGET_SVE2.
12360         (TARGET_F32MM, TARGET_F64MM): Delete.
12361         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Guard
12362         float macros with just TARGET_FLOAT rather than TARGET_FLOAT
12363         || TARGET_SIMD.
12364         * config/aarch64/aarch64-simd.md (copysign<mode>3): Depend
12365         only on TARGET_SIMD, rather than TARGET_FLOAT && TARGET_SIMD.
12366         (aarch64_crypto_aes<aes_op>v16qi): Depend only on TARGET_AES,
12367         rather than TARGET_SIMD && TARGET_AES.
12368         (aarch64_crypto_aes<aesmc_op>v16qi): Likewise.
12369         (*aarch64_crypto_aese_fused): Likewise.
12370         (*aarch64_crypto_aesd_fused): Likewise.
12371         (aarch64_crypto_pmulldi): Likewise.
12372         (aarch64_crypto_pmullv2di): Likewise.
12373         (aarch64_crypto_sha1hsi): Likewise TARGET_SHA2.
12374         (aarch64_crypto_sha1hv4si): Likewise.
12375         (aarch64_be_crypto_sha1hv4si): Likewise.
12376         (aarch64_crypto_sha1su1v4si): Likewise.
12377         (aarch64_crypto_sha1<sha1_op>v4si): Likewise.
12378         (aarch64_crypto_sha1su0v4si): Likewise.
12379         (aarch64_crypto_sha256h<sha256_op>v4si): Likewise.
12380         (aarch64_crypto_sha256su0v4si): Likewise.
12381         (aarch64_crypto_sha256su1v4si): Likewise.
12382         (aarch64_crypto_sha512h<sha512_op>qv2di): Likewise TARGET_SHA3.
12383         (aarch64_crypto_sha512su0qv2di): Likewise.
12384         (aarch64_crypto_sha512su1qv2di, eor3q<mode>4): Likewise.
12385         (aarch64_rax1qv2di, aarch64_xarqv2di, bcaxq<mode>4): Likewise.
12386         (aarch64_sm3ss1qv4si): Likewise TARGET_SM4.
12387         (aarch64_sm3tt<sm3tt_op>qv4si): Likewise.
12388         (aarch64_sm3partw<sm3part_op>qv4si): Likewise.
12389         (aarch64_sm4eqv4si, aarch64_sm4ekeyqv4si): Likewise.
12390         * config/aarch64/aarch64.md (<FLOATUORS:optab>dihf2)
12391         (copysign<GPF:mode>3, copysign<GPF:mode>3_insn)
12392         (xorsign<mode>3): Remove redundant TARGET_FLOAT condition.
12394 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12396         * config/aarch64/aarch64.opt (aarch64_asm_isa_flags): New variable.
12397         * config/aarch64/aarch64.h (aarch64_asm_isa_flags)
12398         (aarch64_isa_flags): Redefine as read-only macros.
12399         (TARGET_SIMD, TARGET_FLOAT, TARGET_SVE): Don't depend on
12400         !TARGET_GENERAL_REGS_ONLY.
12401         * common/config/aarch64/aarch64-common.cc
12402         (aarch64_set_asm_isa_flags): New function.
12403         (aarch64_handle_option): Call it when updating -mgeneral-regs.
12404         * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Replace
12405         m_old_isa_flags with m_old_asm_isa_flags.
12406         (aarch64_set_asm_isa_flags): Declare.
12407         * config/aarch64/aarch64-builtins.cc
12408         (aarch64_simd_switcher::aarch64_simd_switcher)
12409         (aarch64_simd_switcher::~aarch64_simd_switcher): Save and restore
12410         aarch64_asm_isa_flags instead of aarch64_isa_flags.
12411         * config/aarch64/aarch64-sve-builtins.cc
12412         (check_required_extensions): Use aarch64_asm_isa_flags instead
12413         of aarch64_isa_flags.
12414         * config/aarch64/aarch64.cc (aarch64_set_asm_isa_flags): New function.
12415         (aarch64_override_options, aarch64_handle_attr_arch)
12416         (aarch64_handle_attr_cpu, aarch64_handle_attr_isa_flags): Use
12417         aarch64_set_asm_isa_flags to set the ISA flags.
12418         (aarch64_option_print, aarch64_declare_function_name)
12419         (aarch64_start_file): Use aarch64_asm_isa_flags instead
12420         of aarch64_isa_flags.
12421         (aarch64_can_inline_p): Check aarch64_asm_isa_flags as well as
12422         aarch64_isa_flags.
12424 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12426         * common/config/aarch64/aarch64-common.cc (all_extensions):
12427         Include the feature flag in flags_on and flags_off.
12428         (aarch64_parse_extension): Update accordingly.
12429         (aarch64_get_extension_string_for_isa_flags): Likewise.
12431 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12433         * common/config/aarch64/aarch64-common.cc: Use aarch64_feature_flags
12434         for feature flags throughout.
12435         * config/aarch64/aarch64-protos.h: Likewise.
12436         * config/aarch64/aarch64-sve-builtins.h: Likewise.
12437         * config/aarch64/aarch64-sve-builtins.cc: Likewise.
12438         * config/aarch64/aarch64.cc: Likewise.
12439         * config/aarch64/aarch64.opt: Likewise.
12440         * config/aarch64/driver-aarch64.cc: Likewise.
12442 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12444         * common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
12445         (processor_name_to_arch, arch_to_arch_name): Remove const from
12446         member variables.
12447         (all_extensions, all_cores, all_architectures): Make a constexpr.
12448         * config/aarch64/aarch64.cc (processor): Remove const from
12449         member variables.
12450         (all_architectures): Make a constexpr.
12451         * config/aarch64/driver-aarch64.cc (aarch64_core_data)
12452         (aarch64_arch_driver_info): Remove const from member variables.
12453         (aarch64_cpu_data, aarch64_arches): Make a constexpr.
12454         (get_arch_from_id): Return a pointer to const.
12455         (host_detect_local_cpu): Update accordingly.
12457 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12459         * common/config/aarch64/aarch64-common.cc (processor_name_to_arch)
12460         (arch_to_arch_name): Use const char * instead of std::string.
12462 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12464         * common/config/aarch64/aarch64-common.cc
12465         (TARGET_OPTION_INIT_STRUCT): Delete.
12466         (aarch64_option_extension): Remove is_synthetic_flag.
12467         (all_extensions): Update accordingly.
12468         (all_extensions_by_on, opt_ext, opt_ext_cmp): Delete.
12469         (aarch64_option_init_struct, aarch64_contains_opt): Delete.
12470         (aarch64_get_extension_string_for_isa_flags): Rewrite to use
12471         all_extensions instead of all_extensions_on.
12473 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12475         * config/aarch64/aarch64-option-extensions.def: Switch to a new format.
12476         * config/aarch64/aarch64-cores.def: Use the same format to specify
12477         lists of features.
12478         * config/aarch64/aarch64-arches.def: Likewise, moving that information
12479         from aarch64.h.
12480         * config/aarch64/aarch64-opts.h (aarch64_feature_flags): New typedef.
12481         * config/aarch64/aarch64.h (aarch64_feature): New class enum.
12482         Turn AARCH64_FL_* macros into constexprs, getting the definitions
12483         from aarch64-option-extensions.def.  Remove AARCH64_FL_FOR_* macros.
12484         * common/config/aarch64/aarch64-common.cc: Include
12485         aarch64-feature-deps.h.
12486         (all_extensions): Update for new .def format.
12487         (all_extensions_by_on, all_cores, all_architectures): Likewise.
12488         * config/aarch64/driver-aarch64.cc: Include aarch64-feature-deps.h.
12489         (aarch64_extensions): Update for new .def format.
12490         (aarch64_cpu_data, aarch64_arches): Likewise.
12491         * config/aarch64/aarch64.cc: Include aarch64-feature-deps.h.
12492         (all_architectures, all_cores): Update for new .def format.
12493         * config/aarch64/aarch64-sve-builtins.cc
12494         (check_required_extensions): Likewise.
12495         * config/aarch64/aarch64-feature-deps.h: New file.
12497 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12499         * config/aarch64/aarch64-option-extensions.def: Move crypto
12500         after sha2.
12502 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12504         * config/aarch64/aarch64-option-extensions.def (dotprod): Depend
12505         on fp as well as simd.
12506         (sha3): Likewise.
12507         (aes): Likewise.  Make +noaes disable crypto.
12508         (sha2): Likewise +nosha2.  Also make +nosha2 disable sha3 and
12509         sve2-sha3.
12510         (sve2-sha3): Depend on sha2 as well as sha3.
12512 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12514         PR target/107025
12515         * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete.
12516         (AARCH64_FL_FOR_V8_4A): Update accordingly.
12517         (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly.
12518         * config/aarch64/aarch64-cores.def (thunderx3t110): Remove
12519         AARCH64_FL_RCPC8_4.
12521 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12523         * config/aarch64/aarch64-cores.def: Remove AARCH64_FL_FOR_<ARCH>
12524         from the flags field.
12525         * common/config/aarch64/aarch64-common.cc (all_cores): Add it
12526         here instead.
12527         * config/aarch64/aarch64.cc (all_cores): Likewise.
12528         * config/aarch64/driver-aarch64.cc (all_cores): Likewise.
12530 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12532         * config.gcc: Remove dead aarch64-option-extensions.def code.
12533         * config/aarch64/aarch64-arches.def: Update comment.
12535 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12537         * config/aarch64/aarch64-arches.def: Add a leading "V" to the
12538         ARCH_IDENT fields.
12539         * config/aarch64/aarch64-cores.def: Update accordingly.
12540         * common/config/aarch64/aarch64-common.cc (all_cores): Likewise.
12541         * config/aarch64/aarch64.cc (all_cores): Likewise.
12542         * config/aarch64/driver-aarch64.cc (aarch64_arches): Skip the
12543         leading "V".
12545 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12547         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8): Rename to...
12548         (AARCH64_FL_FOR_V8A): ...this.
12549         (AARCH64_FL_FOR_ARCH8_1): Rename to...
12550         (AARCH64_FL_FOR_V8_1A): ...this.
12551         (AARCH64_FL_FOR_ARCH8_2): Rename to...
12552         (AARCH64_FL_FOR_V8_2A): ...this.
12553         (AARCH64_FL_FOR_ARCH8_3): Rename to...
12554         (AARCH64_FL_FOR_V8_3A): ...this.
12555         (AARCH64_FL_FOR_ARCH8_4): Rename to...
12556         (AARCH64_FL_FOR_V8_4A): ...this.
12557         (AARCH64_FL_FOR_ARCH8_5): Rename to...
12558         (AARCH64_FL_FOR_V8_5A): ...this.
12559         (AARCH64_FL_FOR_ARCH8_6): Rename to...
12560         (AARCH64_FL_FOR_V8_6A): ...this.
12561         (AARCH64_FL_FOR_ARCH8_7): Rename to...
12562         (AARCH64_FL_FOR_V8_7A): ...this.
12563         (AARCH64_FL_FOR_ARCH8_8): Rename to...
12564         (AARCH64_FL_FOR_V8_8A): ...this.
12565         (AARCH64_FL_FOR_ARCH8_R): Rename to...
12566         (AARCH64_FL_FOR_V8R): ...this.
12567         (AARCH64_FL_FOR_ARCH9): Rename to...
12568         (AARCH64_FL_FOR_V9A): ...this.
12569         (AARCH64_FL_FOR_ARCH9_1): Rename to...
12570         (AARCH64_FL_FOR_V9_1A): ...this.
12571         (AARCH64_FL_FOR_ARCH9_2): Rename to...
12572         (AARCH64_FL_FOR_V9_2A): ...this.
12573         (AARCH64_FL_FOR_ARCH9_3): Rename to...
12574         (AARCH64_FL_FOR_V9_3A): ...this.
12575         * common/config/aarch64/aarch64-common.cc (all_cores): Update
12576         accordingly.
12577         * config/aarch64/aarch64-arches.def: Likewise.
12578         * config/aarch64/aarch64-cores.def: Likewise.
12579         * config/aarch64/aarch64.cc (all_cores): Likewise.
12581 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12583         * config/aarch64/aarch64.h (AARCH64_FL_V8_1, AARCH64_FL_V8_2)
12584         (AARCH64_FL_V8_3, AARCH64_FL_V8_4, AARCH64_FL_V8_5, AARCH64_FL_V8_6)
12585         (AARCH64_FL_V9, AARCH64_FL_V8_7, AARCH64_FL_V8_8, AARCH64_FL_V9_1)
12586         (AARCH64_FL_V9_2, AARCH64_FL_V9_3): Add "A" to the end of the name.
12587         (AARCH64_FL_V8_R): Rename to AARCH64_FL_V8R.
12588         (AARCH64_FL_FOR_ARCH8_1, AARCH64_FL_FOR_ARCH8_2): Update accordingly.
12589         (AARCH64_FL_FOR_ARCH8_3, AARCH64_FL_FOR_ARCH8_4): Likewise.
12590         (AARCH64_FL_FOR_ARCH8_5, AARCH64_FL_FOR_ARCH8_6): Likewise.
12591         (AARCH64_FL_FOR_ARCH8_7, AARCH64_FL_FOR_ARCH8_8): Likewise.
12592         (AARCH64_FL_FOR_ARCH8_R, AARCH64_FL_FOR_ARCH9): Likewise.
12593         (AARCH64_FL_FOR_ARCH9_1, AARCH64_FL_FOR_ARCH9_2): Likewise.
12594         (AARCH64_FL_FOR_ARCH9_3, AARCH64_ISA_V8_2A, AARCH64_ISA_V8_3A)
12595         (AARCH64_ISA_V8_4A, AARCH64_ISA_V8_5A, AARCH64_ISA_V8_6A): Likewise.
12596         (AARCH64_ISA_V8R, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A): Likewise.
12597         (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A): Likewise.
12599 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12601         * config/aarch64/aarch64.h (AARCH64_ISA_V8_2, AARCH64_ISA_V8_3)
12602         (AARCH64_ISA_V8_4, AARCH64_ISA_V8_5, AARCH64_ISA_V8_6)
12603         (AARCH64_ISA_V9, AARCH64_ISA_V9_1, AARCH64_ISA_V9_2)
12604         (AARCH64_ISA_V9_3): Add "A" to the end of the name.
12605         (AARCH64_ISA_V8_R): Rename to AARCH64_ISA_V8R.
12606         (TARGET_ARMV8_3, TARGET_JSCVT, TARGET_FRINT, TARGET_MEMTAG): Update
12607         accordingly.
12608         * common/config/aarch64/aarch64-common.cc
12609         (aarch64_get_extension_string_for_isa_flags): Likewise.
12610         * config/aarch64/aarch64-c.cc
12611         (aarch64_define_unconditional_macros): Likewise.
12613 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
12615         * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA.
12617 2022-09-29  Jakub Jelinek  <jakub@redhat.com>
12619         PR bootstrap/107059
12620         * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC
12621         isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2
12622         before FIXED_INCLUDE_DIR entry with multilib flag 0.
12623         * gcc.cc (do_spec_1): If multiarch_dir, add
12624         include-fixed/multiarch_dir paths before include-fixed paths.
12626 2022-09-29  Martin Liska  <mliska@suse.cz>
12628         PR driver/106897
12629         * common.opt: Add -gz=zstd value.
12630         * configure.ac: Detect --compress-debug-sections=zstd
12631         for both linker and assembler.
12632         * configure: Regenerate.
12633         * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Handle -gz=zstd.
12634         (ASM_COMPRESS_DEBUG_SPEC): Likewise.
12636 2022-09-29  Richard Biener  <rguenther@suse.de>
12638         PR tree-optimization/105646
12639         * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
12640         the set of fallthru reachable blocks from function entry
12641         and use that to determine wlims.always_executed.
12643 2022-09-29  liuhongt  <hongtao.liu@intel.com>
12645         PR tree-optimization/107055
12646         * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for
12647         nonlinear induction variables.
12648         * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New
12649         functions.
12650         (vectorizable_nonlinear_induction): Put part codes into
12651         vect_can_peel_nonlinear_iv_p.
12652         * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare.
12654 2022-09-28  Eugene Rozenfeld  <erozen@microsoft.com>
12656         * basic-block.h: Remove discriminator from basic blocks.
12657         * cfghooks.cc (split_block_1): Remove discriminator from basic blocks.
12658         * final.cc (final_start_function_1): Switch from per-bb to per statement
12659         discriminator.
12660         (final_scan_insn_1): Don't keep track of basic block discriminators.
12661         (compute_discriminator): Switch from basic block discriminators to
12662         instruction discriminators.
12663         (insn_discriminator): New function to return instruction discriminator.
12664         (notice_source_line): Use insn_discriminator.
12665         * gimple-pretty-print.cc (dump_gimple_bb_header): Remove dumping of
12666         basic block discriminators.
12667         * gimple-streamer-in.cc (input_bb): Remove reading of basic block
12668         discriminators.
12669         * gimple-streamer-out.cc (output_bb): Remove writing of basic block
12670         discriminators.
12671         * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA.
12672         (location_with_discriminator): New function to combine locus with
12673         a discriminator.
12674         (has_discriminator): New function to check if a location has a discriminator.
12675         (get_discriminator_from_loc): New function to get the discriminator
12676         from a location.
12677         * input.h: Declarations of new functions.
12678         * lto-streamer-in.cc (cmp_loc): Use discriminators in location comparison.
12679         (apply_location_cache): Keep track of current discriminator.
12680         (input_location_and_block): Read discriminator from stream.
12681         * lto-streamer-out.cc (clear_line_info): Set current discriminator to
12682         UINT_MAX.
12683         (lto_output_location_1): Write discriminator to stream.
12684         * lto-streamer.h: Add discriminator to cached_location.
12685         Add current_discr to lto_location_cache.
12686         Add current_discr to output_block.
12687         * print-rtl.cc (print_rtx_operand_code_i): Print discriminator.
12688         * rtl.h: Add extern declaration of insn_discriminator.
12689         * tree-cfg.cc (assign_discriminator): New function to assign a unique
12690         discriminator value to all statements in a basic block that have the given
12691         line number.
12692         (assign_discriminators): Assign discriminators to statement locations.
12693         * tree-pretty-print.cc (dump_location): Dump discriminators.
12694         * tree.cc (set_block): Preserve discriminator when setting block.
12695         (set_source_range): Preserve discriminator when setting source range.
12697 2022-09-28  H.J. Lu  <hjl.tools@gmail.com>
12699         PR target/107061
12700         * config/i386/predicates.md (encodekey128_operation): Check
12701         XMM4-XMM6 as clobbered.
12702         (encodekey256_operation): Likewise.
12703         * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
12704         (encodekey256u32): Likewise.
12706 2022-09-28  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
12708         * config.gcc: Add riscv-vector-builtins.o.
12709         * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV builtin function.
12710         * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): New function.
12711         * config/riscv/riscv.cc (ENTRY): New macro.
12712         (riscv_v_ext_enabled_vector_mode_p): New function.
12713         (riscv_mangle_type): Add RVV mangle.
12714         (riscv_vector_mode_supported_p): Adjust RVV machine mode.
12715         (riscv_verify_type_context): Add context check for RVV.
12716         (riscv_vector_alignment): Add RVV alignment target hook support.
12717         (TARGET_VECTOR_MODE_SUPPORTED_P): New target hook support.
12718         (TARGET_VERIFY_TYPE_CONTEXT): Ditto.
12719         (TARGET_VECTOR_ALIGNMENT): Ditto.
12720         * config/riscv/t-riscv: Add riscv-vector-builtins.o
12721         * config/riscv/riscv-vector-builtins.cc: New file.
12722         * config/riscv/riscv-vector-builtins.def: New file.
12723         * config/riscv/riscv-vector-builtins.h: New file.
12724         * config/riscv/riscv-vector-switch.def: New file.
12726 2022-09-28  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
12728         * var-tracking.cc (vt_add_function_parameter): Add entry values
12729         up to maximal register mode.
12731 2022-09-28  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
12733         * cselib.cc (new_cselib_val): Keep track of further subvalue
12734         relations.
12736 2022-09-28  Andrea Corallo  <andrea.corallo@arm.com>
12738         * config/arm/arm-c.cc (arm_cpu_builtins): Define
12739         __ARM_FEATURE_AES and __ARM_FEATURE_SHA2.
12741 2022-09-28  Xi Ruoyao  <xry111@xry111.site>
12743         PR tree-optimization/105414
12744         * config/loongarch/loongarch.md (UNSPEC_FMAX): New unspec.
12745         (UNSPEC_FMIN): Likewise.
12746         (fmax<mode>3): Use UNSPEC_FMAX instead of smax.
12747         (fmin<mode>3): Use UNSPEC_FMIN instead of smin.
12749 2022-09-28  Lulu Cheng  <chenglulu@loongson.cn>
12751         * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset):
12752         Fixed typo in "asan_mapping.h".
12754 2022-09-28  H.J. Lu  <hjl.tools@gmail.com>
12756         PR middle-end/58245
12757         * calls.cc: Include "tree-eh.h".
12758         (expand_call): Check stack canary before throwing exception.
12760 2022-09-27  Eugene Rozenfeld  <erozen@microsoft.com>
12762         * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
12764 2022-09-27  Kim Kuparinen  <kim.kuparinen@rightware.com>
12766         * doc/invoke.texi: Update ABI version info.
12768 2022-09-27  Aldy Hernandez  <aldyh@redhat.com>
12770         * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
12771         singleton.
12773 2022-09-27  Aldy Hernandez  <aldyh@redhat.com>
12775         * value-range.cc (irange::set_nonzero_bits): Set range when known.
12777 2022-09-27  Aldy Hernandez  <aldyh@redhat.com>
12779         * value-range.h (irange::set): New version taking wide_int_ref.
12781 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
12783         PR tree-optimization/107029
12784         * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat
12785         OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be
12786         signed and so can trigger even the (b % 4) == 3 case.
12788 2022-09-27  Jeff Law  <jeffreyalaw@gmail.com>
12790         * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
12791         and return are available before trying to use them.
12793 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
12795         PR c++/106652
12796         PR c++/85518
12797         * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
12798         enumerator.
12799         * tree.h (float128t_type_node): Define.
12800         * tree.cc (build_common_tree_nodes): Initialize float128t_type_node.
12801         * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that
12802         _Float<N> is supported in C++ too.
12803         * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g"
12804         float128t_type_node.
12805         * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use
12806         float128t_type_node for __float128 instead of float128_type_node
12807         and create it if NULL.
12808         * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph,
12809         _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of
12810         0.0f.
12811         * config/ia64/ia64.cc (ia64_init_builtins): Use
12812         float128t_type_node for __float128 instead of float128_type_node
12813         and create it if NULL.
12814         * config/rs6000/rs6000-c.cc (is_float128_p): Also return true
12815         for float128t_type_node if non-NULL.
12816         * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle
12817         float128_type_node as "u9__ieee128".
12818         * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use
12819         float128t_type_node for __float128 instead of float128_type_node
12820         and create it if NULL.
12822 2022-09-26  Martin Liska  <mliska@suse.cz>
12824         * doc/invoke.texi: Add missing dash for
12825         Wanalyzer-exposure-through-uninit-copy.
12827 2022-09-26  Aldy Hernandez  <aldyh@redhat.com>
12829         PR tree-optimization/107009
12830         * range-op.cc (operator_bitwise_and::op1_range): Optimize 0 = x & MASK.
12831         (range_op_bitwise_and_tests): New test.
12833 2022-09-26  Aldy Hernandez  <aldyh@redhat.com>
12835         PR tree-optimization/107009
12836         * tree-ssa-dom.cc
12837         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
12838         Iterate over exports.
12840 2022-09-26  Thomas Schwinge  <thomas@codesourcery.com>
12842         * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override
12843         the default.
12844         * config/nvptx/gen-multilib-matches.sh: New.
12845         * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
12846         (MULTILIB_EXCEPTIONS): Handle this.
12847         * doc/install.texi (Specific) <nvptx-*-none>: Document this.
12848         * doc/invoke.texi (Nvidia PTX Options): Likewise.
12850 2022-09-26  Thomas Schwinge  <thomas@codesourcery.com>
12852         * config.gcc (TM_MULTILIB_CONFIG) [nvptx]: Set to '$with_arch'.
12853         * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
12854         (MULTILIB_EXCEPTIONS): Handle it.
12856 2022-09-26  Thomas Schwinge  <thomas@codesourcery.com>
12858         * config.gcc (with_arch) [nvptx]: Set to 'sm_30'.
12859         * config/nvptx/nvptx.cc (nvptx_option_override): Assert that
12860         '-misa' appeared.
12861         * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define.
12862         * config/nvptx/nvptx.opt (misa=): Remove 'Init'.
12864 2022-09-26  Thomas Schwinge  <thomas@codesourcery.com>
12866         * config/nvptx/nvptx.h (ASM_SPEC): Define.
12868 2022-09-26  Jeff Law  <jeffreyalaw@gmail.com>
12870         * cfgcleanup.cc (bb_is_just_return): No longer static.
12871         * cfgcleanup.h (bb_is_just_return): Add prototype.
12872         * cfgrtl.cc (fixup_reorder_chain): Do not create an
12873         unconditional jump to a return block.  Conditionally
12874         remove unreachable blocks.
12876 2022-09-26  Tobias Burnus  <tobias@codesourcery.com>
12878         PR middle-end/106982
12879         * omp-low.cc (lower_oacc_reductions): Add some unshare_expr.
12881 2022-09-26  Martin Liska  <mliska@suse.cz>
12883         * config/s390/s390.cc (s390_rtx_costs): Remove dest variable
12884         and use only dst.
12886 2022-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12888         * config/aarch64/aarch64-arches.def (armv9.1-a): Define.
12889         (armv9.2-a): Likewise.
12890         (armv9.3-a): Likewise.
12891         * config/aarch64/aarch64.h (AARCH64_FL_V9_1): Likewise.
12892         (AARCH64_FL_V9_2): Likewise.
12893         (AARCH64_FL_V9_3): Likewise.
12894         (AARCH64_FL_FOR_ARCH9_1): Likewise.
12895         (AARCH64_FL_FOR_ARCH9_2): Likewise.
12896         (AARCH64_FL_FOR_ARCH9_3): Likewise.
12897         (AARCH64_ISA_V9_1): Likewise.
12898         (AARCH64_ISA_V9_2): Likewise.
12899         (AARCH64_ISA_V9_3): Likewise.
12900         * doc/invoke.texi (AArch64 Options): Document armv9.1-a, armv9.2-a,
12901         armv9.3-a values to -march.
12903 2022-09-26  Martin Liska  <mliska@suse.cz>
12905         * value-range.cc (tree_compare): Remove unused function.
12907 2022-09-26  Kewen Lin  <linkw@linux.ibm.com>
12909         PR target/96072
12910         * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): Update the
12911         condition for adding REG_CFA_DEF_CFA reg note with
12912         frame_pointer_needed_indeed.
12914 2022-09-26  Kewen Lin  <linkw@linux.ibm.com>
12916         PR target/100645
12917         * config/rs6000/vector.md (vec_shr_<mode>): Replace condition
12918         TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P.
12920 2022-09-26  Hongtao Liu  <hongtao.liu@intel.com>
12921             Liwei Xu  <liwei.xu@intel.com>
12923         PR target/53346
12924         * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps):
12925         New function.
12926         (ix86_expand_vec_perm_const_1): Insert
12927         expand_vec_perm_shufps_shufps at the end of 2-instruction
12928         expand sequence.
12930 2022-09-25  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
12932         * doc/sourcebuild.texi: Fix chapter level.
12934 2022-09-24  Jakub Jelinek  <jakub@redhat.com>
12936         PR c/107001
12937         * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement
12938         at the end.
12939         * omp-expand.cc (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
12940         is not stand-alone directive.  For GIMPLE_OMP_TASKGROUP, also don't
12941         update parent.
12942         (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
12943         cur_region back after new_omp_region.
12945 2022-09-23  Vineet Gupta  <vineetg@rivosinc.com>
12947         * config/riscv/riscv.h (LOCAL_SYM_P): New.
12948         (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
12950 2022-09-23  zhongjuzhe  <juzhe.zhong@rivai.ai>
12952         * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes.
12953         (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks.
12954         (ADJUST_ALIGNMENT): Adjust alignment.
12955         (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks.
12956         (RVV_MODES): New macro.
12957         (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes.
12958         (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes.
12960 2022-09-23  zhongjuzhe  <juzhe.zhong@rivai.ai>
12962         * common/config/riscv/riscv-common.cc: Change "static void" to "void".
12963         * config.gcc: Add riscv-selftests.o
12964         * config/riscv/predicates.md: Allow const_poly_int.
12965         * config/riscv/riscv-protos.h (riscv_reinit): New function.
12966         (riscv_parse_arch_string): change as exten function.
12967         (riscv_run_selftests): New function.
12968         * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly
12969         into const pool.
12970         (riscv_report_v_required): New function.
12971         (riscv_expand_op): New function.
12972         (riscv_expand_mult_with_const_int): New function.
12973         (riscv_legitimize_poly_move): Ditto.
12974         (riscv_legitimize_move): New function.
12975         (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix
12976         vector RA.
12977         (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
12978         -marh no 'v'.
12979         (riscv_reinit): New function.
12980         (TARGET_RUN_TARGET_SELFTESTS): New target hook support.
12981         * config/riscv/t-riscv: Add riscv-selftests.o.
12982         * config/riscv/riscv-selftests.cc: New file.
12984 2022-09-23  Richard Biener  <rguenther@suse.de>
12986         PR tree-optimization/106922
12987         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
12988         an arbitrary number of same valued skipped stores.
12990 2022-09-23  Aldy Hernandez  <aldyh@redhat.com>
12992         * value-range.cc (frange::set): Swap setters such that the one
12993         accepting REAL_VALUE_TYPE does all the work.
12995 2022-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12997         * config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
12998         (demeter): Update tunings to neoversev2.
12999         * config/aarch64/aarch64-tune.md: Regenerate.
13000         * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to
13001         neoversev2_addrcost_table.
13002         (demeter_regmove_cost): Rename to neoversev2_addrcost_table.
13003         (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost.
13004         (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost.
13005         (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info.
13006         (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info.
13007         (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info.
13008         (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info.
13009         Update references to above.
13010         (demeter_vector_cost): Rename to neoversev2_vector_cost.
13011         (demeter_tunings): Rename to neoversev2_tunings.
13012         (aarch64_vec_op_count::rename_cycles_per_iter): Use
13013         neoversev2_sve_issue_info instead of demeter_sve_issue_info.
13014         * doc/invoke.texi (AArch64 Options): Document neoverse-v2.
13016 2022-09-23  Aldy Hernandez  <aldyh@redhat.com>
13018         * range-op-float.cc (build_le): Use vrp_val_*.
13019         (build_lt): Same.
13020         (build_ge): Same.
13021         (build_gt): Same.
13022         * value-range.cc (frange::set): Chop ranges outside of the
13023         representable numbers for -ffinite-math-only.
13024         (frange::normalize_kind): Use vrp_val*.
13025         (frange::verify_range): Same.
13026         (frange::set_nonnegative): Same.
13027         (range_tests_floats): Remove tests that depend on -INF and +INF.
13028         * value-range.h (real_max_representable): Add prototype.
13029         (real_min_representable): Same.
13030         (vrp_val_max): Set max representable number for
13031         -ffinite-math-only.
13032         (vrp_val_min): Same but for min.
13033         (frange::set_varying): Use vrp_val*.
13035 2022-09-23  Aldy Hernandez  <aldyh@redhat.com>
13037         * real.cc (debug): New.
13039 2022-09-23  Aldy Hernandez  <aldyh@redhat.com>
13041         * value-range-pretty-print.cc (vrange_printer::print_real_value): New.
13042         (vrange_printer::visit): Call print_real_value.
13043         * value-range-pretty-print.h: New print_real_value.
13045 2022-09-23  Martin Liska  <mliska@suse.cz>
13047         * common.opt: Update -flto-compression-level documentation.
13048         * opts.cc (print_filtered_help): Do not append range to an
13049         option that uses \t syntax.
13051 2022-09-23  Jakub Jelinek  <jakub@redhat.com>
13053         * attribs.cc (decl_attributes): Improve diagnostics, instead of
13054         saying expected between 1 and 1, found 2 just say expected 1, found 2.
13056 2022-09-23  Hu, Lin1  <lin1.hu@intel.com>
13058         PR target/94962
13059         * config/i386/constraints.md (BH): New define_constraint.
13060         * config/i386/i386.cc (standard_sse_constant_p): Add return
13061         3/4 when operand matches new predicate.
13062         (standard_sse_constant_opcode): Add new alternative branch to
13063         return "vpcmpeqd".
13064         * config/i386/predicates.md
13065         (vector_all_ones_zero_extend_half_operand): New define_predicate.
13066         (vector_all_ones_zero_extend_quarter_operand): Ditto.
13067         * config/i386/sse.md: Add constraint to insn "mov<mode>_internal".
13069 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13071         * gimple-range-fold.cc (range_of_range_op): Handle no operands.
13072         (range_of_call): Do not check for builtins.
13073         (fold_using_range::range_of_builtin_call): Delete.
13074         (fold_using_range::range_of_builtin_int_call): Delete.
13075         * gimple-range-fold.h: Adjust prototypes.
13076         * gimple-range-op.cc (class cfn_parity): New.
13077         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13079 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13081         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
13082         for CFN_GOACC_DIM_*.
13083         * gimple-range-op.cc (class cfn_goacc_dim): New.
13084         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13086 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13088         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
13089         for CFN_BUILT_IN_STRLEN.
13090         * gimple-range-op.cc (class cfn_strlen): New.
13091         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13093 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13095         * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete.
13096         (range_of_builtin_int_call): Remove cases for
13097         CFN_BUILT_IN_UBSAN_CHECK.
13098         * gimple-range-op.cc (class cfn_ubsan): New.
13099         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13101 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13103         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
13104         for CFN_BUILT_IN_CLRSB.
13105         * gimple-range-op.cc (class cfn_clrsb): New.
13106         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13108 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13110         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
13111         for CFN_CTZ.
13112         * gimple-range-op.cc (class cfn_ctz): New.
13113         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13115 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13117         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
13118         for CFN_CLZ.
13119         * gimple-range-op.cc (class cfn_clz): New.
13120         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13122 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13124         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
13125         for CFN_FFS and CFN_POPCOUNT.
13126         * gimple-range-op.cc (class cfn_pocount): New.
13127         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13129 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13131         * gimple-range-fold.cc (get_letter_range): Move to new class.
13132         (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER
13133         and CFN_BUILT_IN_TOLOWER.
13134         * gimple-range-op.cc (class cfn_toupper_tolower): New.
13135         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13137 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13139         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
13140         for CFN_BUILT_IN_SIGNBIT.
13141         * gimple-range-op.cc (class cfn_signbit): New.
13142         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
13144 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13146         * gimple-range-fold.cc
13147         (fold_using_range::range_of_builtin_int_call): Remove case for
13148         CFN_BUILT_IN_CONSTANT_P.
13149         * gimple-range-op.cc (gimple_range_op_handler::supported_p):
13150         Check if a call also creates a range-op object.
13151         (gimple_range_op_handler): Also check builtin calls.
13152         (class cfn_constant_float_p): New.  Float CFN_BUILT_IN_CONSTANT_P.
13153         (class cfn_constant_p): New.  Integral CFN_BUILT_IN_CONSTANT_P.
13154         (gimple_range_op_handler::maybe_builtin_call): Set arguments and
13155         handler for supported built-in calls.
13156         * gimple-range-op.h (maybe_builtin_call): New prototype.
13158 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13160         * gimple-range-fold.cc (range_of_range_op): Set result to
13161         VARYING if the call to fold_range fails.
13162         * tree-data-ref.cc (compute_distributive_range): Ditto.
13163         * tree-vrp.cc (range_fold_binary_expr): Ditto.
13164         (range_fold_unary_expr): Ditto.
13165         * value-query.cc (range_query::get_tree_range): Ditto.
13167 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13169         * range-op-float.cc (range_operator_float::fold_range): New base
13170         method for "int = float op int".
13171         * range-op.cc (range_op_handler::fold_range): New case.
13172         * range-op.h: Update prototypes.
13174 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13176         * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
13177         operand 1 for second range if there is no operand 2.
13179 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13181         * Makefile.in (OBJS): Add gimple-range-op.o.
13182         * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use
13183         gimple_range_op_handler.
13184         * gimple-range-fold.cc (gimple_range_base_of_assignment): Move
13185         to a method in gimple_range_op_handler.
13186         (gimple_range_operand1): Ditto.
13187         (gimple_range_operand2): Ditto.
13188         (fold_using_range::fold_stmt): Use gimple_range_op_handler.
13189         (fold_using_range::range_of_range_op): Ditto.
13190         (fold_using_range::relation_fold_and_or): Ditto.
13191         (fur_source::register_outgoing_edges): Ditto.
13192         (gimple_range_ssa_names): Relocate to gimple-range-op.cc.
13193         * gimple-range-fold.h: Adjust prototypes.
13194         * gimple-range-gori.cc (gimple_range_calc_op1): Move
13195         to a method in gimple_range_op_handler.
13196         (gimple_range_calc_op2): Ditto.
13197         (gori_compute::compute_operand_range): Use
13198         gimple_range_op_handler.
13199         (gori_compute::compute_logical_operands): Ditto.
13200         (compute_operand1_range): Ditto.
13201         (gori_compute::compute_operand2_range): Ditto.
13202         (gori_compute::compute_operand1_and_operand2_range): Ditto.
13203         * gimple-range-gori.h: Adjust protoypes.
13204         * gimple-range-op.cc: New.  Supply gimple_range_op_handler methods.
13205         * gimple-range-op.h: New.  Supply gimple_range_op_handler class.
13206         * gimple-range.cc (gimple_ranger::prefill_name): Use
13207         gimple_range_op_handler.
13208         (gimple_ranger::prefill_stmt_dependencies): Ditto.
13209         * gimple-range.h: Include gimple-range-op.h.
13210         * range-op.cc (range_op_handler::range_op_handler): Adjust and
13211         remove gimple * parameter option.
13212         * range-op.h: Adjust prototypes.
13214 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13216         * range-op.cc (range_op_handler::set_op_handler): Set new fields.
13217         (ange_op_handler::range_op_handler): Likewise.
13218         (range_op_handler::operator bool): Remove.
13219         (range_op_handler::fold_range): Use appropriate handler.
13220         (range_op_handler::op1_range): Likewise.
13221         (range_op_handler::op2_range): Likewise.
13222         (range_op_handler::lhs_op1_relation): Likewise.
13223         (range_op_handler::lhs_op2_relation): Likewise.
13224         (range_op_handler::op1_op2_relation): Likewise.
13225         * range-op.h (class range_op_handler): Store handler pointers.
13226         (range_op_handler:: operator bool): Inline.
13228 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
13230         * tree-ssa-threadbackward.cc
13231         (back_threader::find_paths_to_names): Replace sequence with
13232         a call to gimple_range_ssa_names.
13234 2022-09-22  Martin Liska  <mliska@suse.cz>
13235             Fangrui Song  <i@maskray.me>
13237         * configure: Regenerate.
13238         * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1}
13239         and gcc_cv_as_compress_debug={0,1}.
13240         * doc/invoke.texi: Document the removal.
13241         * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore
13242         zlib-gnu.
13243         (ASM_COMPRESS_DEBUG_SPEC): Likewise.
13245 2022-09-22  Richard Biener  <rguenther@suse.de>
13247         PR tree-optimization/106922
13248         * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member.
13249         (vn_walk_cb_data::finish): Perform delayed verification of
13250         a skipped may-alias.
13251         (vn_reference_lookup_pieces): Likewise.
13252         (vn_reference_lookup): Likewise.
13253         (vn_reference_lookup_3): When skipping stores of the same
13254         value also handle constant stores that are more than a
13255         single VDEF away by delaying the verification.
13257 2022-09-22  Max Filippov  <jcmvbkbc@gmail.com>
13259         * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
13260         definition.
13262 2022-09-22  Max Filippov  <jcmvbkbc@gmail.com>
13264         * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk)
13265         (xtensa_output_mi_thunk): New functions.
13266         (TARGET_ASM_CAN_OUTPUT_MI_THUNK)
13267         (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions.
13268         (xtensa_prepare_expand_call): Use fixed register a8 as temporary
13269         when called with reload_completed set to 1.
13271 2022-09-22  Richard Biener  <rguenther@suse.de>
13273         PR tree-optimization/99407
13274         * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
13275         (dse_classify_store): Use data-ref analysis to disambiguate more uses.
13276         (pass_dse::use_dr_analysis_p): New pass parameter.
13277         (pass_dse::set_pass_param): Implement.
13278         (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
13279         * passes.def: Allow DR analysis for the DSE pass before loop.
13281 2022-09-22  Richard Biener  <rguenther@suse.de>
13283         * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
13284         function split out from ...
13285         (vn_nary_op_insert_pieces_predicated): ... here.
13287 2022-09-22  liuhongt  <hongtao.liu@intel.com>
13289         PR target/106994
13290         * config/i386/mmx.md (floorv2sf2): Fix typo, use
13291         register_operand instead of vector_operand for operands[1].
13293 2022-09-21  Aldy Hernandez  <aldyh@redhat.com>
13295         PR tree-optimization/106967
13296         * value-range.cc (frange::set): Set known NANs to undefined for
13297         flag_finite_math_only.
13299 2022-09-21  Aldy Hernandez  <aldyh@redhat.com>
13301         * value-range.cc (frange::combine_zeros): Call set_undefined.
13302         (frange::intersect_nans): Same.
13303         (frange::intersect): Same.
13304         (frange::verify_range): Undefined ranges do not have a type.
13305         * value-range.h (frange::set_undefined): Clear NAN flags and type.
13307 2022-09-21  Richard Biener  <rguenther@suse.de>
13309         PR tree-optimization/106984
13310         * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
13311         a separate statement.
13313 2022-09-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13315         * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
13316         EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
13317         OPTION_DEFAULT_SPECS.
13318         (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
13319         local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
13320         is given.
13321         (CONFIG_TUNE_SPEC): Define.
13322         (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
13324 2022-09-21  Aldy Hernandez  <aldyh@redhat.com>
13326         PR tree-optimization/106967
13327         * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
13328         (foperator_equal::op1_range): Same.
13329         (foperator_not_equal::fold_range): Same.
13330         (foperator_not_equal::op1_range): Same.
13331         (foperator_lt::fold_range): Same.
13332         (foperator_lt::op1_range): Same.
13333         (foperator_lt::op2_range): Same.
13334         (foperator_le::fold_range): Same.
13335         (foperator_le::op1_range): Same.
13336         (foperator_le::op2_range): Same.
13337         (foperator_gt::fold_range): Same.
13338         (foperator_gt::op1_range): Same.
13339         (foperator_gt::op2_range): Same.
13340         (foperator_ge::fold_range): Same.
13341         (foperator_ge::op1_range): Same.
13342         (foperator_ge::op2_range): Same.
13343         (foperator_unordered::op1_range): Same.
13344         (foperator_ordered::fold_range): Same.
13345         (foperator_ordered::op1_range): Same.
13346         (build_le): Assert that we don't have a NAN.
13347         (build_lt): Same.
13348         (build_gt): Same.
13349         (build_ge): Same.
13351 2022-09-21  liuhongt  <hongtao.liu@intel.com>
13353         PR tree-optimization/106963
13354         * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
13355         vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
13357 2022-09-20  Aldy Hernandez  <aldyh@redhat.com>
13359         * value-range.h (frange::maybe_isnan): Return false for
13360         undefined ranges.
13362 2022-09-20  Aldy Hernandez  <aldyh@redhat.com>
13364         * value-range.cc (frange::set_nonnegative): Set +NAN.
13365         (range_tests_signed_zeros): New test.
13366         * value-range.h (frange::update_nan): New overload to set NAN sign.
13368 2022-09-20  Richard Sandiford  <richard.sandiford@arm.com>
13370         PR target/106491
13371         * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
13372         (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
13373         markup to (new) extern declarations instead of to the main
13374         definition.
13376 2022-09-20  Richard Sandiford  <richard.sandiford@arm.com>
13378         PR tree-optimization/106794
13379         PR tree-optimization/106914
13380         * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
13381         Only consider loads that already have a permutation.
13382         (vect_optimize_slp_pass::start_choosing_layouts): Assert that
13383         loads with permutations are leaf nodes.  Prevent any kind of grouped
13384         access from changing layout if it doesn't have a load permutation.
13386 2022-09-20  Richard Sandiford  <richard.sandiford@arm.com>
13388         * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
13389         early-out optimisation to SSA_NAMEs.
13391 2022-09-20  Martin Liska  <mliska@suse.cz>
13393         * ctfc.cc (ctf_add_string): Replace "the the" with "the".
13394         * doc/md.texi: Likewise.
13395         * gimple-range-infer.cc (non_null_loadstore): Likewise.
13397 2022-09-20  liuhongt  <hongtao.liu@intel.com>
13399         PR target/106910
13400         * config/i386/mmx.md (nearbyintv2sf2): New expander.
13401         (rintv2sf2): Ditto.
13402         (ceilv2sf2): Ditto.
13403         (lceilv2sfv2si2): Ditto.
13404         (floorv2sf2): Ditto.
13405         (lfloorv2sfv2si2): Ditto.
13406         (btruncv2sf2): Ditto.
13407         (lrintv2sfv2si2): Ditto.
13408         (roundv2sf2): Ditto.
13409         (lroundv2sfv2si2): Ditto.
13410         (*mmx_roundv2sf2): New define_insn.
13412 2022-09-20  konglin1  <lingling.kong@intel.com>
13414         PR middle-end/105735
13415         * tree-scalar-evolution.cc
13416         (analyze_and_compute_bitop_with_inv_effect): New function.
13417         (final_value_replacement_loop): Enhanced to handle bitop
13418         with inv induction.
13420 2022-09-20  Xi Ruoyao  <xry111@xry111.site>
13422         * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
13423         -static-pie, pass -static -pie --no-dynamic-linker -z text to
13424         the linker, and do not pass --dynamic-linker.
13426 2022-09-20  Aldy Hernandez  <aldyh@redhat.com>
13428         * value-range.cc (frange::flush_denormals_to_zero): New.
13429         (frange::set): Call flush_denormals_to_zero.
13430         * value-range.h (class frange): Add flush_denormals_to_zero.
13432 2022-09-20  liuhongt  <hongtao.liu@intel.com>
13434         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
13435         latest Intel processors.
13437 2022-09-20  konglin1  <lingling.kong@intel.com>
13439         PR target/106887
13440         * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
13441         Fixed V16BF mode case.
13443 2022-09-19  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
13445         * targhooks.cc (default_zero_call_used_regs): Improve sorry
13446         message.
13448 2022-09-18  Julian Brown  <julian@codesourcery.com>
13450         * gimplify.cc (omp_segregate_mapping_groups): Update comment.
13451         (gimplify_adjust_omp_clauses): Move ATTACH and
13452         ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
13453         for offloaded OpenMP regions.
13455 2022-09-18  Jakub Jelinek  <jakub@redhat.com>
13457         PR middle-end/106831
13458         * value-range.cc (frange::singleton_p): Avoid propagating long
13459         doubles that may have multiple representations.
13461 2022-09-18  Aldy Hernandez  <aldyh@redhat.com>
13463         * range-op-float.cc (frange_add_zeros): Replace set_signbit with
13464         union of zero.
13465         * value-query.cc (range_query::get_tree_range): Remove set_signbit
13466         use.
13467         * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
13468         Remove.
13469         (vrange_printer::print_frange_nan): New.
13470         * value-range-pretty-print.h (print_frange_prop): Remove.
13471         (print_frange_nan): New.
13472         * value-range-storage.cc (frange_storage_slot::set_frange): Set
13473         kind and NAN fields.
13474         (frange_storage_slot::get_frange): Restore kind and NAN fields.
13475         * value-range-storage.h (class frange_storage_slot): Add kind and
13476         NAN fields.
13477         * value-range.cc (frange::update_nan): Remove.
13478         (frange::set_signbit): Remove.
13479         (frange::set): Adjust for NAN fields.
13480         (frange::normalize_kind): Remove m_props.
13481         (frange::combine_zeros): New.
13482         (frange::union_nans): New.
13483         (frange::union_): Handle new NAN fields.
13484         (frange::intersect_nans): New.
13485         (frange::intersect): Handle new NAN fields.
13486         (frange::operator=): Same.
13487         (frange::operator==): Same.
13488         (frange::contains_p): Same.
13489         (frange::singleton_p): Remove special case for signed zeros.
13490         (frange::verify_range): Adjust for new NAN fields.
13491         (frange::set_zero): Handle signed zeros.
13492         (frange::set_nonnegative): Same.
13493         (range_tests_nan): Adjust tests.
13494         (range_tests_signed_zeros): Same.
13495         (range_tests_signbit): Same.
13496         (range_tests_floats): Same.
13497         * value-range.h (class fp_prop): Remove.
13498         (FP_PROP_ACCESSOR): Remove.
13499         (class frange_props): Remove
13500         (frange::lower_bound): NANs don't have endpoints.
13501         (frange::upper_bound): Same.
13502         (frange_props::operator==): Remove.
13503         (frange_props::union_): Remove.
13504         (frange_props::intersect): Remove.
13505         (frange::update_nan): New.
13506         (frange::clear_nan): New.
13507         (frange::undefined_p): New.
13508         (frange::set_nan): New.
13509         (frange::known_finite): Adjust for new NAN representation.
13510         (frange::maybe_isnan): Same.
13511         (frange::known_isnan): Same.
13512         (frange::signbit_p): Same.
13513         * gimple-range-fold.cc (range_of_builtin_int_call): Rename
13514         known_signbit_p into signbit_p.
13516 2022-09-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13518         * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
13519         to prevent warning.
13521 2022-09-17  Jakub Jelinek  <jakub@redhat.com>
13523         PR tree-optimization/106958
13524         * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
13525         id >= l, cast op to type1, otherwise to pointer_sized_int_node.
13526         If type has pointer type, cast exp to pointer_sized_int_node
13527         even when id < l.
13529 2022-09-16  liuhongt  <hongtao.liu@intel.com>
13531         PR target/106910
13532         * config/i386/i386-builtins.cc
13533         (ix86_builtin_vectorized_function): Modernized with
13534         corresponding expanders.
13535         * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
13536         expander.
13537         (floor<mode>2): Ditto.
13538         (lfloor<mode><sseintvecmodelower>2): Ditto.
13539         (ceil<mode>2): Ditto.
13540         (lceil<mode><sseintvecmodelower>2): Ditto.
13541         (btrunc<mode>2): Ditto.
13542         (lround<mode><sseintvecmodelower>2): Ditto.
13543         (exp2<mode>2): Ditto.
13545 2022-09-15  Joseph Myers  <joseph@codesourcery.com>
13547         * ginclude/float.h (INFINITY): Define only if
13548         [__FLT_HAS_INFINITY__].
13550 2022-09-15  Richard Biener  <rguenther@suse.de>
13552         PR tree-optimization/106922
13553         * tree-ssa-pre.cc (translate_vuse_through_block): Only
13554         keep the VUSE if its def dominates PHIBLOCK.
13555         (prune_clobbered_mems): Rewrite logic so we check whether
13556         a value dies in a block when the VUSE def doesn't dominate it.
13558 2022-09-15  Richard Biener  <rguenther@suse.de>
13560         * tree.cc (build_common_tree_nodes): Initialize void_list_node
13561         here.
13563 2022-09-15  Jiufu Guo  <guojiufu@linux.ibm.com>
13565         PR target/106550
13566         * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
13568 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
13570         * range-op-float.cc (frange_add_zeros): New.
13571         (build_le): Call frange_add_zeros.
13572         (build_ge): Same.
13573         (foperator_equal::op1_range): Same.
13574         (foperator_not_equal::op1_range): Same.
13576 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
13578         * range-op-float.cc (build_le): Accept frange instead of number.
13579         (build_lt): Same.
13580         (build_ge): Same.
13581         (build_gt): Same.
13582         (foperator_lt::op1_range): Pass full range to build_*.
13583         (foperator_lt::op2_range): Same.
13584         (foperator_le::op1_range): Same.
13585         (foperator_le::op2_range): Same.
13586         (foperator_gt::op1_range): Same.
13587         (foperator_gt::op2_range): Same.
13588         (foperator_ge::op1_range): Same.
13589         (foperator_ge::op2_range): Same.
13591 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
13593         * value-range.cc (frange::set): Use set_nan.
13594         * value-range.h (frange::set_nan): Inline code originally in
13595         set().
13597 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
13599         * range-op-float.cc (frange_set_nan): Remove.
13600         (build_lt): Use set_nan, update_nan, clear_nan.
13601         (build_gt): Same.
13602         (foperator_equal::op1_range): Same.
13603         (foperator_not_equal::op1_range): Same.
13604         (foperator_lt::op1_range): Same.
13605         (foperator_lt::op2_range): Same.
13606         (foperator_le::op1_range): Same.
13607         (foperator_le::op2_range): Same.
13608         (foperator_gt::op1_range): Same.
13609         (foperator_gt::op2_range): Same.
13610         (foperator_ge::op1_range): Same.
13611         (foperator_ge::op2_range): Same.
13612         (foperator_unordered::op1_range): Same.
13613         (foperator_ordered::op1_range): Same.
13614         * value-query.cc (range_query::get_tree_range): Same.
13615         * value-range.cc (frange::set_nan): Same.
13616         (frange::update_nan): Same.
13617         (frange::union_): Same.
13618         (frange::intersect): Same.
13619         (range_tests_nan): Same.
13620         (range_tests_signed_zeros): Same.
13621         (range_tests_signbit): Same.
13622         (range_tests_floats): Same.
13623         * value-range.h (class frange): Add update_nan and clear_nan.
13624         (frange::set_nan): New.
13626 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
13628         * value-query.cc (range_query::get_tree_range): Remove check for overflow.
13629         * value-range-pretty-print.cc (vrange_printer::visit): Move read
13630         of type until after undefined_p is checked.
13631         * value-range.cc (frange::set): Remove asserts for REAL_CST.
13632         (frange::contains_p): Tidy up.
13633         (range_tests_nan):  Add comment.
13634         * value-range.h (frange::type): Check for undefined_p.
13635         (frange::set_undefined): Remove set of endpoints.
13637 2022-09-14  Julian Brown  <julian@codesourcery.com>
13639         * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
13640         GOMP_MAP_STRUCT (for reindexing).
13641         (omp_gather_mapping_groups): Reimplement using...
13642         (omp_gather_mapping_groups_1): This new function.  Stop processing at
13643         GATHER_SENTINEL.
13644         (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
13645         (omp_index_mapping_groups): Reimplement using...
13646         (omp_index_mapping_groups_1): This new function.  Handle
13647         REINDEX_SENTINEL.
13648         (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
13649         functions.
13650         (omp_tsort_mapping_groups_1): Adjust handling of base group being the
13651         same as current group.  Use omp_mapped_by_containing_struct.
13652         (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
13653         and omp_reindex_mapping_groups.  Robustify group deletion for reordered
13654         lists.
13655         (gimplify_scan_omp_clauses): Update calls to
13656         omp_build_struct_sibling_lists.
13658 2022-09-14  Julian Brown  <julian@codesourcery.com>
13660         * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
13661         (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
13662         (insert_struct_comp_map): Refactor function into...
13663         (build_omp_struct_comp_nodes): This new function.  Remove list handling
13664         and improve self-documentation.
13665         (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters.  Move
13666         code to strip outer parts of address out of function, but strip no-op
13667         conversions.
13668         (omp_mapping_group): Add DELETED field for use during reindexing.
13669         (omp_strip_components_and_deref, omp_strip_indirections): New functions.
13670         (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
13671         (omp_gather_mapping_groups): Initialise DELETED field for new groups.
13672         (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
13673         (omp_siblist_insert_node_after, omp_siblist_move_node_after,
13674         omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
13675         helper functions.
13676         (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
13677         node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
13678         (omp_build_struct_sibling_lists): New function.
13679         (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
13680         struct_seen_clause, struct_deref_set.  Call
13681         omp_build_struct_sibling_lists as pre-pass instead of handling sibling
13682         lists in the function's main processing loop.
13683         (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
13684         handling, unused now.
13685         * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
13686         struct references, and references to pointers to structs also.
13688 2022-09-14  Richard Biener  <rguenther@suse.de>
13690         PR tree-optimization/106938
13691         * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
13692         edges for all last stmts in a block.  Do EH cleanup
13693         only on the last stmt in a block.
13695 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
13697         PR tree-optimization/106936
13698         * value-query.cc (range_query::get_value_range): Remove assert.
13700 2022-09-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13702         * config/mips/mips.cc (mips_option_override): Drop unused variable.
13704 2022-09-14  Julian Brown  <julian@codesourcery.com>
13706         * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
13707         functions.
13708         (omp_tsort_mark): Add enum.
13709         (omp_mapping_group): Add struct.
13710         (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
13711         omp_group_last, omp_gather_mapping_groups, omp_group_base,
13712         omp_index_mapping_groups, omp_containing_struct,
13713         omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
13714         omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
13715         functions.
13716         (gimplify_scan_omp_clauses): Call above functions instead of
13717         omp_target_reorder_clauses, unless we've seen an error.
13718         * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
13719         sorted mapping groups.
13721 2022-09-14  Jakub Jelinek  <jakub@redhat.com>
13723         PR tree-optimization/106878
13724         * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
13725         reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
13726         the second argument is INTEGER_CST, BIT_AND_EXPR.
13727         * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
13728         (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
13729         POINTER_TYPE_P or OFFSET_TYPE.
13730         * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
13731         pointers cast them to pointer sized integers first.
13733 2022-09-14  Richard Biener  <rguenther@suse.de>
13735         PR tree-optimization/106934
13736         * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
13737         of bitfields.
13738         (maybe_rewrite_mem_ref_base): Likewise.
13740 2022-09-14  liuhongt  <hongtao.liu@intel.com>
13742         PR tree-optimization/106905
13743         * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
13744         false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
13745         LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
13747 2022-09-13  Roger Sayle  <roger@nextmovesoftware.com>
13749         PR target/106877
13750         * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
13751         in gcc_assert.
13753 2022-09-13  Max Filippov  <jcmvbkbc@gmail.com>
13755         Revert:
13756         2022-09-12  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
13758         * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
13759         New macro definition.
13760         (xtensa_constant_ok_for_cprop_p):
13761         Implement the hook as mentioned above.
13763 2022-09-13  Kewen Lin  <linkw@linux.ibm.com>
13765         PR target/104482
13766         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
13767         the equality check for argument number, and move this hunk ahead.
13769 2022-09-13  Kewen.Lin  <linkw@gcc.gnu.org>
13771         PR target/105485
13772         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
13773         the handling for unresolved overloaded builtin function.
13774         (rs6000_expand_builtin): Likewise.
13776 2022-09-13  Kewen Lin  <linkw@linux.ibm.com>
13778         * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
13779         m_nstores, m_reduc_factor, m_gather_load and member function
13780         determine_suggested_unroll_factor.
13781         (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
13782         m_reduc_factor and m_gather_load.
13783         (rs6000_cost_data::determine_suggested_unroll_factor): New function.
13784         (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
13785         * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
13786         (rs6000-vect-unroll-issue): Likewise.
13787         (rs6000-vect-unroll-reduc-threshold): Likewise.
13788         * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
13790 2022-09-13  Richard Biener  <rguenther@suse.de>
13792         PR middle-end/106909
13793         * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
13794         flag of a unreachable call.
13796 2022-09-13  Richard Biener  <rguenther@suse.de>
13798         PR tree-optimization/106913
13799         * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
13800         ft_reachable on EXIT_BLOCK.
13802 2022-09-13  Richard Sandiford  <richard.sandiford@arm.com>
13804         * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
13805         TARGET_FLOAT instead of TARGET_SIMD.
13806         (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
13807         TARGET_SIMD.
13808         (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
13809         in GPRs.
13810         (aarch64_classify_address): Treat little-endian structure moves
13811         like big-endian for TARGET_FLOAT && !TARGET_SIMD.
13812         (aarch64_secondary_memory_needed): New function.
13813         (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
13814         in the same way as TF, TI and TD.
13815         (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
13816         (aarch64_rtx_costs): Likewise.
13817         (aarch64_register_move_cost): Treat a pair of 64-bit vectors
13818         separately from a single 128-bit vector.  Handle the cost implied
13819         by aarch64_secondary_memory_needed.
13820         (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
13821         TARGET_SIMD.
13822         (aarch64_expand_vec_perm_const_1): Likewise.
13823         (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
13824         * config/aarch64/iterators.md (VTX): New iterator.
13825         * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
13826         (arch_enabled): Adjust accordingly.
13827         (@aarch64_reload_mov<TX:mode>): Extend to...
13828         (@aarch64_reload_mov<VTX:mode>): ...this.
13829         * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
13830         rather than TARGET_SIMD.
13831         (movmisalign<mode>): Likewise.
13832         (load_pair<DREG:mode><DREG2:mode>): Likewise.
13833         (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
13834         (load_pair<VQ:mode><VQ2:mode>): Likewise.
13835         (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
13836         (@aarch64_split_simd_mov<mode>): Likewise.
13837         (aarch64_get_low<mode>): Likewise.
13838         (aarch64_get_high<mode>): Likewise.
13839         (aarch64_get_half<mode>): Likewise.  Canonicalize to a move for
13840         lowpart extracts.
13841         (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
13842         TARGET_SIMD.  Use different w<-w and r<-w instructions for
13843         !TARGET_SIMD.  Disable immediate moves for !TARGET_SIMD but
13844         add an alternative specifically for w<-Z.
13845         (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
13846         TARGET_SIMD.  Likewise for the associated define_splits.  Disable
13847         FPR moves and immediate moves for !TARGET_SIMD but add an alternative
13848         specifically for w<-Z.
13849         (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
13850         TARGET_SIMD.  Restrict the existing alternatives to TARGET_SIMD
13851         but add a new r<-w one for !TARGET_SIMD.
13852         (*aarch64_get_high<mode>): New pattern.
13853         (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
13854         (store_pair_lanes<mode>): Likewise.
13855         (*aarch64_combine_internal<mode>): Likewise.  Restrict existing
13856         w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
13857         alternative for !TARGET_SIMD.
13858         (*aarch64_combine_internal_be<mode>): Likewise.
13859         (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
13860         Remove bogus arch attribute.
13861         (*aarch64_combinez_be<mode>): Likewise.
13862         (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
13863         TARGET_SIMD.
13864         (aarch64_combine<mode>): Likewise.
13865         (aarch64_rev_reglist<mode>): Likewise.
13866         (mov<mode>): Likewise.
13867         (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
13868         !TARGET_SIMD, regardless of endianness.  Extend associated
13869         define_splits in the same way, both for this pattern and the
13870         ones below.
13871         (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise.  Restrict w<-w
13872         alternative to TARGET_SIMD.
13873         (*aarch64_be_movoi): Likewise.
13874         (*aarch64_be_movci): Likewise.
13875         (*aarch64_be_movxi): Likewise.
13876         (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
13877         && !TARGET_SIMD, regardless of endianness.  Restrict w<-w alternative
13878         to TARGET_SIMD for tuples of 128-bit vectors.
13879         (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
13880         * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
13881         from DREG STP peephole.  Change TARGET_SIMD to TARGET_FLOAT in
13882         the VQ and VP_2E LDP and STP peepholes.
13884 2022-09-13  Richard Sandiford  <richard.sandiford@arm.com>
13886         * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
13887         condition.  Likewise for the related define_split.  Tweak formatting.
13889 2022-09-12  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
13891         * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
13892         New macro definition.
13893         (xtensa_constant_ok_for_cprop_p):
13894         Implement the hook as mentioned above.
13896 2022-09-12  Joseph Myers  <joseph@codesourcery.com>
13898         * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
13899         __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
13901 2022-09-12  Tobias Burnus  <tobias@codesourcery.com>
13903         * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
13904         a warning + not enabling offloading if -misa=sm_30 prevents
13905         reverse offload.
13906         (main): Use tool_name as progname for diagnostic.
13907         * config/gcn/mkoffload.cc (main): Likewise.
13909 2022-09-12  Aldy Hernandez  <aldyh@redhat.com>
13911         * value-range.cc (frange::set_signbit): Avoid changing sign when
13912         already in the correct sign.
13914 2022-09-12  Max Filippov  <jcmvbkbc@gmail.com>
13916         * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
13917         Recognize all 4 return registers.
13918         * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
13919         * config/xtensa/xtensa.md (untyped_call): New pattern.
13921 2022-09-12  Jonathan Wakely  <jwakely@redhat.com>
13923         * doc/extend.texi (Floating Types): Fix "_float128" typo.
13925 2022-09-10  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
13927         * config/xtensa/xtensa.cc (xtensa_constantsynth):
13928         Add new pattern for the abovementioned case.
13930 2022-09-10  Akari Takahashi  <akaritakahashioss@gmail.com>
13931             Segher Boessenkool  <segher@kernel.crashing.org>
13933         * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
13935 2022-09-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
13937         * config/xtensa/xtensa.md: Rewrite the split pattern that performs
13938         the abovementioned process so that insns that overwrite clobbered
13939         register no longer need to be contiguous.
13940         (DSC): Remove as no longer needed.
13942 2022-09-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
13944         * config/xtensa/xtensa.cc (machine_function): New boolean member as
13945         a flag that controls whether to emit the insns for stack pointer
13946         adjustment inside of the pro/epilogue.
13947         (xtensa_emit_adjust_stack_ptr): New function to share the common
13948         codes and to emit insns if not inhibited.
13949         (xtensa_expand_epilogue): Change to use the function mentioned
13950         above when using the CALL0 ABI.
13951         (xtensa_expand_prologue): Ditto.
13952         And also change to set the inhibit flag used by
13953         xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
13954         used for its own adjustment.
13956 2022-09-09  David Malcolm  <dmalcolm@redhat.com>
13958         * doc/invoke.texi (Static Analyzer Options): Add
13959         -Wanalyzer-exposure-through-uninit-copy.
13961 2022-09-09  David Malcolm  <dmalcolm@redhat.com>
13963         * Makefile.in (ANALYZER_OBJS): Add
13964         analyzer/known-function-manager.o.
13966 2022-09-09  Tobias Burnus  <tobias@codesourcery.com>
13968         * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
13969         (record_id): Store func name without quotes, store dim separately.
13970         (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
13971         at least sm_35, create '$offload_func_table' global array and init
13972         with reverse-offload function addresses.
13973         * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
13974         force_public attribute to force .visible.
13975         (nvptx_declare_function_name): For "omp target
13976         device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
13978 2022-09-09  Tobias Burnus  <tobias@codesourcery.com>
13980         * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
13981         similar to pre-existing .offload_var_table.
13983 2022-09-09  Joseph Myers  <joseph@codesourcery.com>
13985         * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
13986         New macro.
13988 2022-09-09  Kewen Lin  <linkw@linux.ibm.com>
13990         PR middle-end/106833
13991         * tree.cc (verify_opaque_type): New function.
13992         (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
13994 2022-09-09  Kwok Cheung Yeung  <kcy@codesourcery.com>
13996         * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
13997         FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
13998         * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
13999         * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
14000         MATH_UNOP_TRIG): New iterators.
14001         (math_unop): New attributes.
14002         (<math_unop><mode>2, <math_unop><mode>2<exec>,
14003         <math_unop><mode>2, <math_unop><mode>2<exec>,
14004         *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
14005         ldexp<mode>3, ldexp<mode>3<exec>,
14006         frexp<mode>_exp2, frexp<mode>_mant2,
14007         frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
14008         (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
14009         * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
14010         dconst1over2pi.
14011         (gcn_dconst1over2pi): New.
14012         (gcn_builtin_type_index): Add entry for v64df type.
14013         (v64df_type_node): New.
14014         (gcn_init_builtin_types): Initialize v64df_type_node.
14015         (gcn_expand_builtin_1): Expand new builtins to instructions.
14016         (print_operand): Fix assembler output for 1/(2*PI) constant.
14017         * config/gcn/gcn.md (unspec): Add new entries.
14019 2022-09-09  Richard Biener  <rguenther@suse.de>
14021         PR tree-optimization/106722
14022         * tree-predcom.cc (ref_at_iteration): Do not associate the
14023         constant part of the offset into the MEM_REF offset
14024         operand, across a non-zero offset.
14026 2022-09-09  Kito Cheng  <kito.cheng@sifive.com>
14028         * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
14029         Move forward for cover all all necessary functions for suppress
14030         unused function warnings.
14031         (riscv_multi_lib_check): Move forward, and tweak message to suppress
14032         -Werror=format-diag warning.
14034 2022-09-09  Richard Biener  <rguenther@suse.de>
14036         PR tree-optimization/106881
14037         * gimple-predicate-analysis.cc (simple_control_dep_chain):
14038         Add only non-fallthru edges and avoid the same set of edges
14039         as compute_control_dep_chain_pdom does.
14041 2022-09-09  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14043         * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
14044         of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
14045         * doc/tm.texi: Regenerate.
14047 2022-09-09  Martin Liska  <mliska@suse.cz>
14049         * optc-save-gen.awk: Always compare array option values with memcmp.
14051 2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
14053         PR c++/106838
14054         * doc/extend.texi (Type Traits): Fix requirements. Document
14055         __is_aggregate and __is_final.
14057 2022-09-08  Tim Lange  <mail@tim-lange.me>
14059         PR analyzer/106625
14060         * doc/invoke.texi:
14061         State that the checker also reasons about symbolic values.
14063 2022-09-08  Richard Sandiford  <richard.sandiford@arm.com>
14065         PR tree-optimization/106886
14066         * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
14067         Fix copying of scalar stmts.
14069 2022-09-08  Chung-Lin Tang  <cltang@codesourcery.com>
14071         * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
14073 2022-09-08  Richard Biener  <rguenther@suse.de>
14075         PR middle-end/106870
14076         * gimple-harden-conditionals.cc (insert_check_and_trap):
14077         Set the control-altering flag on the built IFN_TRAP.
14078         * gimple.cc (gimple_build_builtin_unreachable): Likewise.
14079         * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
14080         flag on the .ABNORMAL_DISPATCHER call.
14081         * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
14082         resetting the control altering flag for ECF_NORETURN calls.
14083         (cleanup_control_flow_bb): Set the control altering flag on
14084         discovered noreturn calls.
14085         * symtab-thunks.cc (expand_thunk): Set the control altering
14086         flag for the noreturn tailcall case.
14087         * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
14088         calls.
14090 2022-09-08  Jakub Jelinek  <jakub@redhat.com>
14092         * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
14093         Add doacross(sink:omp_cur_iteration-1) support.
14094         (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
14095         Adjust expand_omp_ordered_sink caller.
14096         (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
14097         non-NULL, set that variable to true at the start of outermost
14098         non-collapsed loop and set it to false at the end of innermost
14099         ordered loop.
14100         (expand_omp_for_generic): If fd->ordered, allocate
14101         1 + (fd->ordered - fd->collapse) further elements in counts array.
14102         Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
14103         fd->ordered - 1 loop if any.
14105 2022-09-08  Richard Biener  <rguenther@suse.de>
14107         PR tree-optimization/106881
14108         * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
14109         Add only non-fallthru edges and avoid the same set of edges
14110         as the caller does.
14112 2022-09-08  Aldy Hernandez  <aldyh@redhat.com>
14114         * gimple-range-fold.cc
14115         (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
14116         * range-op-float.cc (finite_operand_p): Same.
14117         (finite_operands_p): Same.
14118         (foperator_lt::fold_range): Same.
14119         (foperator_le::fold_range): Same.
14120         (foperator_gt::fold_range): Same.
14121         (foperator_ge::fold_range): Same.
14122         (foperator_unordered::fold_range): Same.
14123         (foperator_unordered::op1_range): Same.
14124         (foperator_ordered::fold_range): Same.
14125         * value-range.cc (frange::set_nan): Same.
14126         (frange::set_signbit): Same.
14127         (frange::union_): Same.
14128         (frange::intersect): Same.
14129         (frange::operator==): Same.
14130         (frange::singleton_p): Same.
14131         (frange::verify_range): Same.
14132         (range_tests_nan): Same.
14133         (range_tests_floats): Same.
14134         * value-range.h(frange::known_finite): New.
14135         (frange::maybe_inf): New.
14136         (frange::known_inf): New.
14137         (frange::maybe_nan): New.
14138         (frange::known_nan): New.
14139         (frange::known_signbit): New.
14141 2022-09-08  Iain Buclaw  <ibuclaw@gdcproject.org>
14143         * config/darwin-d.cc: Include tm.h.
14144         * config/dragonfly-d.cc: Likewise.
14145         * config/freebsd-d.cc: Remove memmodel.h.
14146         * config/glibc-d.cc: Likewise.
14147         * config/netbsd-d.cc: Include tm.h.
14148         * config/openbsd-d.cc: Likewise.
14149         * config/sol2-d.cc: Likewise.
14151 2022-09-08  Christophe Lyon  <christophe.lyon@arm.com>
14153         * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
14154         MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
14155         (mve_vqshluq_m_n_s<mode>): Likewise.
14156         (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
14157         instead of mve_imm_8/Rb.
14158         (mve_vqrshrunbq_n_s<mode>): Likewise.
14159         (mve_vqrshrntq_n_<supf><mode>): Likewise.
14160         (mve_vqrshruntq_n_s<mode>): Likewise.
14161         (mve_vrshrnbq_n_<supf><mode>): Likewise.
14162         (mve_vrshrntq_n_<supf><mode>): Likewise.
14163         (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
14164         (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
14165         (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
14166         (mve_vrshrntq_m_n_<supf><mode>): Likewise.
14167         (mve_vqrshrunbq_m_n_s<mode>): Likewise.
14168         (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
14169         of mve_imm_selective_upto_8/Rg.
14170         (mve_vsriq_m_n_<supf><mode>): Likewise.
14172 2022-09-08  Jiufu Guo  <guojiufu@linux.ibm.com>
14174         * config/rs6000/rs6000.md (splitter for set to and_mask constants):
14175         Use int_reg_operand (instead of int_reg_operand_not_pseudo).
14176         (splitter for multi-insn constant loads): Ditto.
14178 2022-09-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14180         * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
14181         -mvrsave is present.
14182         * config/rs6000/t-rtems: Add -mvrsave multilib variants for
14183         -mcpu=e6500.
14185 2022-09-07  Martin Liska  <mliska@suse.cz>
14187         * configure.ac: Restore detection of  HAVE_XCOFF_DWARF_EXTRAS.
14188         * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
14189         * configure: Regenerate.
14190         * config.in: Regenerate.
14192 2022-09-07  Surya Kumari Jangala  <jskumari@linux.ibm.com>
14194         PR rtl-optimization/105586
14195         * sched-rgn.cc (save_state_for_fallthru_edge): New function.
14196         (schedule_region): Use it for all blocks.
14198 2022-09-07  Joseph Myers  <joseph@codesourcery.com>
14200         * ginclude/stdalign.h [defined __STDC_VERSION__ &&
14201         __STDC_VERSION__ > 201710L]: Disable all content.
14202         * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
14203         > 201710L] (bool, true, false): Do not define.
14205 2022-09-07  Martin Liska  <mliska@suse.cz>
14207         PR bootstrap/106855
14208         * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
14209         * config/rs6000/rs6000.cc (rs6000_option_override_internal):
14210         Restore usage of XCOFF_DEBUGGING_INFO.
14211         * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
14212         * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
14213         XCOFF_DEBUGGING_INFO.
14214         (dw2_asm_output_nstring): Likewise.
14215         (USE_LINKONCE_INDIRECT): Likewise.
14216         * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
14217         (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
14218         (output_fde): Likewise.
14219         (output_call_frame_info): Likewise.
14220         (have_macinfo): Likewise.
14221         (add_AT_loc_list): Likewise.
14222         (add_AT_view_list): Likewise.
14223         (output_compilation_unit_header): Likewise.
14224         (output_pubnames): Likewise.
14225         (output_aranges): Likewise.
14226         (output_line_info): Likewise.
14227         (output_macinfo): Likewise.
14228         (dwarf2out_finish): Likewise.
14229         (dwarf2out_early_finish): Likewise.
14231 2022-09-07  Richard Biener  <rguenther@suse.de>
14233         PR tree-optimization/106866
14234         * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
14235         we changed cfun->calls_setjmp make sure to purge all
14236         abnormal call edges.
14238 2022-09-07  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
14240         * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
14241         float LE comparing with zero for fpuv3.
14242         * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
14243         features are enabled.
14245 2022-09-07  Richard Biener  <rguenther@suse.de>
14247         PR tree-optimization/106860
14248         * tree-ssa-loop-split.cc (split_loop): Find the exit to
14249         latch edge from the loop exit edge instead of from the
14250         latch.  Verify we're going to find it.
14252 2022-09-07  Richard Biener  <rguenther@suse.de>
14254         * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
14255         Adjust to take the region exit source as argument.
14256         (uninit_analysis::init_from_phi_def): Adjust.
14257         (uninit_analysis::init_use_preds): Mark the dominating region
14258         before computing control dependences.
14260 2022-09-07  Richard Sandiford  <richard.sandiford@arm.com>
14262         * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
14263         w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
14264         in that case.  Extend w<-r to w<-Z.
14265         (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
14266         (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
14267         available.
14268         (define_split): Do not apply the floating-point immediate-to-register
14269         split to zeros, even if MOVI is not available.
14271 2022-09-07  Richard Sandiford  <richard.sandiford@arm.com>
14273         * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
14274         Disallow use of FPRs in register asms for !TARGET_FLOAT.
14276 2022-09-07  Lulu Cheng  <chenglulu@loongson.cn>
14278         PR target/106828
14279         * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
14280         (TARGET_ASAN_SHADOW_OFFSET): New.
14282 2022-09-07  Jakub Jelinek  <jakub@redhat.com>
14284         * doc/invoke.texi (-Wno-unicode): Document.
14286 2022-09-07  Jiufu Guo  <guojiufu@linux.ibm.com>
14288         * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
14290 2022-09-07  Jiufu Guo  <guojiufu@linux.ibm.com>
14292         * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
14293         replacements.
14295 2022-09-07  liuhongt  <hongtao.liu@intel.com>
14297         PR tree-optimization/103144
14298         * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
14299         (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
14300         (vect_create_nonlinear_iv_init): New function.
14301         (vect_peel_nonlinear_iv_init): Ditto.
14302         (vect_create_nonlinear_iv_step): Ditto
14303         (vect_create_nonlinear_iv_vec_step): Ditto
14304         (vect_update_nonlinear_iv): Ditto
14305         (vectorizable_nonlinear_induction): Ditto.
14306         (vectorizable_induction): Call
14307         vectorizable_nonlinear_induction when induction_type is not
14308         vect_step_op_add.
14309         * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
14310         Update nonlinear iv for epilogue loop.
14311         * tree-vectorizer.h (enum vect_induction_op_type): New enum.
14312         (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
14314 2022-09-06  Richard Biener  <rguenther@suse.de>
14316         PR tree-optimization/106754
14317         * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
14318         New function, split out from compute_control_dep_chain.  Handle
14319         loop-exit like conditions here by pushing to the control vector.
14320         (compute_control_dep_chain): Adjust and streamline dumping.
14321         In the wrapper perform a post-dominator walk as well.
14322         (uninit_analysis::init_use_preds): Remove premature early exit.
14324 2022-09-06  Max Filippov  <jcmvbkbc@gmail.com>
14326         * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
14328 2022-09-06  Aldy Hernandez  <aldyh@redhat.com>
14330         * range-op-float.cc (build_le): Handle NANs and going past infinity.
14331         (build_lt): Same.
14332         (build_ge): Same.
14333         (build_gt): Same.
14334         (foperator_lt::op1_range): Avoid adjustments to range if build_*
14335         returned false.
14336         (foperator_lt::op2_range): Same.
14337         (foperator_le::op1_range): Same.
14338         (foperator_le::op2_range): Same.
14339         (foperator_gt::op1_range): Same.
14340         (foperator_gt::op2_range): Same.
14342 2022-09-06  Richard Biener  <rguenther@suse.de>
14344         * gimple-predicate-analysis.cc (compute_control_dep_chain):
14345         Add output flag to indicate whether we possibly have dropped
14346         any chains.  Return whether the info is complete from the
14347         wrapping overload.
14348         (uninit_analysis::init_use_preds): Adjust accordingly, with
14349         a workaround for PR106754.
14350         (uninit_analysis::init_from_phi_def): Properly guard the
14351         case where we complete an empty chain.
14353 2022-09-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14355         * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
14357 2022-09-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14359         * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
14360         type with same element type as arg0, and length as op2.
14362 2022-09-06  Richard Biener  <rguenther@suse.de>
14364         PR tree-optimization/106844
14365         * gimple-predicate-analysis.cc (compute_control_dep_chain):
14366         Return whether we found a chain.
14368 2022-09-06  Richard Biener  <rguenther@suse.de>
14370         PR tree-optimization/106841
14371         * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
14372         scatter/gather offset.
14374 2022-09-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14376         * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
14378 2022-09-06  Jakub Jelinek  <jakub@redhat.com>
14380         * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
14381         (gimple_omp_subcode):  Use GIMPLE_OMP_ORDERED instead of
14382         GIMPLE_OMP_TEAMS as upper bound.
14383         (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
14384         inline functions.
14385         * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
14386         NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
14387         (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
14388         with NULL OMP_ORDERED_BODY.
14389         * omp-low.cc (check_omp_nesting_restrictions): Use
14390         gimple_omp_ordered_standalone_p test instead of
14391         omp_find_clause (..., OMP_CLAUSE_DOACROSS).
14392         (lower_omp_ordered): Likewise.
14393         * omp-expand.cc (expand_omp, build_omp_regions_1,
14394         omp_make_gimple_edges): Likewise.
14396 2022-09-06  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
14398         * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
14399         (cskyv2_addcc_invert): Likewise.
14401 2022-09-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
14403         * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
14404         `insn'.
14405         (bpf_expand_epilogue): Likewise.
14407 2022-09-06  liuhongt  <hongtao.liu@intel.com>
14409         * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
14410         Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
14411         * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
14412         (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
14413         (avx512f_vcvtps2ph512_mask_sae): New expander
14415 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
14417         * gimple-range-fold.cc
14418         (fold_using_range::range_of_builtin_int_call): Ignore sign bit
14419         when there's the possibility of a NAN.
14421 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
14423         * gimple-range-fold.cc
14424         (fold_using_range::range_of_builtin_int_call): Fold a set signbit
14425         in __builtin_signbit to nonzero.
14427 2022-09-05  Alexander Monakov  <amonakov@ispras.ru>
14429         PR target/106453
14430         * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
14431         bits of operand 0 are consumed, and the result is zero-extended
14432         to 64 bits.
14434 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
14436         PR middle-end/106831
14437         * value-range.h (frange::supports_p): Disable decimal floats.
14438         * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
14439         check.
14440         (frange_drop_ninf): Same.
14442 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
14444         PR middle-end/106824
14445         * value-range.cc (frange::set_nan): Set undefined when updating a
14446         NAN to a non-NAN.
14448 2022-09-05  Kito Cheng  <kito.cheng@sifive.com>
14450         * config/riscv/riscv.cc (riscv_option_override): Fix wrong
14451         condition for MASK_DIV and simplify incompatible checking.
14452         * config/riscv/riscv.md (muldi3): Adding parentheses.
14454 2022-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14456         * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
14457         string is a valid -mcpu string and emit hint.
14459 2022-09-05  LiaoShihua  <shihua@iscas.ac.cn>
14461         * common/config/riscv/riscv-common.cc: Add Zmmul.
14462         * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
14463         (TARGET_ZMMUL): Ditto.
14464         * config/riscv/riscv.cc (riscv_option_override):Ditto.
14465         * config/riscv/riscv.md: Add Zmmul
14466         * config/riscv/riscv.opt: Ditto.
14468 2022-09-05  Richard Biener  <rguenther@suse.de>
14470         * tree-cfg.h (get_cases_for_edge): Declare.
14471         * tree-cfg.cc (get_cases_for_edge): Export.
14472         * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
14473         Start and end recording case labels.
14474         * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
14475         (predicate::init_from_control_deps): Use get_cases_for_edge.
14477 2022-09-05  Richard Biener  <rguenther@suse.de>
14479         * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
14480         (compute_control_dep_chain): Move uninit-control-dep-attempts
14481         checking where it also counts the post-dominator check
14482         invocations.
14484 2022-09-05  Richard Biener  <rguenther@suse.de>
14486         * gimple-predicate-analysis.h (predicate::debug): New.
14487         (predicate::dump): Add FILE * argument, add base overload.
14488         * gimple-predicate-analysis.cc (debug): New.
14489         (dump_pred_info): Add FILE * argument.
14490         (dump_pred_chain): Likewise.
14491         (predicate::dump): Split out preamble into overload.  Add
14492         FILE * argument.
14493         (predicate::debug): New.
14494         (predicate::simplify): Adjust.
14495         (predicate::normalize): Likewise.
14496         (predicate::init_from_control_deps): Likewise.
14498 2022-09-05  Richard Sandiford  <richard.sandiford@arm.com>
14500         * config/aarch64/aarch64-protos.h
14501         (aarch64_init_simd_builtins): Remove prototype.
14502         * config/aarch64/aarch64-builtins.cc
14503         (aarch64_simd_builtins_initialized_p): Delete.
14504         (aarch64_init_simd_builtins): Make static.  Remove protection
14505         against multiple calls.
14506         * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
14507         lazy SIMD builtin initialization.
14508         * config/aarch64/aarch64.cc
14509         (aarch64_option_valid_attribute_p): Likewise.
14511 2022-09-05  Xi Ruoyao  <xry111@xry111.site>
14513         * config/loongarch/genopts/loongarch.opt.in: Add
14514         -mdirect-extern-access option.
14515         * config/loongarch/loongarch.opt: Regenerate.
14516         * config/loongarch/loongarch.cc
14517         (loongarch_symbol_binds_local_p): Return true if
14518         TARGET_DIRECT_EXTERN_ACCESS.
14519         (loongarch_option_override_internal): Complain if
14520         -mdirect-extern-access is used with -fPIC or -fpic.
14521         * doc/invoke.texi: Document -mdirect-extern-access for
14522         LoongArch.
14524 2022-09-05  Martin Liska  <mliska@suse.cz>
14526         * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
14527         DEBUGGER_REGNO.
14528         * doc/tm.texi: Regenerate.
14530 2022-09-05  Martin Liska  <mliska@suse.cz>
14532         * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
14533         Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
14534         (aarch64_debugger_regno): Likewise.
14535         * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
14536         (aarch64_debugger_regno): Likewise.
14537         * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
14538         (DEBUGGER_REGNO): Likewise.
14539         (DWARF_FRAME_REGNUM): Likewise.
14540         * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
14541         * config/arc/arc.cc (arc_init_reg_tables): Likewise.
14542         * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
14543         (DEBUGGER_REGNO): Likewise.
14544         * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
14545         (arm_debugger_regno): Likewise.
14546         * config/arm/arm.cc (arm_dbx_regno): Likewise.
14547         (arm_debugger_regno): Likewise.
14548         * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
14549         (DEBUGGER_REGNO): Likewise.
14550         * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
14551         (DEBUGGER_REGNO): Likewise.
14552         * config/c6x/c6x.cc: Likewise.
14553         * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
14554         (DEBUGGER_REGNO): Likewise.
14555         * config/cris/cris.h (enum reg_class): Likewise.
14556         (DBX_REGISTER_NUMBER): Likewise.
14557         (DEBUGGER_REGNO): Likewise.
14558         * config/csky/csky.cc (enum reg_class): Likewise.
14559         * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
14560         (DBX_REGISTER_NUMBER): Likewise.
14561         (DEBUGGER_REGNO): Likewise.
14562         * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
14563         (DEBUGGER_REGNO): Likewise.
14564         * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
14565         (DEBUGGER_REGNO): Likewise.
14566         * config/gcn/gcn.cc (print_operand): Likewise.
14567         * config/i386/bsd.h (ASM_QUAD): Likewise.
14568         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
14569         (DEBUGGER_REGNO): Likewise.
14570         (DWARF_FRAME_REGNUM): Likewise.
14571         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
14572         (DEBUGGER_REGNO): Likewise.
14573         * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
14574         (DEBUGGER_REGNO): Likewise.
14575         * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
14576         (DEBUGGER_REGNO): Likewise.
14577         * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
14578         (DEBUGGER_REGNO): Likewise.
14579         * config/i386/gas.h: Likewise.
14580         * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
14581         (DEBUGGER_REGNO): Likewise.
14582         * config/i386/i386.cc (enum reg_class): Likewise.
14583         * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
14584         (DEBUGGER_REGNO): Likewise.
14585         * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
14586         (DEBUGGER_REGNO): Likewise.
14587         * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
14588         (DEBUGGER_REGNO): Likewise.
14589         * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
14590         (DEBUGGER_REGNO): Likewise.
14591         * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14592         (DEBUGGER_REGNO): Likewise.
14593         * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
14594         (DEBUGGER_REGNO): Likewise.
14595         * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
14596         (DEBUGGER_REGNO): Likewise.
14597         * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14598         (DEBUGGER_REGNO): Likewise.
14599         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
14600         (DEBUGGER_REGNO): Likewise.
14601         * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
14602         (DEBUGGER_REGNO): Likewise.
14603         * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
14604         (ia64_debugger_regno): Likewise.
14605         * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
14606         (ia64_dbx_regno): Likewise.
14607         (ia64_debugger_regno): Likewise.
14608         (process_cfa_adjust_cfa): Likewise.
14609         (process_cfa_register): Likewise.
14610         (ia64_asm_unwind_emit): Likewise.
14611         * config/ia64/ia64.h: Likewise.
14612         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14613         (DEBUGGER_REGNO): Likewise.
14614         * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
14615         (DEBUGGER_REGNO): Likewise.
14616         * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
14617         * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
14618         (DEBUGGER_REGNO): Likewise.
14619         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
14620         (DEBUGGER_REGNO): Likewise.
14621         * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
14622         (DEBUGGER_REGNO): Likewise.
14623         (__transfer_from_trampoline): Likewise.
14624         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
14625         (DEBUGGER_REGNO): Likewise.
14626         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
14627         (DBX_REGISTER_NUMBER): Likewise.
14628         (DEBUGGER_REGNO): Likewise.
14629         * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
14630         * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
14631         (DEBUGGER_REGNO): Likewise.
14632         (GP_DBX_FIRST): Likewise.
14633         (GP_DEBUGGER_FIRST): Likewise.
14634         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
14635         (DEBUGGER_REGNO): Likewise.
14636         * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
14637         (mmix_debugger_regno): Likewise.
14638         * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
14639         (mmix_debugger_regno): Likewise.
14640         * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
14641         (DEBUGGER_REGNO): Likewise.
14642         * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
14643         (nds32_debugger_regno): Likewise.
14644         * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
14645         (nds32_debugger_regno): Likewise.
14646         (nds32_use_blocks_for_constant_p): Likewise.
14647         * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
14648         (DEBUGGER_REGNO): Likewise.
14649         * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
14650         (DEBUGGER_REGNO): Likewise.
14651         * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
14652         (DEBUGGER_REGNO): Likewise.
14653         * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
14654         (DEBUGGER_REGNO): Likewise.
14655         * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
14656         (DEBUGGER_REGNO): Likewise.
14657         * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
14658         (rs6000_debugger_regno): Likewise.
14659         * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
14660         (rs6000_debugger_regno): Likewise.
14661         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
14662         (DEBUGGER_REGNO): Likewise.
14663         (DWARF2_FRAME_REG_OUT): Likewise.
14664         * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
14665         (DEBUGGER_REGNO): Likewise.
14666         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
14667         (DEBUGGER_REGNO): Likewise.
14668         * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
14669         (DEBUGGER_REGNO): Likewise.
14670         * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
14671         (DEBUGGER_REGNO): Likewise.
14672         (SH_DBX_REGISTER_NUMBER): Likewise.
14673         (SH_DEBUGGER_REGNO): Likewise.
14674         * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
14675         (DEBUGGER_REGNO): Likewise.
14676         * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
14677         (DEBUGGER_REGNO): Likewise.
14678         * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
14679         (DEBUGGER_REGNO): Likewise.
14680         * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
14681         (DEBUGGER_REGNO): Likewise.
14682         * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
14683         (xtensa_debugger_regno): Likewise.
14684         * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
14685         (xtensa_debugger_regno): Likewise.
14686         * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
14687         (DEBUGGER_REGNO): Likewise.
14688         * defaults.h (DBX_REGISTER_NUMBER): Likewise.
14689         (DEBUGGER_REGNO): Likewise.
14690         (DWARF_FRAME_REGNUM): Likewise.
14691         * doc/tm.texi: Likewise.
14692         * doc/tm.texi.in: Likewise.
14693         * dwarf2out.cc (dbx_reg_number): Likewise.
14694         (debugger_reg_number): Likewise.
14695         (reg_loc_descriptor): Likewise.
14696         (multiple_reg_loc_descriptor): Likewise.
14697         (mem_loc_descriptor): Likewise.
14698         * except.cc: Likewise.
14700 2022-09-05  konglin1  <lingling.kong@intel.com>
14702         PR target/106742
14703         * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
14704         Handle V8BF mode.
14705         (expand_vec_perm_broadcast_1): Ditto.
14706         * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
14707         (vec_set<mode>_0): Add @ to it.
14708         (@vec_set<mode>_0): Ditto.
14709         (vec_interleave_high<mode><mask_name>): Ditto.
14710         (@vec_interleave_high<mode><mask_name>): Ditto.
14711         (vec_interleave_low<mode><mask_name>): Ditto.
14712         (@vec_interleave_low<mode><mask_name>): Ditto.
14713         * config/i386/subst.md (SUBST_V): Add BF vector mode.
14715 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
14717         * value-range.cc (early_nan_resolve): Remove.
14718         (frange::intersect): Handle NANs.
14720 2022-09-04  Aldy Hernandez  <aldyh@redhat.com>
14722         * value-range.cc (frange::union_): Do not drop properties when
14723         unioning a NAN with something else.
14724         (range_tests_signed_zeros): Add tests.
14726 2022-09-04  Aldy Hernandez  <aldyh@redhat.com>
14728         * real.cc (encode_ieee_single): Use real_isdenormal.
14729         (encode_ieee_double): Same.
14730         (encode_ieee_extended): Same.
14731         (encode_ieee_quad): Same.
14732         (encode_ieee_half): Same.
14733         (encode_arm_bfloat_half): Same.
14734         * real.h (real_isdenormal): New.
14736 2022-09-03  Aldy Hernandez  <aldyh@redhat.com>
14738         * value-range.cc (frange::singleton_p): Move NAN check to the top.
14740 2022-09-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14742         * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
14744 2022-09-03  Jakub Jelinek  <jakub@redhat.com>
14746         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
14747         (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
14748         and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
14749         (enum omp_clause_doacross_kind): New type.
14750         (struct tree_omp_clause): Add subcode.doacross_kind member.
14751         * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
14752         (OMP_CLAUSE_DOACROSS_KIND): Define.
14753         (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
14754         (OMP_CLAUSE_DOACROSS_DEPEND): Define.
14755         (OMP_CLAUSE_ORDERED_DOACROSS): Define.
14756         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
14757         OMP_CLAUSE_DOACROSS entries.
14758         * tree-nested.cc (convert_nonlocal_omp_clauses,
14759         convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
14760         * tree-pretty-print.cc (dump_omp_clause): Don't handle
14761         OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.  Handle
14762         OMP_CLAUSE_DOACROSS.
14763         * gimplify.cc (gimplify_omp_depend): Don't handle
14764         OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
14765         (gimplify_scan_omp_clauses): Likewise.  Handle OMP_CLAUSE_DOACROSS.
14766         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
14767         (find_standalone_omp_ordered): New function.
14768         (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
14769         body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
14770         set OMP_CLAUSE_ORDERED_DOACROSS.
14771         (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
14772         OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
14773         diagnostics that presence or absence of ordered clause parameter
14774         is irrelevant.  Handle doacross(sink:omp_cur_iteration-1).  Use
14775         actual user name of the clause - doacross or depend - in diagnostics.
14776         * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
14777         if !OMP_CLAUSE_ORDERED_DOACROSS (t).  If
14778         OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
14779         set fd->ordered to -1 and set it after the loop in that case to
14780         fd->collapse.
14781         * omp-low.cc (check_omp_nesting_restrictions): Don't handle
14782         OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
14783         OMP_CLAUSE_DOACROSS.  Use actual user name of the clause - doacross
14784         or depend - in diagnostics.  Diagnose mixing of stand-alone and
14785         block associated ordered constructs binding to the same loop.
14786         (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
14787         instead handle OMP_CLAUSE_DOACROSS.
14788         (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
14789         OMP_CLAUSE_DEPEND.
14790         (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
14791         OMP_CLAUSE_DEPEND_SINK.
14792         * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
14793         doacross(sink:omp_cur_iteration-1).
14794         (expand_omp_ordered_source_sink): Use
14795         OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
14796         OMP_CLAUSE_DEPEND_SINK_NEGATIVE.  Use actual user name of the clause
14797         - doacross or depend - in diagnostics.
14798         (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
14799         OMP_CLAUSE_DEPEND.
14800         (build_omp_regions_1): Likewise.
14801         (omp_make_gimple_edges): Likewise.
14802         * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
14803         * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
14804         * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
14806 2022-09-02  David Malcolm  <dmalcolm@redhat.com>
14808         PR c/90885
14809         * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
14811 2022-09-02  Iain Buclaw  <ibuclaw@gdcproject.org>
14813         PR d/105659
14814         * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
14815         * config/aarch64/aarch64-d.cc: Include tm_d.h.
14816         * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
14817         config/aarch64/aarch64-d.h.
14818         (aarch64_d_register_target_info): Likewise.
14819         * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
14820         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
14821         * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
14822         tm_p.h.
14823         * config/arm/arm-protos.h (arm_d_target_versions): Move to
14824         config/arm/arm-d.h.
14825         (arm_d_register_target_info): Likewise.
14826         * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
14827         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
14828         * config/default-d.cc: Remove memmodel.h include.
14829         * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
14830         * config/glibc-d.cc: Likewise.
14831         * config/i386/i386-d.cc: Include tm_d.h.
14832         * config/i386/i386-protos.h (ix86_d_target_versions): Move to
14833         config/i386/i386-d.h.
14834         (ix86_d_register_target_info): Likewise.
14835         (ix86_d_has_stdcall_convention): Likewise.
14836         * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
14837         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
14838         (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
14839         * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
14840         * config/mips/mips-d.cc: Include tm_d.h.
14841         * config/mips/mips-protos.h (mips_d_target_versions): Move to
14842         config/mips/mips-d.h.
14843         (mips_d_register_target_info): Likewise.
14844         * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
14845         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
14846         * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
14847         * config/openbsd-d.cc: Likewise.
14848         * config/pa/pa-d.cc: Include tm_d.h.
14849         * config/pa/pa-protos.h (pa_d_target_versions): Move to
14850         config/pa/pa-d.h.
14851         (pa_d_register_target_info): Likewise.
14852         * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
14853         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
14854         * config/riscv/riscv-d.cc: Include tm_d.h.
14855         * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
14856         config/riscv/riscv-d.h.
14857         (riscv_d_register_target_info): Likewise.
14858         * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
14859         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
14860         * config/rs6000/rs6000-d.cc: Include tm_d.h.
14861         * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
14862         config/rs6000/rs6000-d.h.
14863         (rs6000_d_register_target_info): Likewise.
14864         * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
14865         (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
14866         * config/s390/s390-d.cc: Include tm_d.h.
14867         * config/s390/s390-protos.h (s390_d_target_versions): Move to
14868         config/s390/s390-d.h.
14869         (s390_d_register_target_info): Likewise.
14870         * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
14871         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
14872         * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
14873         * config/sparc/sparc-d.cc: Include tm_d.h.
14874         * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
14875         config/sparc/sparc-d.h.
14876         (sparc_d_register_target_info): Likewise.
14877         * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
14878         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
14879         * configure: Regenerate.
14880         * configure.ac (tm_d_file): Remove defaults.h.
14881         (tm_d_include_list): Remove options.h and insn-constants.h.
14882         * config/aarch64/aarch64-d.h: New file.
14883         * config/arm/arm-d.h: New file.
14884         * config/i386/i386-d.h: New file.
14885         * config/mips/mips-d.h: New file.
14886         * config/pa/pa-d.h: New file.
14887         * config/riscv/riscv-d.h: New file.
14888         * config/rs6000/rs6000-d.h: New file.
14889         * config/s390/s390-d.h: New file.
14890         * config/sparc/sparc-d.h: New file.
14892 2022-09-02  Aldy Hernandez  <aldyh@redhat.com>
14894         * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
14895         (fold_builtin_fpclassify): Same.
14896         * fold-const-call.cc (fold_const_call_cc): Same.
14897         * match.pd: Same.
14898         * omp-low.cc (omp_reduction_init_op): Same.
14899         * realmpfr.cc (real_from_mpfr): Same.
14900         * tree.cc (build_complex_inf): Same.
14902 2022-09-02  Peter Bergner  <bergner@linux.ibm.com>
14904         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
14905         NOP_EXPR for MMA pointer casting.
14907 2022-09-02  Richard Sandiford  <richard.sandiford@arm.com>
14909         * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
14910         Reduce the fallback cost to 1.  Only use it if the number of
14911         input lanes is equal to the number of output lanes.
14913 2022-09-02  Richard Sandiford  <richard.sandiford@arm.com>
14915         PR tree-optimization/106787
14916         * tree-vect-slp.cc (vect_map_to_instance): New function, split out
14917         from...
14918         (vect_bb_partition_graph_r): ...here.  Replace the visited set
14919         with a map from nodes to instances.  Ensure that a node only
14920         appears in one partition.
14921         (vect_bb_partition_graph): Update accordingly.
14923 2022-09-02  Richard Biener  <rguenther@suse.de>
14925         * timevar.def (TV_TREE_RPO_VN): New.
14926         * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
14927         * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
14928         (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
14929         (pass_fre::execute): Adjust.
14930         * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
14932 2022-09-02  Richard Biener  <rguenther@suse.de>
14934         PR tree-optimization/106809
14935         * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
14936         more than one successor before doing extra work.
14938 2022-09-02  Kito Cheng  <kito.cheng@sifive.com>
14940         * common/config/riscv/riscv-common.cc: Include <vector>.
14941         (struct riscv_multi_lib_info_t): New.
14942         (riscv_subset_list::match_score): Ditto.
14943         (find_last_appear_switch): Ditto.
14944         (prefixed_with): Ditto.
14945         (struct multi_lib_info_t): Ditto.
14946         (riscv_current_arch_str): Ditto.
14947         (riscv_current_abi_str): Ditto.
14948         (riscv_multi_lib_info_t::parse): Ditto.
14949         (riscv_check_cond): Ditto.
14950         (riscv_check_conds): Ditto.
14951         (riscv_compute_multilib): Ditto.
14952         (TARGET_COMPUTE_MULTILIB): Defined.
14953         * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
14954         doing link.
14955         (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
14956         * config/riscv/riscv.h (riscv_multi_lib_check): New.
14957         (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
14958         * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
14960 2022-09-02  Kito Cheng  <kito.cheng@sifive.com>
14962         * common/common-target.def (compute_multilib): New.
14963         * common/common-targhooks.h (default_compute_multilib): New.
14964         * common/common-targhooks.cc (default_compute_multilib): New.
14965         * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
14966         * doc/tm.texi: Regen.
14967         * gcc.cc: Include common/common-target.h.
14968         (set_multilib_dir) Call targetm_common.compute_multilib.
14969         (SWITCH_LIVE): Move to opts.h.
14970         (SWITCH_FALSE): Ditto.
14971         (SWITCH_IGNORE): Ditto.
14972         (SWITCH_IGNORE_PERMANENTLY): Ditto.
14973         (SWITCH_KEEP_FOR_GCC): Ditto.
14974         (struct switchstr): Ditto.
14975         * opts.h (SWITCH_LIVE): Move from gcc.c.
14976         (SWITCH_FALSE): Ditto.
14977         (SWITCH_IGNORE): Ditto.
14978         (SWITCH_IGNORE_PERMANENTLY): Ditto.
14979         (SWITCH_KEEP_FOR_GCC): Ditto.
14980         (struct switchstr): Ditto.
14982 2022-09-02  Martin Liska  <mliska@suse.cz>
14984         * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
14985         debugging format.
14987 2022-09-02  Martin Liska  <mliska@suse.cz>
14989         * Makefile.in: Remove -gstabs option support, DBX-related
14990         macros and DBX debugging info support.
14991         * collect2.cc (scan_prog_file): Likewise.
14992         * common.opt: Likewise.
14993         * config.gcc: Likewise.
14994         * config.in: Likewise.
14995         * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
14996         * config/alpha/alpha.cc: Likewise.
14997         * config/alpha/elf.h (ASM_SPEC): Likewise.
14998         * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
14999         (DBX_CONTIN_LENGTH): Likewise.
15000         * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
15001         (DBX_CONTIN_LENGTH): Likewise.
15002         * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
15003         * config/darwin.h (DSYMUTIL_SPEC): Likewise.
15004         (ASM_DEBUG_SPEC): Likewise.
15005         (DBX_DEBUGGING_INFO): Likewise.
15006         (DBX_USE_BINCL): Likewise.
15007         (DBX_CONTIN_LENGTH): Likewise.
15008         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
15009         * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
15010         (DBX_CONTIN_LENGTH): Likewise.
15011         * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
15012         (DBX_CONTIN_LENGTH): Likewise.
15013         * config/i386/gas.h (DBX_NO_XREFS): Likewise.
15014         (DBX_CONTIN_LENGTH): Likewise.
15015         * config/ia64/ia64.h: Likewise.
15016         * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
15017         * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
15018         * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
15019         (DBX_CONTIN_LENGTH): Likewise.
15020         (DBX_CONTIN_CHAR): Likewise.
15021         * config/mips/mips.cc (mips_output_filename): Likewise.
15022         (mips_option_override): Likewise.
15023         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
15024         (DBX_DEBUGGING_INFO): Likewise.
15025         (DBX_CONTIN_LENGTH): Likewise.
15026         (DBX_REGISTER_NUMBER): Likewise.
15027         (GP_DBX_FIRST): Likewise.
15028         (FP_DBX_FIRST): Likewise.
15029         (MD_DBX_FIRST): Likewise.
15030         * config/nvptx/nvptx.cc: Likewise.
15031         * config/openbsd.h (DBX_NO_XREFS): Likewise.
15032         * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
15033         * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
15034         (DBX_CONTIN_LENGTH): Likewise.
15035         * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
15036         (DBX_USE_BINCL): Likewise.
15037         (DBX_LINES_FUNCTION_RELATIVE): Likewise.
15038         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
15039         * config/pdp11/pdp11.cc: Likewise.
15040         * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
15041         (PREFERRED_DEBUGGING_TYPE): Likewise.
15042         (DBX_CONTIN_LENGTH): Likewise.
15043         * config/rs6000/rs6000-builtin.cc: Likewise.
15044         * config/rs6000/rs6000-call.cc: Likewise.
15045         * config/rs6000/rs6000-logue.cc (defined): Likewise.
15046         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
15047         (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
15048         (rs6000_xcoff_declare_function_name): Likewise.
15049         * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
15050         (DBX_FUNCTION_FIRST): Likewise.
15051         * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
15052         * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
15053         * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
15054         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
15055         * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
15056         * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
15057         * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
15058         * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
15059         * config/vax/vax.cc (vax_file_start): Likewise.
15060         * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
15061         (DBX_CONTIN_LENGTH): Likewise.
15062         (DBX_CONTIN_CHAR): Likewise.
15063         (DBX_NO_XREFS): Likewise.
15064         (DBX_STATIC_STAB_DATA_SECTION): Likewise.
15065         * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
15066         (XCOFF_DEBUGGING_INFO): Likewise.
15067         * configure: Regenerate. Likewise.
15068         * configure.ac: Likewise.
15069         * debug.h: Likewise.
15070         * doc/install.texi: Likewise.
15071         * doc/invoke.texi: Likewise.
15072         * doc/passes.texi: Likewise.
15073         * doc/tm.texi: Likewise.
15074         * doc/tm.texi.in: Likewise.
15075         * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
15076         (dw2_asm_output_nstring): Likewise.
15077         (USE_LINKONCE_INDIRECT): Likewise.
15078         * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
15079         (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
15080         (output_fde): Likewise.
15081         (output_call_frame_info): Likewise.
15082         (have_macinfo): Likewise.
15083         (add_AT_loc_list): Likewise.
15084         (add_AT_view_list): Likewise.
15085         (output_compilation_unit_header): Likewise.
15086         (output_pubnames): Likewise.
15087         (output_aranges): Likewise.
15088         (output_line_info): Likewise.
15089         (output_macinfo): Likewise.
15090         (dwarf2out_finish): Likewise.
15091         (dwarf2out_early_finish): Likewise.
15092         * final.cc (final_scan_insn_1): Likewise.
15093         (rest_of_handle_final): Likewise.
15094         * flag-types.h (enum debug_info_type): Likewise.
15095         (DBX_DEBUG): Likewise.
15096         (XCOFF_DEBUG): Likewise.
15097         * function.cc (defined): Likewise.
15098         * gcc.cc (defined): Likewise.
15099         (ASM_DEBUG_SPEC): Likewise.
15100         (ASM_DEBUG_OPTION_SPEC): Likewise.
15101         * opts.cc (common_handle_option): Likewise.
15102         (set_debug_level): Likewise.
15103         * system.h (fancy_abort): Likewise.
15104         * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
15105         (TARGET_ASM_DESTRUCTOR): Likewise.
15106         * toplev.cc (defined): Likewise.
15107         * varasm.cc: Likewise.
15108         * config/dbxcoff.h: Removed.
15109         * config/dbxelf.h: Removed.
15110         * dbxout.cc: Removed.
15111         * dbxout.h: Removed.
15112         * gstab.h: Removed.
15113         * stab.def: Removed.
15114         * xcoffout.cc: Removed.
15115         * xcoffout.h: Removed.
15117 2022-09-02  Simon Rainer  <gcc.gnu@vvalter.com>
15119         PR ipa/106627
15120         * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
15121         Set TREE_NOTHROW correctly for dispatcher declaration.
15122         * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
15123         Likewise.
15125 2022-09-01  Tamar Christina  <tamar.christina@arm.com>
15127         PR other/106782
15128         * config/aarch64/aarch64.cc
15129         (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
15130         HOST_WIDE_INT_PRINT_UNSIGNED.
15132 2022-09-01  Richard Sandiford  <richard.sandiford@arm.com>
15134         * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
15135         VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
15136         to the number of vector elements, if that's a known constant.
15137         (vect_optimize_slp_pass::is_compatible_layout): Remove associated
15138         comment about zero SLP_TREE_LANES.
15139         (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
15140         all partition members when looking for potential layouts.
15141         Handle existing permutes of fixed-length vectors.
15143 2022-09-01  Uroš Bizjak  <ubizjak@gmail.com>
15145         PR target/106707
15146         * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
15147         Do not convert a move pattern where both operands are AX_REG.
15149 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
15151         * range-op-float.cc (build_le): Convert to dconst*inf.
15152         (build_ge): Same.
15153         * value-range.cc (frange::set_signbit): Same.
15154         (frange::normalize_kind): Same.
15155         (range_tests_floats): Same.
15156         * value-range.h (vrp_val_max): Same.
15157         (vrp_val_min): Same.
15158         (frange::set_varying): Same.
15160 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
15162         * emit-rtl.cc (init_emit_once): Initialize dconstinf and
15163         dconstninf.
15164         * real.h: Add dconstinf and dconstninf.
15166 2022-09-01  Richard Biener  <rguenther@suse.de>
15168         * gimple-predicate-analysis.cc (compute_control_dep_chain):
15169         Remove cycle detection, instead avoid walking backedges.
15171 2022-09-01  Richard Biener  <rguenther@suse.de>
15173         * gimple-predicate-analysis.cc (compute_control_dep_chain):
15174         New wrapping overload.
15175         (uninit_analysis::init_use_preds): Simplify.
15176         (uninit_analysis::init_from_phi_def): Likewise.
15178 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
15180         * gimple-range-fold.cc
15181         (fold_using_range::range_of_builtin_int_call): Add case for
15182         CFN_BUILT_IN_SIGNBIT.
15184 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
15186         * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
15187         bit.
15188         (foperator_not_equal::op1_range): Same.
15189         * value-query.cc (range_query::get_tree_range): Set sign bit.
15190         * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
15191         * value-range.cc (frange::set_signbit): New.
15192         (frange::set): Adjust for sign bit.
15193         (frange::normalize_kind): Same.
15194         (frange::union_): Remove useless comment.
15195         (frange::intersect): Same.
15196         (frange::contains_p): Adjust for sign bit.
15197         (frange::singleton_p): Same.
15198         (frange::verify_range): Same.
15199         (range_tests_signbit): New tests.
15200         (range_tests_floats): Call range_tests_signbit.
15201         * value-range.h (class frange_props): Add signbit
15202         (class frange): Same.
15204 2022-09-01  Jakub Jelinek  <jakub@redhat.com>
15206         PR other/106782
15207         * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
15208         instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
15209         * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
15210         derived types of gimple to gimple * to avoid -Wformat warnings.
15211         * tree-vect-loop-manip.cc (vect_set_loop_condition,
15212         vect_update_ivs_after_vectorizer): Likewise.
15213         * tree-vect-stmts.cc (vectorizable_load): Likewise.
15214         * tree-vect-patterns.cc (vect_split_statement,
15215         vect_recog_mulhs_pattern, vect_recog_average_pattern,
15216         vect_determine_precisions_from_range,
15217         vect_determine_precisions_from_users): Likewise.
15218         * gimple-loop-versioning.cc
15219         (loop_versioning::analyze_term_using_scevs): Likewise.
15220         * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
15221         (vect_build_slp_tree): Cast slp_tree to void * to avoid
15222         -Wformat warnings.
15223         (optimize_load_redistribution_1, vect_match_slp_patterns,
15224         vect_build_slp_instance, vect_optimize_slp_pass::materialize,
15225         vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
15226         vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
15227         (vect_print_slp_tree): Likewise.  Also use
15228         HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
15229         * tree-vect-loop.cc (vect_determine_vectorization_factor,
15230         vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
15231         vectorizable_induction, vect_transform_loop): Cast pointers to derived
15232         types of gimple to gimple * to avoid -Wformat warnings.
15233         (vect_analyze_loop_2): Cast slp_tree to void * to avoid
15234         -Wformat warnings.
15235         (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
15236         instead of %d.
15237         * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
15238         instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
15239         instead of SLP_TREE_DEF_TYPE (node).
15241 2022-09-01  Jakub Jelinek  <jakub@redhat.com>
15243         PR c++/106655
15244         * doc/invoke.texi (-Winvalid-utf8): Document it.
15246 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
15248         PR tree-optimization/106785
15249         * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
15250         (range_tests_floats): Same.
15252 2022-09-01  konglin1  <lingling.kong@intel.com>
15254         * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
15255         recognition.
15257 2022-09-01  Peter Bergner  <bergner@linux.ibm.com>
15259         PR target/101322
15260         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
15261         Enforce the use of a valid MMA pointer type.
15263 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
15265         * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
15266         registers.
15268 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
15270         * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
15271         (riscv_output_move): Add csrr vlenb assembly.
15272         * config/riscv/riscv.md (move_type): Add csrr vlenb type.
15273         (ext): New attribute.
15274         (ext_enabled): Ditto.
15275         (enabled): Ditto.
15277 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
15279         * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
15280         "vr" constraint.
15281         (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
15282         (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
15283         (vp): Add poly constraint.
15285 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
15287         * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
15289 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
15291         * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
15292         configuration according to TARGET_MIN_VLEN.
15293         * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
15295 2022-08-31  Martin Liska  <mliska@suse.cz>
15297         * config.build: Remove deprecated ports.
15298         * config.gcc: Likewise.
15299         * config.host: Likewise.
15300         * configure.ac: Likewise.
15301         * configure: Regenerate.
15302         * config/pa/pa-hpux10.h: Removed.
15303         * config/pa/pa-hpux10.opt: Removed.
15304         * config/pa/t-dce-thr: Removed.
15306 2022-08-31  Martin Liska  <mliska@suse.cz>
15308         * Makefile.in: Always install limits.h and syslimits.h to
15309         include folder.
15310         * configure.ac: Assign STMP_FIXINC blank if
15311         --disable-fixincludes is used.
15312         * configure: Regenerate.
15314 2022-08-31  Richard Biener  <rguenther@suse.de>
15316         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
15317         Assert the guard_bb isn't empty and has more than one successor.
15318         Drop appropriate parts of the predicate when an edge fails to
15319         register a predicate.
15320         (predicate::dump): Dump empty predicate as TRUE.
15322 2022-08-31  Richard Biener  <rguenther@suse.de>
15324         PR tree-optimization/90994
15325         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
15326         Ignore exceptional control flow and skip the edge for the purpose of
15327         predicate generation also for non-calls.
15329 2022-08-31  Aldy Hernandez  <aldyh@redhat.com>
15331         * value-range-storage.cc (frange_storage_slot::set_frange): Save
15332         endpoints.
15333         (frange_storage_slot::get_frange): Restore endpoints.
15334         * value-range-storage.h (class frange_storage_slot): Add endpoint
15335         fields.
15337 2022-08-31  Martin Liska  <mliska@suse.cz>
15339         PR tree-optimization/106789
15340         * range-op-float.cc (default_frelop_fold_range): Remove the
15341         function.
15343 2022-08-31  Martin Liska  <mliska@suse.cz>
15345         * value-range.h: Add more override keywords.
15347 2022-08-31  Martin Liska  <mliska@suse.cz>
15349         * value-range.h: Add override.
15351 2022-08-31  Richard Biener  <rguenther@suse.de>
15353         PR tree-optimization/65244
15354         * gimple-predicate-analysis.h (predicate::init_from_control_deps):
15355         Add argument to specify whether the predicate is for the USE.
15356         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
15357         Also include predicates effective fallthru control edges when
15358         the predicate is for the USE.
15360 2022-08-31  Richard Biener  <rguenther@suse.de>
15362         PR tree-optimization/73550
15363         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
15364         Sanitize debug dumping.  Handle case labels with a CASE_HIGH.
15365         (predicate::dump): Adjust for better readability.
15367 2022-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15368             Jakub Jelinek  <jakub@redhat.com>
15370         * omp-simd-clone.cc (simd_clone_adjust_return_type,
15371         simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
15372         instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
15374 2022-08-31  Richard Sandiford  <richard.sandiford@arm.com>
15376         * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
15377         argument.
15379 2022-08-31  zhongjuzhe  <juzhe.zhong@rivai.ai>
15381         * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
15382         initialize const_vf to 0.
15384 2022-08-31  Martin Liska  <mliska@suse.cz>
15386         * config.gcc: Remove cr16.
15388 2022-08-30  Martin Jambor  <mjambor@suse.cz>
15390         * vec.h (array_slice): Add constructors for non-const reference to
15391         heap vector and pointers to heap vectors.
15393 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
15395         * value-range.cc (early_nan_resolve): Change comment.
15396         (frange::union_): Handle union when one side is a NAN.
15397         (range_tests_nan): Add tests for NAN union.
15399 2022-08-30  Andrew Stubbs  <ams@codesourcery.com>
15401         * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
15402         (gcn_simd_clone_adjust): New.
15403         (gcn_simd_clone_usable): New.
15404         (TARGET_SIMD_CLONE_ADJUST): New.
15405         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
15406         (TARGET_SIMD_CLONE_USABLE): New.
15408 2022-08-30  Andrew Stubbs  <ams@codesourcery.com>
15410         * doc/tm.texi: Regenerate.
15411         * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
15412         vecsize.
15413         (simd_clone_adjust_argument_types): Likewise.
15414         * target.def (compute_vecsize_and_simdlen): Document the new
15415         vecsize_int and vecsize_float semantics.
15417 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
15419         * expmed.cc (store_bit_field_1): Fix byte offset calculation
15420         for undefined structures.
15422 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
15424         * params.opt (-param=vect-max-layout-candidates=): New parameter.
15425         * doc/invoke.texi (vect-max-layout-candidates): Document it.
15426         * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
15427         (auto_load_permutation_t): Likewise.
15428         * tree-vect-slp.cc (vect_slp_node_weight): New function.
15429         (slpg_layout_cost): New class.
15430         (slpg_vertex): Replace perm_in and perm_out with partition,
15431         out_degree, weight and out_weight.
15432         (slpg_partition_info, slpg_partition_layout_costs): New classes.
15433         (vect_optimize_slp_pass): Likewise, cannibalizing some part of
15434         the previous vect_optimize_slp.
15435         (vect_optimize_slp): Use it.
15437 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
15439         * hash-traits.h (vec_hash_base): New class.
15440         (vec_free_hash_base): Likewise.
15442 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
15444         * hash-traits.h (int_hash_base): New struct, split out from...
15445         (int_hash): ...this class, which now inherits from int_hash_base.
15446         * hash-map-traits.h (unbounded_hashmap_traits): Take a template
15447         parameter for the key that provides hash and equality functions.
15448         (unbounded_int_hashmap_traits): Turn into a type alias of
15449         unbounded_hashmap_traits.
15451 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
15453         * graphds.cc (graphds_scc): Add a pass-back parameter for the
15454         final node order.
15455         * graphds.h (graphds_scc): Update prototype accordingly.
15457 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
15459         * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
15460         (vect_transform_slp_perm_load): ...here.  Use SLP_TREE_VECTYPE instead
15461         of STMT_VINFO_VECTYPE.
15463 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
15465         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
15466         (vectorizable_slp_permutation): ...here.
15468 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
15470         * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
15471         that the requested number of units is interoperable with the requested
15472         prevailing mode.
15474 2022-08-30  Martin Liska  <mliska@suse.cz>
15476         * config.gcc: Remove the port.
15477         * config/m32c/rtems.h: Removed.
15479 2022-08-30  Richard Biener  <rguenther@suse.de>
15481         PR tree-optimization/73550
15482         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
15483         Do not apply MAX_NUM_CHAINS again.
15485 2022-08-30  Richard Biener  <rguenther@suse.de>
15487         * gimple-predicate-analysis.cc (format_edge_vec): Dump
15488         both source and destination.
15489         (dump_dep_chains): Remove.
15490         (uninit_analysis::init_use_preds): Remove redundant
15491         dumping of chains.
15493 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
15495         * value-range-storage.cc (frange_storage_slot::get_frange): Use
15496         frange_nan.
15497         * value-range.cc (frange::set_nan): New.
15498         (frange_nan): Move to header file.
15499         (range_tests_nan): Adjust frange_nan callers to pass type.
15500         New test.
15501         * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
15502         (frange_nan): New.
15504 2022-08-30  Richard Biener  <rguenther@suse.de>
15506         PR tree-optimization/67196
15507         * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
15508         Simplify and normalize use prediates before first use.
15510 2022-08-30  Richard Biener  <rguenther@suse.de>
15512         * gimple-predicate-analysis.cc (dump_pred_chain): Fix
15513         parentizing and AND prepending.
15514         (predicate::dump): Do not dump the GENERIC expanded
15515         predicate, properly parentize and prepend ORs to the
15516         piecewise predicate dump.
15517         (build_pred_expr): Remove.
15519 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
15521         * range-op-float.cc (finite_operand_p): New.
15522         (build_le): New.
15523         (build_lt): New.
15524         (build_ge): New.
15525         (build_gt): New.
15526         (foperator_equal::fold_range): New implementation with endpoints.
15527         (foperator_equal::op1_range): Same.
15528         (foperator_not_equal::fold_range): Same.
15529         (foperator_not_equal::op1_range): Same.
15530         (foperator_lt::fold_range): Same.
15531         (foperator_lt::op1_range): Same.
15532         (foperator_lt::op2_range): Same.
15533         (foperator_le::fold_range): Same.
15534         (foperator_le::op1_range): Same.
15535         (foperator_le::op2_range): Same.
15536         (foperator_gt::fold_range): Same.
15537         (foperator_gt::op1_range): Same.
15538         (foperator_gt::op2_range): Same.
15539         (foperator_ge::fold_range): Same.
15540         (foperator_ge::op1_range): Same.
15541         (foperator_ge::op2_range): Same.
15543 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
15545         * range-op-float.cc (frange_set_nan): New.
15546         (frange_drop_inf): New.
15547         (frange_drop_ninf): New.
15548         (foperator_equal::op1_range): Adjust for endpoints.
15549         (foperator_lt::op1_range): Same.
15550         (foperator_lt::op2_range): Same.
15551         (foperator_gt::op1_range): Same.
15552         (foperator_gt::op2_range): Same.
15553         (foperator_unordered::op1_range): Same.
15554         * value-query.cc (range_query::get_tree_range): Same.
15555         * value-range-pretty-print.cc (vrange_printer::visit): Same.
15556         * value-range-storage.cc (frange_storage_slot::get_frange): Same.
15557         * value-range.cc (frange::set): Same.
15558         (frange::normalize_kind): Same.
15559         (frange::union_): Same.
15560         (frange::intersect): Same.
15561         (frange::operator=): Same.
15562         (early_nan_resolve): New.
15563         (frange::contains_p): New.
15564         (frange::singleton_p): New.
15565         (frange::set_nonzero): New.
15566         (frange::nonzero_p): New.
15567         (frange::set_zero): New.
15568         (frange::zero_p): New.
15569         (frange::set_nonnegative): New.
15570         (frange_float): New.
15571         (frange_nan): New.
15572         (range_tests_nan): New.
15573         (range_tests_signed_zeros): New.
15574         (range_tests_floats): New.
15575         (range_tests): New.
15576         * value-range.h (frange::lower_bound): New.
15577         (frange::upper_bound): New.
15578         (vrp_val_min): Use real_inf with a sign instead of negating inf.
15579         (frange::frange): New.
15580         (frange::set_varying): Adjust for endpoints.
15581         (real_max_representable): New.
15582         (real_min_representable): New.
15584 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
15586         * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
15587         for real zero.
15589 2022-08-30  Martin Liska  <mliska@suse.cz>
15591         * config/s390/s390.cc (s390_rtx_costs): Use proper type as
15592         argument.
15594 2022-08-30  Richard Biener  <rguenther@suse.de>
15596         * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
15597         the set of fallthru reachable blocks from function entry
15598         and use that to determine wlims.always_executed.
15600 2022-08-30  Richard Biener  <rguenther@suse.de>
15602         PR tree-optimization/56654
15603         * tree-ssa-uninit.cc (cand_cmp): New.
15604         (find_uninit_use): First process all PHIs and collect candidate
15605         stmts, then sort those after RPO.
15606         (warn_uninitialized_phi): Pass on bb_to_rpo.
15607         (execute_late_warn_uninitialized): Compute and pass on
15608         reverse lookup of RPO number from basic block index.
15610 2022-08-30  Richard Biener  <rguenther@suse.de>
15612         * gimple-predicate-analysis.h (uninit_analysis::operator()):
15613         Remove.
15614         * gimple-predicate-analysis.cc
15615         (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
15616         simplify a bit.
15617         * tree-ssa-uninit.cc (defined_args): New global.
15618         (compute_uninit_opnds_pos): Mask with the recorded set
15619         of guarded maybe-uninitialized uses.
15620         (uninit_undef_val_t::operator()): Remove.
15621         (find_uninit_use): Process all PHI uses, recording the
15622         guarded ones and marking the PHI result as uninitialized
15623         consistently.
15624         (warn_uninitialized_phi): Adjust.
15625         (execute_late_warn_uninitialized): Get rid of the PHI worklist
15626         and instead walk the function in RPO order.
15627         * spellcheck.h (best_match::m_best_candidate_len): Initialize.
15629 2022-08-30  Tamar Christina  <tamar.christina@arm.com>
15631         PR tree-optimization/106744
15632         * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
15634 2022-08-30  Tamar Christina  <tamar.christina@arm.com>
15636         * expmed.cc (store_bit_field_1): Initialize regnum to 0.
15638 2022-08-29  David Faust  <david.faust@oracle.com>
15640         PR target/106745
15641         * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
15642         computation of index for anonymous members.
15644 2022-08-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
15646         * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
15647         target macro.
15649 2022-08-29  H.J. Lu  <hjl.tools@gmail.com>
15651         PR target/106748
15652         * config/i386/i386-expand.cc
15653         (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
15654         * config/i386/sse.md (V_256H): Add V16BF.
15656 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
15658         * config/s390/s390.cc (s390_address_cost): Declare.
15659         (s390_hard_regno_nregs): Declare.
15660         (s390_rtx_costs): Add handling for REG and MEM in SET.
15662 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
15664         * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
15665         (is_reverse_perm_mask): New function.
15666         (expand_perm_with_rot): Recognize reverse pattern.
15667         (expand_perm_with_vstbrq): New function.
15668         (expand_perm_with_vster): Use vler/vster for element reversal on z15.
15669         (vectorize_vec_perm_const_1): Use.
15670         (s390_vectorize_vec_perm_const): Add expand functions.
15671         * config/s390/vx-builtins.md: Prefer vster over vler.
15673 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
15675         * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
15676         * config/s390/vector.md: Rewrite patterns to use vec_select.
15677         * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
15678         Likewise.
15680 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
15682         PR target/100869
15683         * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
15684         (rotl<mode>3_di): New pattern.
15685         * config/s390/vx-builtins.md: Use vpdi and verll for reversing
15686         elements.
15688 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
15690         * config/s390/s390.cc (s390_issue_rate): Add z15.
15692 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
15694         * common/config/s390/s390-common.cc: Enable -funroll-loops and
15695         -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
15696         * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
15697         loops larger than 12 instructions.
15698         (s390_override_options_after_change): Set unroll options.
15699         (s390_option_override_internal): Likewise.
15700         * config/s390/s390.opt: Document munroll-only-small-loops.
15702 2022-08-29  Richard Biener  <rguenther@suse.de>
15704         * gimple-predicate-analysis.cc (is_loop_exit,
15705         find_control_equiv_block): Inline into single caller ...
15706         (uninit_analysis::init_use_preds): ... here and refactor.
15708 2022-08-29  Richard Biener  <rguenther@suse.de>
15710         * gimple-predicate-analysis.cc (compute_control_dep_chain):
15711         Inline is_loop_exit and refactor, add comment about
15712         loop exits.
15714 2022-08-29  Kito Cheng  <kito.cheng@sifive.com>
15716         * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
15717         (riscv_frame_info::reset(void)): New.
15718         (riscv_compute_frame_info): Use riscv_frame_info::reset instead
15719         of memset when clean frame.
15721 2022-08-29  zhongjuzhe  <juzhe.zhong@rivai.ai>
15723         * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
15724         (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
15725         (riscv_address_insns): Add RVV modes condition.
15726         (riscv_binary_cost): Ditto.
15727         (riscv_rtx_costs): Adjust cost for RVV.
15728         (riscv_secondary_memory_needed): Add RVV modes condition.
15729         (riscv_hard_regno_nregs): Add RVV register allocation.
15730         (riscv_hard_regno_mode_ok): Add RVV register allocation.
15731         (riscv_class_max_nregs): Add RVV register allocation.
15732         * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
15733         (UNITS_PER_V_REG): New macro.
15734         (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
15735         (V_REG_FIRST): New macro.
15736         (V_REG_LAST): Ditto.
15737         (V_REG_NUM): Ditto.
15738         (V_REG_P): Ditto.
15739         (VL_REG_P): Ditto.
15740         (VTYPE_REG_P): Ditto.
15741         (RISCV_DWARF_VL): Ditto.
15742         (RISCV_DWARF_VTYPE): Ditto.
15743         (enum reg_class): Add RVV register types.
15744         (REG_CLASS_CONTENTS): Add RVV register types.
15745         * config/riscv/riscv.md: Add VL/VTYPE register number constants.
15747 2022-08-29  zhongjuzhe  <juzhe.zhong@rivai.ai>
15749         * config/riscv/riscv.md: Add new type for vector instructions.
15751 2022-08-28  Peter Bergner  <bergner@linux.ibm.com>
15753         PR target/106017
15754         * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
15755         of MMA pointer conversions.
15757 2022-08-27  Xi Ruoyao  <xry111@xry111.site>
15759         * config/i386/gcc-auto-profile: Regenerate.
15761 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
15763         * real.cc (real_iszero): New.
15764         * real.h (real_iszero): New.
15766 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
15768         * real.cc (real_isinf): New overload.
15769         (real_inf): Add sign argument.
15770         * real.h (real_isinf): New overload.
15771         (real_inf): Add sign argument.
15773 2022-08-26  Marek Polacek  <polacek@redhat.com>
15775         PR c++/81159
15776         * doc/invoke.texi: Document -Wself-move.
15778 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
15780         * value-range.cc (vrange::set): Set varying.
15781         (vrange::set_nonzero): Same.
15782         (vrange::set_zero): Same.
15783         (vrange::set_nonnegative): Same.
15785 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
15787         * range-op-float.cc (foperator_equal::op1_range): Do not blindly
15788         copy op2 range when honoring signed zeros.
15790 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
15792         * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
15793         add newline.
15794         (profitable_path_p): Same.
15796 2022-08-26  Richard Biener  <rguenther@suse.de>
15798         * gimple-predicate-analysis.h
15799         (uninit_analysis::use_cannot_happen): Remove.
15800         * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
15801         (uninit_analysis::use_cannot_happen): Likewise.
15802         (uninit_analysis::is_use_guarded): Do not call
15803         use_cannot_happen.
15804         (dump_predicates): Remove.
15805         (simple_control_dep_chain): Remove edge overload.
15807 2022-08-26  Tobias Burnus  <tobias@codesourcery.com>
15809         * internal-fn.cc (expand_GOMP_TARGET_REV): New.
15810         * internal-fn.def (GOMP_TARGET_REV): New.
15811         * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
15812         'omp target device_ancestor_host' as in_other_partition and don't
15813         error if absent.
15814         * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
15815         * omp-expand.cc (expand_omp_target): For reverse offload, remove
15816         sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
15817         empty-body nohost function.
15818         * omp-offload.cc (execute_omp_device_lower): Handle
15819         IFN_GOMP_TARGET_REV.
15820         (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
15821         nullify fn argument for reverse offload
15823 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
15825         * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
15826         * builtins.cc (expand_builtin_issignaling): New function.
15827         (expand_builtin_signbit): Don't overwrite target.
15828         (expand_builtin): Handle BUILT_IN_ISSIGNALING.
15829         (fold_builtin_classify): Likewise.
15830         (fold_builtin_1): Likewise.
15831         * optabs.def (issignaling_optab): New.
15832         * fold-const-call.cc (fold_const_call_ss): Handle
15833         BUILT_IN_ISSIGNALING.
15834         * config/i386/i386.md (issignalingxf2): New expander.
15835         * doc/extend.texi (__builtin_issignaling): Document.
15836         (__builtin_isinf, __builtin_isnan): Clarify behavior with
15837         -ffinite-math-only.
15838         * doc/md.texi (issignaling<mode>2): Likewise.
15840 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
15842         PR tree-optimization/106099
15843         * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
15844         * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
15845         __builtin_trap to avoid the need of vops.
15847 2022-08-26  Richard Biener  <rguenther@suse.de>
15849         * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
15850         New helper.
15851         (compute_control_dep_chain): Adjust to honor marked region
15852         if provided.
15853         (uninit_analysis::init_from_phi_def): Pre-mark the dominating
15854         region to improve compute_control_dep_chain walking.
15855         * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
15857 2022-08-26  Richard Biener  <rguenther@suse.de>
15859         * gimple-predicate-analysis.cc
15860         (uninit_analysis::collect_phi_def_edges): Only expand a
15861         PHI def edge when it is possibly undefined.
15863 2022-08-26  Martin Liska  <mliska@suse.cz>
15865         * doc/extend.texi: Remove cr16 related stuff.
15866         * doc/install.texi: Likewise.
15867         * doc/invoke.texi: Likewise.
15868         * doc/md.texi: Likewise.
15869         * function-tests.cc (test_expansion_to_rtl): Likewise.
15870         * common/config/cr16/cr16-common.cc: Removed.
15871         * config/cr16/constraints.md: Removed.
15872         * config/cr16/cr16-protos.h: Removed.
15873         * config/cr16/cr16.cc: Removed.
15874         * config/cr16/cr16.h: Removed.
15875         * config/cr16/cr16.md: Removed.
15876         * config/cr16/cr16.opt: Removed.
15877         * config/cr16/predicates.md: Removed.
15878         * config/cr16/t-cr16: Removed.
15880 2022-08-26  liuhongt  <hongtao.liu@intel.com>
15882         PR target/106704
15883         * config/i386/i386-builtin.def (BDESC): Add
15884         CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
15885         corresponding builtins.
15886         * config/i386/i386.cc (ix86_gimple_fold_builtin):
15887         Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
15888         IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
15890 2022-08-25  Marek Polacek  <polacek@redhat.com>
15892         * ginclude/stddef.h: Define nullptr_t.
15894 2022-08-25  Joseph Myers  <joseph@codesourcery.com>
15896         * gimplify.cc (gimplify_modify_expr): Convert initialization from
15897         a variable-size CONSTRUCTOR to memset before call to
15898         gimplify_modify_expr_rhs.
15900 2022-08-25  Jason Merrill  <jason@redhat.com>
15902         * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
15904 2022-08-25  Andreas Krebbel  <krebbel@linux.ibm.com>
15906         PR target/106101
15907         * config/s390/predicates.md (subreg_register_operand): New
15908         predicate.
15909         * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
15910         function prototype.
15911         * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
15912         (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
15913         gen_lowpart.
15914         * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
15915         ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
15916         ("movstrictqi", "movstricthi", "movstrictsi"): Use the
15917         subreg_register_operand predicate instead of register_operand.
15919 2022-08-25  Xi Ruoyao  <xry111@xry111.site>
15921         * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
15922         Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
15923         * config/loongarch/loongarch.cc (loongarch_attribute_table):
15924         New attribute table.
15925         (TARGET_ATTRIBUTE_TABLE): Define the target hook.
15926         (loongarch_handle_model_attribute): New static function.
15927         (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
15928         model attribute of SYMBOL_REF_DECL into account returning
15929         SYMBOL_PCREL or SYMBOL_PCREL64.
15930         (loongarch_use_anchors_for_symbol_p): New static function.
15931         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
15932         (loongarch_symbol_extreme_p): New static function.
15933         (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
15934         (loongarch_symbol_insns): Likewise.
15935         (loongarch_split_symbol_type): Likewise.
15936         (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
15937         TARGET_CMODEL_EXTREME for PC-relative addressing.
15938         (loongarch_print_operand_reloc): Likewise.
15939         * doc/extend.texi (Variable Attributes): Document new
15940         LoongArch specific attribute.
15942 2022-08-25  Xi Ruoyao  <xry111@xry111.site>
15944         * config/loongarch/loongarch.cc (loongarch_classify_symbol):
15945         Return early if the rtx is not SYMBOL_REF.
15947 2022-08-25  Richard Biener  <rguenther@suse.de>
15949         PR tree-optimization/106737
15950         * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
15951         verify SSA form.
15953 2022-08-25  Chenghua Xu  <xuchenghua@loongson.cn>
15955         PR target/106459
15956         * config/loongarch/loongarch.cc (loongarch_build_integer):
15957         Use HOST_WIDE_INT.
15958         * config/loongarch/loongarch.h (IMM_REACH): Likewise.
15959         (HWIT_1U): New Defined.
15960         (LU12I_OPERAND): Use HOST_WIDE_INT.
15961         (LU32I_OPERAND): Likewise.
15962         (LU52I_OPERAND): Likewise.
15963         (HWIT_UC_0xFFF): Likwise.
15965 2022-08-24  Andrew Pinski  <apinski@marvell.com>
15967         PR target/106632
15968         PR target/106588
15969         * config/riscv/bitmanip.md (*shNadduw): Use n constraint
15970         instead of i.
15971         (*slliuw): Likewise.
15972         (*bexti): Likewise. Also add a check for operands[2] to be less
15973         than the mode bitsize.
15975 2022-08-24  Andrew Pinski  <apinski@marvell.com>
15977         * config/riscv/constraints.md (DbS): New constraint.
15978         (DnS): New constraint.
15979         * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
15980         (*bclr<mode>): Likewise.
15981         (*binvi<mode>): Likewise.
15983 2022-08-24  Andrew Pinski  <apinski@marvell.com>
15985         PR target/106586
15986         * config/riscv/predicates.md (single_bit_mask_operand):
15987         Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
15988         (not_single_bit_mask_operand): Likewise.
15989         * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
15990         1<<31 for 32bits as it is already handled.
15991         Call trunc_int_for_mode on the upper part after the subtraction.
15992         (riscv_move_integer): Call trunc_int_for_mode before generating
15993         the integer just make sure the constant has been sign extended
15994         corectly.
15995         (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
15996         addition for the new rhs.
15997         * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
15998         then mask off the upper 32bits of the HWI as it will be sign extended.
16000 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16002         * config/riscv/constraints.md (DsS): New constraint.
16003         (DsD): New constraint.
16004         * config/riscv/iterators.md (shiftm1c): New iterator.
16005         * config/riscv/bitmanip.md (*bset<mode>_mask):
16006         Use shiftm1c.
16007         (*bset<mode>_1_mask): Likewise.
16009 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16011         * config/riscv/constraints.md (Ds3): New constraint.
16012         * config/riscv/predicates.md (imm123_operand): New predicate.
16013         * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
16014         (*shNadduw): Likewise.
16016 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16018         * config/riscv/riscv.cc (riscv_print_operand):
16019         Handle '~'.
16020         (riscv_print_operand_punct_valid_p): New function
16021         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16022         * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
16023         Use %~ instead of conditional the pattern on TARGET_64BIT.
16024         (rotrsi3): Likewise.
16025         (rotlsi3): Likewise.
16026         * config/riscv/riscv.md: Add ~ to the list of modifiers.
16027         (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
16028         (subsi3): Likewise.
16029         (negsi2): Likewise.
16030         (mulsi3): Likewise.
16031         (optab>si3/any_div): Likewise.
16032         (*add<mode>hi3): Likewise.
16033         (<optab>si3/any_shift): Likewise.
16035 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16037         * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
16038         keep the list in riscv.md in sync with this list.
16039         * config/riscv/riscv.md: Add list of modifiers as comments.
16041 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16043         * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
16044         * config/riscv/iterators.md: Here.
16046 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16048         * config/riscv/bitmanip.md
16049         (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
16050         tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
16051         * config/riscv/iterators.md: Here.
16053 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16055         * config/riscv/riscv.md (GPR): Move to new file.
16056         (P, X, BR): Likewise.
16057         (MOVE32, MOVE64, SHORT): Likewise.
16058         (HISI, SUPERQI, SUBX): Likewise.
16059         (ANYI, ANYF, SOFTF): Likewise.
16060         (size, load, default_load): Likewise.
16061         (softload, store, softstore): Likewise.
16062         (reg, fmt, ifmt, amo): Likewise.
16063         (UNITMODE, HALFMODE): Likewise.
16064         (RINT, rint_pattern, rint_rm): Likewise.
16065         (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
16066         (any_extend, any_shiftrt, any_shift): Likewise.
16067         (any_bitwise): Likewise.
16068         (any_div, any_mod): Likewise.
16069         (any_gt, any_ge, any_lt, any_le): Likewise.
16070         (u, su): Likewise.
16071         (optab, insn): Likewise.
16072         * config/riscv/iterators.md: New file.
16074 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16076         PR target/106601
16077         * config/riscv/bitmanip.md (bswaphi2): New pattern.
16079 2022-08-24  Andrew Pinski  <apinski@marvell.com>
16081         PR target/106600
16082         * config/riscv/bitmanip.md (bswap<mode>2): Remove
16083         condition on TARGET_64BIT as X is already conditional there.
16085 2022-08-24  Joseph Myers  <joseph@codesourcery.com>
16087         * tree.cc (build_real): Give DFP dconst0 the minimum quantum
16088         exponent for the type.
16090 2022-08-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
16092         PR target/106733
16093         * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
16094         constants as legitimate addresses for functions.
16095         (bpf_small_register_classes_for_mode_p): Define target hook.
16097 2022-08-24  Richard Biener  <rguenther@suse.de>
16099         * gimple-predicate-analysis.cc: Move predicate normalization
16100         after the comment documenting it.
16102 2022-08-24  Richard Biener  <rguenther@suse.de>
16104         * gimple-predicate-analysis.h (predicate): Split out
16105         non-predicate related functionality into ..
16106         (uninit_analysis): .. this new class.
16107         * gimple-predicate-analysis.cc: Refactor into two classes.
16108         * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
16110 2022-08-24  Richard Biener  <rguenther@suse.de>
16112         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
16113         Do simple_control_dep_chain only up to cd_root, add the PHI
16114         operand edge to the chains like init_from_phi_def does.
16115         (predicate::is_use_guarded): Speedup early out, avoid half-way
16116         initializing the PHI def predicate.
16118 2022-08-24  Jakub Jelinek  <jakub@redhat.com>
16120         PR target/106721
16121         * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
16122         Change V32HF, V16HF and V8HF entries from "f" to "i".
16123         (iptr): Add V32BF, V16BF, V8BF and BF entries.
16124         (i128vldq): Add V16HF and V16BF entries.
16125         (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
16126         mask_opernad3 -> mask_operand3.
16128 2022-08-24  Martin Liska  <mliska@suse.cz>
16129             Jørgen Kvalsvik  <j@lambda.is>
16131         * gcov.cc (add_line_counts): Add group functions to coverage
16132         summary.
16133         (accumulate_line_counts): Similarly for files.
16135 2022-08-24  Lulu Cheng  <chenglulu@loongson.cn>
16137         * config/loongarch/genopts/loongarch-strings: Support code model medium.
16138         * config/loongarch/genopts/loongarch.opt.in: Likewise.
16139         * config/loongarch/loongarch-def.c: Likewise.
16140         * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
16141         (CMODEL_EXTREME): Likewise.
16142         (N_CMODEL_TYPES): Likewise.
16143         (CMODEL_MEDIUM): Likewise.
16144         * config/loongarch/loongarch-opts.cc: Likewise.
16145         * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
16146         * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
16147         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
16148         Tls symbol Loading support medium mode.
16149         (loongarch_legitimize_call_address): When medium mode, make a symbolic
16150         jump with two instructions.
16151         (loongarch_option_override_internal): Support medium.
16152         * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
16153         (@sibcall_internal_1<mode>): New function call templates added to support
16154         medium mode.
16155         (@sibcall_value_internal_1<mode>): Likewise.
16156         (@sibcall_value_multiple_internal_1<mode>): Likewise.
16157         (@call_internal_1<mode>): Likewise.
16158         (@call_value_internal_1<mode>): Likewise.
16159         (@call_value_multiple_internal_1<mode>): Likewise.
16160         * config/loongarch/loongarch.opt: Support medium.
16161         * config/loongarch/predicates.md: Add processing about medium mode.
16162         * doc/invoke.texi: Document for '-mcmodel=medium'.
16164 2022-08-24  Richard Biener  <rguenther@suse.de>
16166         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
16167         Start the compute_control_dep_chain walk from the immediate
16168         dominator of the PHI.
16170 2022-08-23  H.J. Lu  <hjl.tools@gmail.com>
16172         PR target/106714
16173         * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
16174         __PTRDIFF_TYPE__.
16175         (_tile_stream_loadd_internal): Likewise.
16176         (_tile_stored_internal): Likewise.
16178 2022-08-23  Richard Biener  <rguenther@suse.de>
16180         PR tree-optimization/106722
16181         * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
16182         MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
16183         * gimple-predicate-analysis.cc: ... here and document.
16184         (simple_control_dep_chain): New function, factored from
16185         predicate::use_cannot_happen.
16186         (predicate::use_cannot_happen): Adjust.
16187         (predicate::predicate): Use simple_control_dep_chain as fallback.
16189 2022-08-23  Aldy Hernandez  <aldyh@redhat.com>
16191         * range-op-float.cc (foperator_equal::op1_range): Set range to
16192         range of op2.
16194 2022-08-23  Richard Biener  <rguenther@suse.de>
16196         * gimple-predicate-analysis.cc (is_loop_exit): Split out
16197         from ...
16198         (is_non_loop_exit_postdominating): ... here.  Remove after
16199         inlining ...
16200         (find_control_equiv_block): ... here.
16201         (compute_control_dep_chain): ... and here.
16202         (predicate::is_use_guarded): Do not excempt loop exits
16203         from short-cutting the case of the use post-dominating the
16204         PHI definition.
16206 2022-08-23  Andrew MacLeod  <amacleod@redhat.com>
16208         PR tree-optimization/106687
16209         * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
16210         for the VREL_GT case as well.
16212 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
16214         * config/pru/pru.md (pru_<code>di3): New alternative for
16215         two operands but without earlyclobber.
16217 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
16219         * config/pru/pru.md (prumov<mode>, mov<mode>): Add
16220         variants for loading -1 consts.
16222 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
16224         PR target/106564
16225         * config/pru/constraints.md (Um): New constraint for -1.
16226         (Uf): New constraint for IOR fill-bytes constants.
16227         (Uz): New constraint for AND zero-bytes constants.
16228         * config/pru/predicates.md (const_fillbytes_operand): New
16229         predicate for IOR fill-bytes constants.
16230         (const_zerobytes_operand): New predicate for AND zero-bytes
16231         constants.
16232         * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
16233         (struct pru_byterange): New struct to describe a byte range.
16234         (pru_calc_byterange): New declaration.
16235         * config/pru/pru.cc (pru_rtx_costs): Add penalty for
16236         64-bit zero-extend.
16237         (pru_output_sign_extend): Remove.
16238         (pru_calc_byterange): New helper function to extract byte
16239         range info from a constant.
16240         (pru_print_operand): Remove 'y' and 'z' print modifiers.
16241         * config/pru/pru.md (zero_extendqidi2): New pattern.
16242         (zero_extendhidi2): New pattern.
16243         (zero_extendsidi2): New pattern.
16244         (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
16245         (@pru_ior_fillbytes<mode>): New pattern.
16246         (@pru_and_zerobytes<mode>): New pattern.
16247         (<code>di3): Rewrite as an expand and handle ZERO and FILL
16248         special cases.
16249         (pru_<code>di3): New name for <code>di3.
16250         (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
16251         handle bit-test for 64-bit registers.
16253 2022-08-22  Richard Biener  <rguenther@suse.de>
16255         * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
16256         (predicate::def_expr): Likewise.
16257         (predicate::use_expr): Likewise.
16258         (predicate::expr): Likewise.
16259         * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
16260         (predicate::use_expr): Likewise.
16261         (predicate::expr): Likewise.
16262         (predicate::is_use_guarded): Do not build m_use_expr.
16264 2022-08-22  Martin Liska  <mliska@suse.cz>
16266         PR lto/106700
16267         * configure.ac: Detect O_NONBLOCK flag for open.
16268         * config.in: Regenerate.
16269         * configure: Regenerate.
16270         * opts-common.cc (jobserver_info::connect): Set is_connected
16271         properly based on O_NONBLOCK.
16272         * opts-jobserver.h (struct jobserver_info): Add is_connected
16273         member variable.
16275 2022-08-22  zhongjuzhe  <juzhe.zhong@rivai.ai>
16277         * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
16278         and repeat value different.
16280 2022-08-22  Tobias Burnus  <tobias@codesourcery.com>
16282         PR lto/106686
16283         * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
16284         (tool_cleanup): Unlink offload_names.
16285         (compile_offload_image): Take filename argument to set it early.
16286         (compile_images_for_offload_targets): Update call; set
16287         offload_names to NULL after freeing the array.
16289 2022-08-22  Richard Biener  <rguenther@suse.de>
16291         PR tree-optimization/105937
16292         * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
16293         on backedges.
16294         (execute_late_warn_uninitialized): Mark backedges.
16296 2022-08-22  Richard Biener  <rguenther@suse.de>
16298         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
16299         If the use is guarded with multiple predicate paths compute
16300         the predicates intersection before going forward.  When
16301         compute_control_dep_chain wasn't able to come up with at
16302         least one path from function entry to the PHI edge compute
16303         a conservative sparse path instead.
16305 2022-08-20  Lulu Cheng  <chenglulu@loongson.cn>
16307         * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
16308         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
16309         Add extreme support for TLS GD and LD types.
16310         (loongarch_legitimize_tls_address): Add extreme support for TLS LE
16311         and IE.
16312         (loongarch_split_symbol): When compiling with -mcmodel=extreme,
16313         the symbol address will be obtained through five instructions.
16314         (loongarch_print_operand_reloc): Add support.
16315         (loongarch_print_operand): Add support.
16316         (loongarch_print_operand_address): Add support.
16317         (loongarch_option_override_internal): Set '-mcmodel=extreme' option
16318         incompatible with '-mno-explicit-relocs'.
16319         * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
16320         Loads bits 12-31 of data into registers.
16321         (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
16322         the source register.
16323         (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
16324         the source register.
16325         * config/loongarch/predicates.md: Symbols need to be decomposed
16326         when defining the macro TARGET_CMODEL_EXTREME
16327         * doc/invoke.texi: Modify the description information of cmodel in the document.
16328         Document -W[no-]extreme-plt.
16330 2022-08-19  Tobias Burnus  <tobias@codesourcery.com>
16332         * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
16333         files_to_cleanup.
16334         * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
16335         omp_requires_file to temp_files.
16336         * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
16337         (main): Remove local omp_requires_file var.
16338         (tool_cleanup): Handle omp_requires_file.
16340 2022-08-19  Aldy Hernandez  <aldyh@redhat.com>
16342         * gimple-range-path.cc (path_range_query::path_range_query):
16343         Remove constructor that takes edge.
16344         * gimple-range-path.h (class path_range_query): Same.
16345         * tree-ssa-loop-ch.cc (edge_range_query): New.
16346         (entry_loop_condition_is_static): Call edge_range_query.
16348 2022-08-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
16350         * config/xtensa/xtensa.h
16351         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
16352         Add new register class "ISC_REGS".
16353         * config/xtensa/constraints.md (c): Add new register constraint.
16354         * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
16355         (sibcall_internal, sibcall_value_internal):
16356         Change to use the new register constraint, and remove two split
16357         patterns for fixups that are no longer needed.
16359 2022-08-18  Maciej W. Rozycki  <macro@embecosm.com>
16361         * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
16362         pattern formatting.
16364 2022-08-18  Tim Lange  <mail@tim-lange.me>
16366         PR analyzer/106181
16367         * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
16369 2022-08-18  Aldy Hernandez  <aldyh@redhat.com>
16371         * gimple-range-path.cc (path_range_query::path_range_query): Add
16372         various constructors to take a path.
16373         (path_range_query::~path_range_query): Remove m_alloced_ranger.
16374         (path_range_query::range_on_path_entry): Adjust for m_ranger being
16375         a reference.
16376         (path_range_query::set_path): Rename to...
16377         (path_range_query::reset_path): ...this and call compute_ranges.
16378         (path_range_query::ssa_range_in_phi): Adjust for m_ranger
16379         reference.
16380         (path_range_query::range_defined_in_block): Same.
16381         (path_range_query::compute_ranges_in_block): Same.
16382         (path_range_query::adjust_for_non_null_uses): Same.
16383         (path_range_query::compute_exit_dependencies): Use m_path instead
16384         of argument.
16385         (path_range_query::compute_ranges): Remove path argument.
16386         (path_range_query::range_of_stmt): Adjust for m_ranger reference.
16387         (path_range_query::compute_outgoing_relations): Same.
16388         * gimple-range-path.h (class path_range_query): Add various
16389         constructors.
16390         Make compute_ranges and compute_exit_dependencies private.
16391         Rename set_path to reset_path.
16392         Make m_ranger a reference.
16393         Remove m_alloced_ranger.
16394         * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
16395         path_range_query.
16396         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
16397         ranger and instantiate a new path_range_query every time.
16398         (ch_base::copy_headers): Pass ranger instead of path_range_query.
16399         * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
16400         (back_threader::~back_threader): Remove m_solver.
16401         (back_threader::find_taken_edge_switch): Adjust for m_ranger
16402         reference.
16403         (back_threader::find_taken_edge_cond): Same.
16404         (back_threader::dump): Remove m_solver.
16405         (back_threader::back_threader): Move verify_marked_backedges
16406         here from the path_range_query constructor.
16407         * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
16408         some code from compute_ranges_from_state here.
16409         (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
16410         (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
16411         * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
16412         compute_ranges_from_state to compute_exit_dependencies.
16413         Remove m_path.
16415 2022-08-18  Richard Biener  <rguenther@suse.de>
16417         PR middle-end/106617
16418         * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
16419         guard, disable on GENERIC to not cause quadratic behavior
16420         with the fold-const.cc implementation and the use of !
16422 2022-08-18  Andrew Pinski  <apinski@marvell.com>
16424         PR gcov-profile/106659
16425         * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
16426         INCLUDE_VECTOR.
16428 2022-08-18  konglin1  <lingling.kong@intel.com>
16430         * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
16431         BFmode.
16432         (ix86_expand_vector_init_duplicate): Support vector BFmode.
16433         (ix86_expand_vector_init_one_nonzero): Ditto.
16434         (ix86_expand_vector_init_one_var): Ditto.
16435         (ix86_expand_vector_init_concat): Ditto.
16436         (ix86_expand_vector_init_interleave): Ditto.
16437         (ix86_expand_vector_init_general): Ditto.
16438         (ix86_expand_vector_init): Ditto.
16439         (ix86_expand_vector_set_var): Ditto.
16440         (ix86_expand_vector_set): Ditto.
16441         (ix86_expand_vector_extract): Ditto.
16442         * config/i386/i386.cc (classify_argument): Add BF vector modes.
16443         (function_arg_64): Ditto.
16444         (ix86_gimplify_va_arg): Ditto.
16445         (ix86_get_ssemov): Ditto.
16446         * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
16447         (VALID_AVX512F_REG_MODE): Ditto.
16448         (host_detect_local_cpu): Ditto.
16449         (VALID_SSE2_REG_MODE): Ditto.
16450         * config/i386/i386.md: Add BF vector modes.
16451         (MODE_SIZE): Ditto.
16452         (ssemodesuffix): Add bf suffix for BF vector modes.
16453         (ssevecmode): Ditto.
16454         * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
16455         (VI12HFBF_AVX512VL): Ditto.
16456         (V_256_512): Ditto.
16457         (VF_AVX512HFBF16): Ditto.
16458         (VF_AVX512BWHFBF16): Ditto.
16459         (VIHFBF): Ditto.
16460         (avx512): Ditto.
16461         (VIHFBF_256): Ditto.
16462         (VIHFBF_AVX512BW): Ditto.
16463         (VI2F_256_512):Ditto.
16464         (V8_128):Ditto.
16465         (V16_256): Ditto.
16466         (V32_512): Ditto.
16467         (sseinsnmode): Ditto.
16468         (sseconstm1): Ditto.
16469         (sseintmodesuffix): New mode_attr.
16470         (avx512fmaskmode): Ditto.
16471         (avx512fmaskmodelower): Ditto.
16472         (ssedoublevecmode): Ditto.
16473         (ssehalfvecmode): Ditto.
16474         (ssehalfvecmodelower): Ditto.
16475         (ssescalarmode): Add vector BFmode mapping.
16476         (ssescalarmodelower): Ditto.
16477         (ssexmmmode): Ditto.
16478         (ternlogsuffix): Ditto.
16479         (ssescalarsize): Ditto.
16480         (sseintprefix): Ditto.
16481         (i128): Ditto.
16482         (xtg_mode): Ditto.
16483         (bcstscalarsuff): Ditto.
16484         (<avx512>_blendm<mode>): New define_insn for BFmode.
16485         (<avx512>_store<mode>_mask): Ditto.
16486         (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
16487         (vec_set<mode>_0): New define_insn for BF vector set.
16488         (V8BFH_128): New mode_iterator for BFmode.
16489         (avx512fp16_mov<mode>): Ditto.
16490         (vec_set<mode>): New define_insn for BF vector set.
16491         (@vec_extract_hi_<mode>): Ditto.
16492         (@vec_extract_lo_<mode>): Ditto.
16493         (vec_set_hi_<mode>): Ditto.
16494         (vec_set_lo_<mode>): Ditto.
16495         (*vec_extract<mode>_0): New define_insn_and_split for BF
16496         vector extract.
16497         (*vec_extract<mode>): New define_insn.
16498         (VEC_EXTRACT_MODE): Add BF vector modes.
16499         (PINSR_MODE): Add V8BF.
16500         (sse2p4_1): Ditto.
16501         (pinsr_evex_isa): Ditto.
16502         (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
16503         insert for V8BFmode.
16504         (pbroadcast_evex_isa): Add BF vector modes.
16505         (AVX2_VEC_DUP_MODE): Ditto.
16506         (VEC_INIT_MODE): Ditto.
16507         (VEC_INIT_HALF_MODE): Ditto.
16508         (avx2_pbroadcast<mode>): Adjust to support BF vector mode
16509         broadcast.
16510         (avx2_pbroadcast<mode>_1): Ditto.
16511         (<avx512>_vec_dup<mode>_1): Ditto.
16512         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
16513         Ditto.
16515 2022-08-18  Martin Liska  <mliska@suse.cz>
16517         * configure: Regenerate.
16519 2022-08-18  Haochen Gui  <guihaoc@gcc.gnu.org>
16521         PR target/103109
16522         * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
16523         (<u>madddi4_highpart): New.
16524         (<u>madddi4_highpart_le): New.
16526 2022-08-18  Aldy Hernandez  <aldyh@redhat.com>
16528         * gimple-range-path.cc
16529         (path_range_query::compute_exit_dependencies): Use
16530         gimple_range_ssa_names.
16532 2022-08-18  zhongjuzhe  <juzhe.zhong@rivai.ai>
16534         * config/riscv/predicates.md: Adjust runtime invariant.
16535         * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
16536         (NUM_POLY_INT_COEFFS): New.
16537         * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
16538         runtime invariant.
16539         * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
16540         Adjust runtime invariant.
16541         * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
16542         invariant.
16543         (enum riscv_microarchitecture_type): Ditto.
16544         (riscv_valid_offset_p): Ditto.
16545         (riscv_valid_lo_sum_p): Ditto.
16546         (riscv_address_insns): Ditto.
16547         (riscv_load_store_insns): Ditto.
16548         (riscv_legitimize_move): Ditto.
16549         (riscv_binary_cost): Ditto.
16550         (riscv_rtx_costs): Ditto.
16551         (riscv_output_move): Ditto.
16552         (riscv_extend_comparands): Ditto.
16553         (riscv_flatten_aggregate_field): Ditto.
16554         (riscv_get_arg_info): Ditto.
16555         (riscv_pass_by_reference): Ditto.
16556         (riscv_elf_select_rtx_section): Ditto.
16557         (riscv_stack_align): Ditto.
16558         (riscv_compute_frame_info): Ditto.
16559         (riscv_initial_elimination_offset): Ditto.
16560         (riscv_set_return_address): Ditto.
16561         (riscv_for_each_saved_reg): Ditto.
16562         (riscv_first_stack_step): Ditto.
16563         (riscv_expand_prologue): Ditto.
16564         (riscv_expand_epilogue): Ditto.
16565         (riscv_can_use_return_insn): Ditto.
16566         (riscv_secondary_memory_needed): Ditto.
16567         (riscv_hard_regno_nregs): Ditto.
16568         (riscv_convert_vector_bits): New.
16569         (riscv_option_override): Adjust runtime invariant.
16570         (riscv_promote_function_mode): Ditto.
16571         * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
16572         (BITS_PER_RISCV_VECTOR): New.
16573         (BYTES_PER_RISCV_VECTOR): New.
16574         * config/riscv/riscv.md: Adjust runtime invariant.
16576 2022-08-18  Lulu Cheng  <chenglulu@loongson.cn>
16578         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
16579         Get __tls_get_addr address through got table when disable plt.
16581 2022-08-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
16583         * config/xtensa/xtensa.cc (xtensa_expand_prologue):
16584         Use an "addmi" machine instruction for updating the stack pointer
16585         rather than addition/subtraction via hard register A9, if the amount
16586         of change satisfies the literal value conditions of that instruction
16587         when the CALL0 ABI is used.
16588         (xtensa_expand_epilogue): Ditto.
16589         And also inhibit the stack pointer addition of constant zero.
16591 2022-08-17  Roger Sayle  <roger@nextmovesoftware.com>
16593         PR target/106640
16594         * config/i386/i386-features.cc
16595         (timde_scalar_chain::compute_convert_gain): Replace incorrect use
16596         of XINT with INTVAL (XEXP (src, 1)).
16598 2022-08-17  Aldy Hernandez  <aldyh@redhat.com>
16600         * gimple-range-path.cc
16601         (path_range_query::compute_ranges_in_block): Remove
16602         set_root_oracle call.
16603         (path_range_query::compute_ranges): Pass ranger oracle to
16604         reset_path.
16605         * value-relation.cc (path_oracle::reset_path): Set root oracle.
16606         * value-relation.h (path_oracle::reset_path): Add root oracle
16607         argument.
16609 2022-08-17  Marek Polacek  <polacek@redhat.com>
16611         PR c++/89780
16612         * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
16613         OPT_Wpessimizing_move and OPT_Wredundant_move.
16614         * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
16616 2022-08-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
16617             Jakub Jelinek  <jakub@redhat.com>
16619         PR fortran/46539
16620         * common.opt (static-libquadmath): New option.
16621         * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
16622         * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
16624 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
16626         * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
16627         when filenames come out identically.
16629 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
16631         PR middle-end/106548
16632         * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
16633         for 'simd' linear-step values that are variable.
16635 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
16636             Chung-Lin Tang  <cltang@codesourcery.com>
16638         PR c++/104493
16639         * gimplify.cc (omp_notice_variable): Call omp_mappable_type
16640         instead of removed langhook.
16641         * omp-general.h (omp_mappable_type): New prototype.
16642         * omp-general.cc (omp_mappable_type):  New; moved from ...
16643         * langhooks.cc (lhd_omp_mappable_type): ... here.
16644         * langhooks-def.h (lhd_omp_mappable_type,
16645         LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
16646         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
16647         * langhooks.h (struct lang_hooks_for_types): Remove
16648         omp_mappable_type.
16650 2022-08-17  Christophe Lyon  <christophe.lyon@arm.com>
16652         * config.gcc (arm): Define with_float to hard if target name ends
16653         with 'hf'.
16655 2022-08-17  Richard Biener  <rguenther@suse.de>
16657         * tree-ssa-threadbackward.cc
16658         (back_threader_profitability): Split profitable_path_p
16659         into possibly_profitable_path_p and itself, keep state
16660         as new members.
16661         (back_threader::m_profit): Remove.
16662         (back_threader::find_paths): Likewise.
16663         (back_threader::maybe_register_path): Take profitability
16664         instance as parameter.
16665         (back_threader::find_paths_to_names): Likewise.  Use
16666         possibly_profitable_path_p and avoid the path range query
16667         when the path is currently too large.
16668         (back_threader::find_paths): Fold into ...
16669         (back_threader::maybe_thread_block): ... this.
16670         (get_gimple_control_stmt): Remove.
16671         (back_threader_profitability::possibly_profitable_path_p):
16672         Split out from profitable_path_p, do early profitability
16673         checks.
16674         (back_threader_profitability::profitable_path_p): Do final
16675         profitability path after the taken edge has been determined.
16677 2022-08-17  Xi Ruoyao  <xry111@xry111.site>
16679         * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
16680         (fmin<mode>3): Likewise.
16682 2022-08-17  Andrew MacLeod  <amacleod@redhat.com>
16684         * gimple-range-fold.cc (gimple_range_ssa_names): New.
16685         * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
16686         * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
16687         code to new routine.
16689 2022-08-16  Martin Liska  <mliska@suse.cz>
16691         PR target/106637
16692         * doc/install.texi: Remove link to www.bullfreeware.com
16694 2022-08-16  Kito Cheng  <kito.cheng@sifive.com>
16696         * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
16697         zfh and zfhmin.
16698         (riscv_ext_version_table): Ditto.
16699         (riscv_ext_flag_table): Ditto.
16700         * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
16701         (MASK_ZFH): Ditto.
16702         (TARGET_ZFHMIN): Ditto.
16703         (TARGET_ZFH): Ditto.
16704         * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
16705         for zfh and zfhmin.
16706         (riscv_emit_float_compare): Handle HFmode.
16707         * config/riscv/riscv.md (ANYF): Add HF.
16708         (SOFTF): Add HF.
16709         (load): Ditto.
16710         (store): Ditto.
16711         (truncsfhf2): New.
16712         (truncdfhf2): Ditto.
16713         (extendhfsf2): Ditto.
16714         (extendhfdf2): Ditto.
16715         (*movhf_hardfloat): Ditto.
16716         (*movhf_softfloat): Make sure not ZFHMIN.
16717         * config/riscv/riscv.opt (riscv_zf_subext): New.
16719 2022-08-16  Kito Cheng  <kito.cheng@sifive.com>
16721         * config/riscv/riscv-builtins.cc: include stringpool.h
16722         (riscv_float16_type_node): New.
16723         (riscv_init_builtin_types): Ditto.
16724         (riscv_init_builtins): Call riscv_init_builtin_types.
16725         * config/riscv/riscv-modes.def (HF): New.
16726         * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
16727         (riscv_mangle_type): New.
16728         (riscv_scalar_mode_supported_p): Ditto.
16729         (riscv_libgcc_floating_mode_supported_p): Ditto.
16730         (riscv_excess_precision): Ditto.
16731         (riscv_floatn_mode): Ditto.
16732         (riscv_init_libfuncs): Ditto.
16733         (TARGET_MANGLE_TYPE): Ditto.
16734         (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
16735         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
16736         (TARGET_INIT_LIBFUNCS): Ditto.
16737         (TARGET_C_EXCESS_PRECISION): Ditto.
16738         (TARGET_FLOATN_MODE): Ditto.
16739         * config/riscv/riscv.md (mode): Add HF.
16740         (softload): Add HF.
16741         (softstore): Ditto.
16742         (fmt): Ditto.
16743         (UNITMODE): Ditto.
16744         (movhf): New.
16745         (*movhf_softfloat): New.
16747 2022-08-16  Richard Biener  <rguenther@suse.de>
16749         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
16750         Do not walk further if we are leaving the current loop.
16752 2022-08-16  Sergei Trofimovich  <siarheit@google.com>
16754         PR driver/106624
16755         * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
16756         argument using xstrdup().
16758 2022-08-16  Aldy Hernandez  <aldyh@redhat.com>
16760         * gimple-range-path.cc (path_range_query::import_p): Rename to...
16761         (path_range_query::exit_dependency_p): ...this.
16762         (path_range_query::dump): Rename imports to exit dependencies.
16763         (path_range_query::compute_ranges_in_phis): Same.
16764         (path_range_query::compute_ranges_in_block): Same.
16765         (path_range_query::adjust_for_non_null_uses): Same.
16766         (path_range_query::compute_ranges): Same.
16767         (path_range_query::compute_phi_relations): Same.
16768         (path_range_query::add_to_imports): Rename to...
16769         (path_range_query::add_to_exit_dependencies): ...this.
16770         (path_range_query::compute_imports): Rename to...
16771         (path_range_query::compute_exit_dependencies): ...this.
16772         * gimple-range-path.h (class path_range_query): Rename imports to
16773         exit dependencies.
16775 2022-08-16  Martin Liska  <mliska@suse.cz>
16777         * value-range-storage.h (class obstack_vrange_allocator): Mark
16778         the class as final.
16779         (class ggc_vrange_allocator): Likewise.
16781 2022-08-16  Martin Liska  <mliska@suse.cz>
16783         * value-range-equiv.h (class value_range_equiv): Add virtual
16784         destructor.
16785         * value-range.h: Likewise.
16787 2022-08-16  Richard Biener  <rguenther@suse.de>
16789         PR middle-end/106630
16790         * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
16791         narrowing conversions.
16793 2022-08-16  Martin Liska  <mliska@suse.cz>
16795         * value-range-equiv.h (class value_range_equiv):
16797 2022-08-16  Martin Liska  <mliska@suse.cz>
16799         * config/i386/i386-features.h (class general_scalar_chain): Add
16800         final override for a method.
16801         (class timode_scalar_chain): Likewise.
16803 2022-08-16  Richard Biener  <rguenther@suse.de>
16805         * doc/invoke.texi (max-jump-thread-paths): Adjust.
16807 2022-08-16  Martin Liska  <mliska@suse.cz>
16809         * opts-common.cc (jobserver_info::connect): Open fifo
16810         in non-blocking mode.
16812 2022-08-16  Kewen.Lin  <linkw@gcc.gnu.org>
16814         PR target/103353
16815         * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
16816         check to preparation statements and add handlings for !TARGET_MMA.
16817         (define_expand movxo): Likewise.
16819 2022-08-16  Kewen Lin  <linkw@linux.ibm.com>
16821         PR tree-optimization/106322
16822         * tree-vect-stmts.cc (vectorizable_call): Don't allow
16823         vect_emulated_vector_p type for both vectype_in and vectype_out.
16825 2022-08-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
16827         * common/config/xtensa/xtensa-common.cc
16828         (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
16829         for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
16831 2022-08-15  Andrew MacLeod  <amacleod@redhat.com>
16833         PR tree-optimization/106621
16834         * value-range.cc (irange::set): Check for POLY_INT_CST early.
16836 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
16838         * config/i386/i386-features.cc
16839         (timode_scalar_chain::compute_convert_gain): Provide costs for
16840         shifts and rotates.
16841         (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
16842         and ROTATE just like existing ASHIFT and LSHIFTRT cases.
16843         (timode_scalar_to_vector_candidate_p): Handle all shifts and
16844         rotates by integer constants between 0 and 127.
16846 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
16848         * config/i386/i386-features.cc
16849         (timode_scalar_chain::compute_convert_gain): Provide gains for
16850         comparisons against 0/-1, including "*testti" patterns.
16852 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
16854         PR tree-optimization/64992
16855         PR tree-optimization/98956
16856         * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
16857         when X is zero_one_valued_p and the shift constant C is valid.
16858         (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
16859         when X is zero_one_valued_p and the shift constant C is valid.
16861 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
16862             Richard Biener  <rguenther@suse.de>
16864         PR tree-optimization/71343
16865         * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
16866         expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
16867         (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
16868         to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
16870 2022-08-15  Richard Biener  <rguenther@suse.de>
16872         * gimple-range-path.cc (range_on_path_entry): Just
16873         call range_on_entry.
16875 2022-08-15  Jakub Jelinek  <jakub@redhat.com>
16877         PR rtl-optimization/106590
16878         * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
16879         (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
16880         mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
16881         further conditional moves.
16883 2022-08-15  konglin1  <lingling.kong@intel.com>
16885         * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
16886         * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
16887         (ix86_register_bf16_builtin_type): New function.
16888         (ix86_bf16_type_node): New.
16889         (ix86_bf16_ptr_type_node): Ditto.
16890         (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
16891         * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
16892         (ADJUST_FLOAT_FORMAT): Ditto.
16893         * config/i386/i386.cc (classify_argument): Handle BFmode.
16894         (construct_container): Ditto.
16895         (function_value_32): Return __bf16 by %xmm0.
16896         (function_value_64): Return __bf16 by SSE register.
16897         (ix86_output_ssemov): Handle BFmode.
16898         (ix86_legitimate_constant_p): Disable BFmode constant double.
16899         (ix86_secondary_reload): Require gpr as intermediate register
16900         to store __bf16 from sse register when sse4 is not available.
16901         (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
16902         (ix86_mangle_type): Add manlging for __bf16 type.
16903         (ix86_invalid_conversion): New function for target hook.
16904         (ix86_invalid_unary_op): Ditto.
16905         (ix86_invalid_binary_op): Ditto.
16906         (TARGET_INVALID_CONVERSION): New define for target hook.
16907         (TARGET_INVALID_UNARY_OP): Ditto.
16908         (TARGET_INVALID_BINARY_OP): Ditto.
16909         * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
16910         * config/i386/i386.md ("mode"): Add BFmode.
16911         (MODE_SIZE): Ditto.
16912         (X87MODEFH): Ditto.
16913         (HFBF): Add new define_mode_iterator.
16914         (*pushhf_rex64): Change for BFmode.
16915         (*push<mode>_rex64): Ditto.
16916         (*pushhf): Ditto.
16917         (*push<mode>): Ditto.
16918         (MODESH): Ditto.
16919         (hfbfconstf): Add new define_mode_attr.
16920         (*mov<mode>_internal): Add BFmode.
16922 2022-08-13  Roger Sayle  <roger@nextmovesoftware.com>
16923             Uroš Bizjak  <ubizjak@gmail.com>
16925         * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
16926         New predicate for values between 0/1 and 255, not multiples of 8.
16927         * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
16928         shifts by constant bit counts.
16929         (*ashlvti3_internal): New define_insn_and_split that lowers
16930         logical left shifts by constant bit counts, that aren't multiples
16931         of 8, before reload.
16932         (lshrv1ti3): Delay lowering of logical right shifts by constant.
16933         (*lshrv1ti3_internal): New define_insn_and_split that lowers
16934         logical right shifts by constant bit counts, that aren't multiples
16935         of 8, before reload.
16936         (ashrv1ti3):: Delay lowering of arithmetic right shifts by
16937         constant bit counts.
16938         (*ashrv1ti3_internal): New define_insn_and_split that lowers
16939         arithmetic right shifts by constant bit counts before reload.
16940         (rotlv1ti3): Delay lowering of rotate left by constant.
16941         (*rotlv1ti3_internal): New define_insn_and_split that lowers
16942         rotate left by constant bits counts before reload.
16943         (rotrv1ti3): Delay lowering of rotate right by constant.
16944         (*rotrv1ti3_internal): New define_insn_and_split that lowers
16945         rotate right by constant bits counts before reload.
16947 2022-08-12  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
16949         * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
16951 2022-08-12  Jan Hubicka  <hubicka@ucw.cz>
16953         PR middle-end/106057
16954         * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
16955         function.
16956         (possible_polymorphic_call_targets): Use it.
16958 2022-08-12  Andrew Carlotti  <andrew.carlotti@arm.com>
16960         * tree-ssa-loop.h: Improve comment
16962 2022-08-12  Jakub Jelinek  <jakub@redhat.com>
16964         PR tree-optimization/106506
16965         * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
16966         is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
16968 2022-08-12  Richard Biener  <rguenther@suse.de>
16970         PR tree-optimization/106593
16971         * tree-ssa-threadbackward.cc (back_threader::find_paths):
16972         If the imports from the conditional do not satisfy
16973         gimple_range_ssa_p don't try to thread anything.
16975 2022-08-12  Tamar Christina  <tamar.christina@arm.com>
16977         PR target/106524
16978         * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
16979         *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
16981 2022-08-12  Tim Lange  <mail@tim-lange.me>
16983         PR analyzer/106000
16984         * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
16986 2022-08-12  Andrew Pinski  <apinski@marvell.com>
16988         * config/aarch64/aarch64.md: Remove comment
16989         about MD_INCLUDES as it is out of date and not needed.
16991 2022-08-11  Richard Biener  <rguenther@suse.de>
16993         * gimple-range-path.cc (path_range_query::compute_imports):
16994         Restrict walking SSA defs to blocks inside the path.  Track
16995         the same operands as range_def_chain::get_def_chain does.
16997 2022-08-11  Richard Biener  <rguenther@suse.de>
16999         PR tree-optimization/106514
17000         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
17001         Compute and unwind both m_imports and interesting on the fly during
17002         path discovery.
17003         (back_threader::find_paths): Compute the original m_imports
17004         from just the SSA uses of the exit conditional.  Drop
17005         handling single_succ_to_potentially_threadable_block.
17006         * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
17007         constant PHI arguments without crashing.  Use PHI_ARG_DEF_FROM_EDGE.
17009 2022-08-11  Richard Biener  <rguenther@suse.de>
17011         * gimple-range-path.h (path_range_query::compute_imports):
17012         Take path as argument, not the exit block.
17013         * gimple-range-path.cc (path_range_query::compute_imports):
17014         Likewise, and adjust, avoiding possibly stale m_path.
17015         (path_range_query::compute_outgoing_relations): Register
17016         relations for all conditionals.
17017         * tree-ssa-threadbackward.cc (back_threader::find_paths):
17018         Adjust.
17020 2022-08-11  Kewen Lin  <linkw@linux.ibm.com>
17022         * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
17023         oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
17024         (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
17026 2022-08-11  Kewen Lin  <linkw@linux.ibm.com>
17028         * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
17029         Remove function declaration.
17031 2022-08-10  Richard Biener  <rguenther@suse.de>
17033         PR tree-optimization/106513
17034         * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
17035         for head_marker.
17037 2022-08-10  Martin Liska  <mliska@suse.cz>
17039         PR lto/106328
17040         * opts-jobserver.h (struct jobserver_info): Add pipefd.
17041         (jobserver_info::connect): New.
17042         (jobserver_info::disconnect): Likewise.
17043         (jobserver_info::get_token): Likewise.
17044         (jobserver_info::return_token): Likewise.
17045         * opts-common.cc: Implement the new functions.
17047 2022-08-10  Martin Liska  <mliska@suse.cz>
17049         * opts-jobserver.h: Add one member.
17050         * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
17051         format of --jobserver-auth.
17053 2022-08-10  Martin Liska  <mliska@suse.cz>
17055         * gcc.cc (driver::detect_jobserver): Remove and move to
17056         jobserver.h.
17057         * lto-wrapper.cc (jobserver_active_p): Likewise.
17058         (run_gcc): Likewise.
17059         * opts-jobserver.h: New file.
17060         * opts-common.cc (jobserver_info::jobserver_info): New function.
17062 2022-08-09  Roger Sayle  <roger@nextmovesoftware.com>
17064         * config/i386/i386-features.cc (scalar_chain::convert_compare):
17065         Create new pseudos only when/if needed.  Add support for TEST,
17066         i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
17067         When broadcasting V2DImode and V4SImode use new pseudo register.
17068         (timode_scalar_chain::convert_op): Do nothing if operand is
17069         already V1TImode.  Avoid generating useless SUBREG conversions,
17070         i.e. (SUBREG:V1TImode (REG:V1TImode) 0).  Handle CONST_WIDE_INT
17071         in addition to CONST_INT by using CONST_SCALAR_INT_P.
17072         (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
17073         CONST_WIDE_INT and CONST_INT.  Recognize new *testti_doubleword
17074         pattern as an STV candidate.
17075         (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
17076         operands in binary logic operations.
17077         * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
17078         for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
17079         as regular PTEST, i.e. cost->sse_op.
17080         * config/i386/i386.md (*testti_doubleword): New pre-reload
17081         define_insn_and_split that recognizes comparison of TI mode AND
17082         against zero.
17083         * config/i386/sse.md (*ptest<mode>_and): New pre-reload
17084         define_insn_and_split that recognizes UNSPEC_PTEST of identical
17085         AND operands.
17087 2022-08-09  Roger Sayle  <roger@nextmovesoftware.com>
17088             Richard Biener  <rguenther@suse.de>
17090         PR middle-end/21137
17091         PR tree-optimization/98954
17092         * fold-const.cc (fold_binary_loc): Remove optimizations to
17093         optimize ((X >> C1) & C2) ==/!= 0.
17094         * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
17095         check, and handle all values of INTEGER_CSTs @2 and @3.
17096         (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
17097         checks, and handle all values of INTEGER_CSTs @2 and @3.
17099 2022-08-09  David Malcolm  <dmalcolm@redhat.com>
17101         * doc/invoke.texi (Static Analyzer Options): Add notes on which
17102         functions the analyzer has hardcoded knowledge of.
17104 2022-08-09  Andrew Stubbs  <ams@codesourcery.com>
17106         * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
17107         (num_arg_regs): Allow vector arguments.
17108         (gcn_function_arg): Likewise.
17109         (gcn_function_arg_advance): Likewise.
17110         (gcn_arg_partial_bytes): Likewise.
17111         (gcn_return_in_memory): Likewise.
17112         (gcn_expand_epilogue): Get return value from v8.
17113         * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
17114         (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
17115         (FIRST_VPARM_REG): New.
17116         (FUNCTION_ARG_REGNO_P): Allow vector parameters.
17117         (struct gcn_args): Add vnum field.
17118         (LIBCALL_VALUE): All vector return values.
17119         * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
17120         (gcn_call_value_indirect): Likewise.
17122 2022-08-09  Richard Biener  <rguenther@suse.de>
17124         * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
17125         directly.  Avoid update_ssa when in SSA form.
17126         (expand_omp_atomic_store): Likewise.
17127         (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
17128         form.
17129         (expand_omp_atomic_pipeline): Likewise.
17130         (expand_omp_atomic_mutex): Likewise.
17131         * tree-parloops.cc (gen_parallel_loop): Use
17132         TODO_update_ssa_no_phi after loop_version.
17134 2022-08-09  Richard Biener  <rguenther@suse.de>
17136         * doc/invoke.texi (max-fsm-thread-length): Remove.
17137         * params.opt (max-fsm-thread-length): Likewise.
17138         * tree-ssa-threadbackward.cc
17139         (back_threader_profitability::profitable_path_p): Do not
17140         check max-fsm-thread-length.
17142 2022-08-09  Richard Biener  <rguenther@suse.de>
17144         PR tree-optimization/106514
17145         * params.opt (max-jump-thread-paths): New.
17146         * doc/invoke.texi (max-jump-thread-paths): Document.
17147         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
17148         Honor max-jump-thread-paths, take overall_path argument.
17149         (back_threader::find_paths): Pass 1 as initial overall_path.
17151 2022-08-09  Tobias Burnus  <tobias@codesourcery.com>
17153         PR middle-end/106492
17154         * omp-low.cc (lower_rec_input_clauses): Add missing folding
17155         to data type of linear-clause list item.
17157 2022-08-08  Andrew MacLeod  <amacleod@redhat.com>
17159         PR tree-optimization/106556
17160         * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
17161         type of the cond_expr operands being evaluted.
17163 2022-08-08  Tom Honermann  <tom@honermann.net>
17165         * ginclude/stdatomic.h (atomic_char8_t,
17166         ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
17168 2022-08-08  Andrew Pinski  <apinski@marvell.com>
17170         PR middle-end/103645
17171         * gimplify.cc (gimplify_init_constructor): Don't build/add
17172         gimple assignment of an empty type.
17174 2022-08-08  Richard Biener  <rguenther@suse.de>
17176         PR lto/106540
17177         PR lto/106334
17178         * dwarf2out.cc (dwarf2out_register_external_die): Restore
17179         original assert.
17180         * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
17181         to input DECL_INITIAL, avoiding to commit drefs.
17183 2022-08-07  Roger Sayle  <roger@nextmovesoftware.com>
17185         * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
17186         for x86_64_hilo_general_operand to general operand.  Call
17187         force_reg on parts that are not x86_64_immediate_operand.
17189 2022-08-05  David Malcolm  <dmalcolm@redhat.com>
17191         PR analyzer/105947
17192         * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
17194 2022-08-05  Roger Sayle  <roger@nextmovesoftware.com>
17196         * expmed.cc (emit_store_flag_1): Move code to expand double word
17197         equality and inequality against zero or -1, using word operations,
17198         to after trying to use the backend's cstore<mode>4 optab/expander.
17200 2022-08-05  Tamar Christina  <tamar.christina@arm.com>
17202         PR middle-end/106534
17203         * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
17204         value_replacement and store_elim from diamonds.
17206 2022-08-05  Richard Biener  <rguenther@suse.de>
17208         * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
17209         Check whether the registry register_path rejected the path.
17210         (back_threader_registry::register_path): Return whether
17211         register_jump_thread succeeded.
17213 2022-08-05  Aldy Hernandez  <aldyh@redhat.com>
17215         PR tree-optimization/106514
17216         * value-range.cc (unsupported_range::unsupported_range): Move...
17217         * value-range.h (unsupported_range::unsupported_range): ...here.
17218         (unsupported_range::set_undefined): New.
17220 2022-08-05  Richard Biener  <rguenther@suse.de>
17222         PR tree-optimization/106533
17223         * tree-loop-distribution.cc (loop_distribution::execute): Continue
17224         analyzing the inner loops when find_seed_stmts_for_distribution
17225         fails.
17227 2022-08-05  Andrew Pinski  <apinski@marvell.com>
17229         * config/riscv/predicates.md (splittable_const_int_operand):
17230         Remove the check for TARGET_64BIT for single bit const values.
17232 2022-08-04  Andrew MacLeod  <amacleod@redhat.com>
17234         PR tree-optimization/106514
17235         * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
17236         Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
17238 2022-08-04  Tamar Christina  <tamar.christina@arm.com>
17240         * match.pd: New bit_not rule.
17242 2022-08-04  Tamar Christina  <tamar.christina@arm.com>
17244         PR middle-end/106519
17245         * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
17246         diamond shapes.
17248 2022-08-04  Sam Feifer  <sfeifer@redhat.com>
17250         PR tree-optimization/106243
17251         * match.pd (-x & 1): New simplification.
17253 2022-08-04  Richard Biener  <rguenther@suse.de>
17255         PR tree-optimization/106521
17256         * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
17257         CFG cleanup manually before rewriting into LC SSA.
17259 2022-08-04  Richard Biener  <rguenther@suse.de>
17261         * tree-ssa-threadbackward.cc (populate_worklist): Remove.
17262         (back_threader::resolve_phi): Likewise.
17263         (back_threader::find_paths_to_names): Rewrite greedy search.
17265 2022-08-04  Ilya Leoshkevich  <iii@linux.ibm.com>
17267         * config/s390/vector.md (V_HW_FT): New iterator.
17268         * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
17269         of V_HW.
17271 2022-08-03   Michael Meissner  <meissner@linux.ibm.com>
17273         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
17274         setting -mblock-ops-vector-pair.
17276 2022-08-03  Andrew MacLeod  <amacleod@redhat.com>
17278         PR tree-optimization/106514
17279         * value-relation.cc (path_oracle::killing_def) Do not walk the
17280         equivalence set clearing bits.
17282 2022-08-03  Tamar Christina  <tamar.christina@arm.com>
17284         * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
17285         sequence of a three-way conditional.
17286         (replace_phi_edge_with_variable): Support diamonds.
17287         (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
17288         min/max.
17289         (strip_bit_not, invert_minmax_code): New.
17291 2022-08-03  Richard Earnshaw  <rearnsha@arm.com>
17293         PR rtl-optimization/106187
17294         * alias.h (mems_same_for_tbaa_p): Declare.
17295         * alias.cc (mems_same_for_tbaa_p): New function.
17296         * dse.cc (record_store): Use it instead of open-coding
17297         alias check.
17298         * cselib.h (cselib_redundant_set_p): Declare.
17299         * cselib.cc: Include alias.h
17300         (cselib_redundant_set_p): New function.
17301         * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
17302         of rtx_equal_for_cselib_p.
17303         * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
17304         (reload_cse_noop_set_p): Delete.
17306 2022-08-03  Martin Liska  <mliska@suse.cz>
17308         * doc/gcov-dump.texi: Document the new option.
17309         * gcov-dump.cc (main): Parse the new option.
17310         (print_usage): Show the option.
17311         (tag_counters): Sort key:value pairs of TOP N counter.
17313 2022-08-03  Martin Liska  <mliska@suse.cz>
17315         * profile.cc (compute_branch_probabilities): Do not collect
17316         stats unless TDF_DETAILS.
17318 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
17319             Uroš Bizjak  <ubizjak@gmail.com>
17321         PR target/47949
17322         * config/i386/i386.md (peephole2): New peephole2 to convert
17323         SWI48 moves to/from %rax/%eax where the src is dead to xchg,
17324         when optimizing for minimal size with -Oz.
17326 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
17328         * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
17329         to split comparisons against -1 using AND and CMP -1 instructions.
17331 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
17333         * config/i386/i386-features.cc (compute_convert_gain): Add gain
17334         for converting suitable TImode shift to a V1TImode shift.
17335         (timode_scalar_chain::convert_insn): Add support for converting
17336         suitable ASHIFT and LSHIFTRT.
17337         (timode_scalar_to_vector_candidate_p): Consider logical shifts
17338         by integer constants that are multiples of 8 to be candidates.
17340 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
17341             Segher Boessenkool  <segher@kernel.crashing.org>
17342             Richard Sandiford  <richard.sandiford@arm.com>
17344         * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
17345         optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
17346         that are all positive to complement the existing FFS and
17347         idempotent ABS simplifications.
17348         <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
17349         val_signbit_known_clear_p is true of the operand.
17350         Simplify sign extensions of SUBREG truncations of operands
17351         that are already suitably (zero) extended.
17352         <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
17353         of operands that are already suitably zero extended.
17355 2022-08-02  Andrew MacLeod  <amacleod@redhat.com>
17357         PR tree-optimization/106510
17358         * gimple-range-fold.cc (fur_source::register_outgoing_edges):
17359         Check for unsupported statements early.
17361 2022-08-02  Andrew MacLeod  <amacleod@redhat.com>
17363         PR tree-optimization/106474
17364         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
17365         range of equivalences that may contribute to the range.
17367 2022-08-02  Jose E. Marchesi  <jose.marchesi@oracle.com>
17369         * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
17370         encoding bit in BTF.
17372 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
17374         * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
17375         irange check.
17376         (tree_lower_bound): New.
17377         (tree_upper_bound): New.
17378         (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
17379         vrange.
17380         * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
17381         argument to vrange.
17383 2022-08-02  Richard Biener  <rguenther@suse.de>
17385         * tree-ssa-threadbackward.cc
17386         (back_threader_profitability::profitable_path_p): Apply
17387         size constraints to all paths again.
17389 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
17391         * range-op-float.cc (finite_operands_p): New.
17392         (frelop_early_resolve): New.
17393         (default_frelop_fold_range): New.
17394         (class foperator_equal): New.
17395         (class foperator_not_equal): New.
17396         (class foperator_lt): New.
17397         (class foperator_le): New.
17398         (class foperator_gt): New.
17399         (class foperator_ge): New.
17400         (class foperator_unordered): New.
17401         (class foperator_ordered): New.
17402         (class foperator_relop_unknown): New.
17403         (floating_op_table::floating_op_table): Add above classes to
17404         floating op table.
17405         * value-range.h (frange::supports_p): Enable.
17407 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
17409         * tree-core.h (struct tree_ssa_name): Add frange_info and
17410         reshuffle the rest.
17411         * value-range-storage.cc (vrange_storage::alloc_slot): Add case
17412         for frange.
17413         (vrange_storage::set_vrange): Same.
17414         (vrange_storage::get_vrange): Same.
17415         (vrange_storage::fits_p): Same.
17416         (frange_storage_slot::alloc_slot): New.
17417         (frange_storage_slot::set_frange): New.
17418         (frange_storage_slot::get_frange): New.
17419         (frange_storage_slot::fits_p): New.
17420         * value-range-storage.h (class frange_storage_slot): New.
17422 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
17424         * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
17425         query to integrals.
17427 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
17429         * value-range.cc (frange::set): Initialize m_props and cleanup.
17431 2022-08-02  Richard Biener  <rguenther@suse.de>
17433         PR tree-optimization/106497
17434         * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
17435         Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
17437 2022-08-02  Martin Liska  <mliska@suse.cz>
17439         * profile.cc (compute_branch_probabilities): Dump details only
17440         if TDF_DETAILS.
17441         * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
17442         TDF_ADDRESS is used, it makes comparison harder.
17444 2022-08-02  Richard Biener  <rguenther@suse.de>
17446         PR tree-optimization/106498
17447         * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
17448         SSA update here.
17449         (expand_omp_for): Or here.
17450         (execute_expand_omp): Instead schedule it here together
17451         with CFG cleanup via TODO.
17453 2022-08-02  Richard Biener  <rguenther@suse.de>
17455         PR lto/106334
17456         * dwarf2out.cc (dwarf2out_register_external_die): Adjust
17457         assert.
17459 2022-08-02  Richard Biener  <rguenther@suse.de>
17461         PR tree-optimization/106495
17462         * tree-ssa-threadbackward.cc
17463         (back_threader_profitability::profitable_path_p): If known_edge
17464         is probably never executed avoid threading.
17466 2022-08-01  David Malcolm  <dmalcolm@redhat.com>
17468         * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
17469         error.
17471 2022-08-01  Roger Sayle  <roger@nextmovesoftware.com>
17472             Uroš Bizjak  <ubizjak@gmail.com>
17474         PR target/106481
17475         * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
17476         Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
17477         CONST_VECTOR.
17479 2022-08-01  H.J. Lu  <hjl.tools@gmail.com>
17481         PR target/83782
17482         * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
17483         (TARGET_IFUNC_REF_LOCAL_OK): Use it.
17485 2022-08-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
17487         PR debug/106263
17488         * ctfc.h (struct ctf_dtdef): Add field linkage.
17489         * ctfc.cc (ctf_add_function): Set ctti_linkage.
17490         * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
17491         function types and subprograms.
17492         * btfout.cc (btf_asm_func_type): Emit linkage information for the
17493         function.
17494         (btf_dtd_emit_preprocess_cb): Propagate the linkage information
17495         for functions.
17497 2022-08-01  Andrew Stubbs  <ams@codesourcery.com>
17498             Jakub Jelinek   <jakub@redhat.com>
17500         * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
17501         the mask type.
17503 2022-08-01  Sam Feifer  <sfeifer@redhat.com>
17505         PR tree-optimization/104992
17506         * match.pd (x / y * y == x): New simplification.
17508 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
17510         * value-range.cc (tree_compare): New.
17511         (frange::set): Make more general.
17512         (frange::normalize_kind): Cleanup and return bool.
17513         (frange::union_): Use normalize_kind return value.
17514         (frange::intersect): Same.
17515         (frange::verify_range): Remove unnecessary else.
17516         * value-range.h (vrp_val_max): Move before frange class.
17517         (vrp_val_min): Same.
17518         (frange::frange): Remove set to m_type.
17520 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
17522         * value-range.cc (vrange::supports_type_p): Use const_tree.
17523         (irange::supports_type_p): Same.
17524         (frange::supports_type_p): Same.
17525         * value-range.h (Value_Range::supports_type_p): Same.
17526         (irange::supports_p): Same.
17528 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
17530         * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
17531         query SCEV for integers.
17532         (fold_using_range::range_of_ssa_name_with_loop_info): Remove
17533         irange check.
17535 2022-07-31  Roger Sayle  <roger@nextmovesoftware.com>
17537         * config/i386/i386.md (define_expand <any_rotate>ti3): For
17538         rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
17539         (rot[lr]64ti2_doubleword): New post-reload splitter.
17541 2022-07-31  Roger Sayle  <roger@nextmovesoftware.com>
17542             H.J. Lu  <hjl.tools@gmail.com>
17544         PR target/106450
17545         * config/i386/i386-features.cc (timode_check_non_convertible_regs):
17546         Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
17547         (timode_remove_non_convertible_regs): Update comment.
17548         Call timode_check_non_convertible_reg on all TImode register
17549         DEFs and USEs in each instruction.
17551 2022-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
17553         * config/xtensa/xtensa.md: Change hard register number used in
17554         the split patterns for indirect sibling call fixups from 10 to 11,
17555         the last free one for the CALL0 ABI.
17557 2022-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
17559         * config/xtensa/xtensa.cc (xtensa_rtx_costs):
17560         Add new case for IF_THEN_ELSE.
17562 2022-07-29  Andrew Stubbs  <ams@codesourcery.com>
17564         * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
17565         (<expander><mode>3<exec>): Use V_INT_noHI.
17566         (v<expander><mode>3<exec>): Likewise.
17568 2022-07-29  Andrew Stubbs  <ams@codesourcery.com>
17570         * config/gcn/gcn.md (one_cmpldi2): New.
17572 2022-07-29  Richard Biener  <rguenther@suse.de>
17574         PR tree-optimization/105679
17575         * tree-ssa-threadbackward.cc
17576         (back_threader_profitability::profitable_path_p): Avoid threading
17577         when the entry edge is probably never executed.
17579 2022-07-29  Richard Biener  <rguenther@suse.de>
17581         PR tree-optimization/106422
17582         * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
17583         Check whether we can copy thread blocks and cancel the thread if not.
17585 2022-07-29  Jakub Jelinek  <jakub@redhat.com>
17587         PR middle-end/106449
17588         * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
17589         iterators in non-rectangular simd loops.  Unshare fd->loops[i].n2
17590         or n2 before regimplifying it inside of a condition.
17592 2022-07-29  Jakub Jelinek  <jakub@redhat.com>
17594         * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
17595         extract_omp_for_update_vars, expand_omp_for_ordered_loops,
17596         expand_omp_simd): Don't fold_convert second argument to
17597         fold_build_pointer_plus to sizetype.
17599 2022-07-29  Lulu Cheng  <chenglulu@loongson.cn>
17601         * config.in: Regenerate.
17602         * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
17603         Select the value of the macro definition according to whether
17604         HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
17605         * configure: Regenerate.
17606         * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
17608 2022-07-29  Richard Biener  <rguenther@suse.de>
17610         * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
17611         Use CONVERT_EXPR_CODE_P.
17613 2022-07-29  Richard Biener  <rguenther@suse.de>
17615         * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
17616         get_vectype_for_scalar_type instead of
17617         vect_get_vector_types_for_stmt.
17619 2022-07-28  David Malcolm  <dmalcolm@redhat.com>
17621         PR analyzer/105893
17622         * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
17624 2022-07-28  David Malcolm  <dmalcolm@redhat.com>
17626         * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
17627         url.
17628         (Static Analyzer Options): Likewise.  Add urefs for all of the
17629         warnings that have associated CWE identifiers.
17631 2022-07-28  Maciej W. Rozycki  <macro@embecosm.com>
17633         * doc/implement-c.texi (Floating point implementation): Mention
17634         `-fno-trapping-math' in the context of FENV_ACCESS pragma.
17635         * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
17636         implication in the descriptions of `-fno-trapping-math' and
17637         `-frounding-math'.
17639 2022-07-28  Maciej W. Rozycki  <macro@embecosm.com>
17641         * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
17642         (QUIET_PATTERN): New int attribute.
17643         (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
17644         RTL insns entirely within the preparation statements.
17645         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
17646         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
17647         insns.
17648         (*riscv_fsnvsnan<mode>2): New insn.
17650 2022-07-28  Richard Biener  <rguenther@suse.de>
17652         PR middle-end/106457
17653         * tree.cc (array_at_struct_end_p): Handle array objects
17654         specially.
17656 2022-07-28  Jakub Jelinek  <jakub@redhat.com>
17658         PR tree-optimization/106099
17659         * internal-fn.def (TRAP): New internal fn.
17660         * internal-fn.h (expand_TRAP): Declare.
17661         * internal-fn.cc (expand_TRAP): Define.
17662         * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
17663         use internal fn rather than builtin.
17665 2022-07-27  Andrew Carlotti  <andrew.carlotti@arm.com>
17667         * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
17669 2022-07-27  WANG Xuerui  <i@xen0n.name>
17671         * doc/invoke.texi: Document -m[no-]explicit-relocs for
17672         LoongArch.
17674 2022-07-27  Maciej W. Rozycki  <macro@embecosm.com>
17676         * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
17677         duplicate backslashes.
17679 2022-07-27  Maciej W. Rozycki  <macro@embecosm.com>
17681         * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
17682         case.
17684 2022-07-27  Jakub Jelinek  <jakub@redhat.com>
17686         PR debug/106261
17687         * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
17688         output asm thunks for -dx.
17690 2022-07-27  Jakub Jelinek  <jakub@redhat.com>
17692         PR middle-end/106332
17693         * opts-common.cc (candidates_list_and_hint): Add gcc_assert
17694         that candidates is not an empty vector.
17696 2022-07-27  Xi Ruoyao  <xry111@xry111.site>
17698         * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
17699         assembler supports explicit relocation for LoongArch.
17700         * configure: Regenerate.
17701         * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
17702         Define to 0 if not defined.
17703         * config/loongarch/genopts/loongarch.opt.in
17704         (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
17705         * config/loongarch/loongarch.opt: Regenerate.
17707 2022-07-26  Peter Bergner  <bergner@linux.ibm.com>
17709         PR c/106016
17710         * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
17712 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
17714         * config/loongarch/loongarch-opts.cc: Modify the output message string
17715         of the warning.
17717 2022-07-26  Martin Liska  <mliska@suse.cz>
17719         * doc/tm.texi.in: Fix placement of defmac.
17720         * doc/tm.texi: Copy.
17722 2022-07-26  Martin Liska  <mliska@suse.cz>
17724         * doc/tm.texi.in: Fix cross @defmac and @hook.
17725         * doc/tm.texi: Copy.
17727 2022-07-26  Aldy Hernandez  <aldyh@redhat.com>
17729         PR tree-optimization/106444
17730         * value-range-pretty-print.cc (vrange_printer::visit): Handle
17731         legacy ranges.
17732         (vrange_printer::print_irange_bound): Work on wide_int's.
17733         * value-range-pretty-print.h (print_irange_bound): Same.
17734         * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
17736 2022-07-26  Richard Biener  <rguenther@suse.de>
17738         * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
17739         points to a constant continue checking ptr2.
17741 2022-07-26  Andrew Carlotti  <Andrew.Carlotti@arm.com>
17743         * config/aarch64/aarch64-builtins.cc
17744         (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
17745         (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
17746         (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
17747         (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
17748         (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
17749         (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
17750         (MODE_q_p128): Define macro to map to corresponding mode name.
17751         (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
17752         (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
17753         (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
17754         corresponding qualifier name.
17755         (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
17756         (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
17757         functions for the above mappings
17758         (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
17759         (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
17760         (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
17761         (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
17762         for all vreinterpret intrinsics
17763         (enum aarch64_builtins): Add vreinterpret function codes
17764         (aarch64_init_simd_intrinsics): New
17765         (handle_arm_neon_h): Improved comment.
17766         (aarch64_general_fold_builtin): Fold vreinterpret calls
17767         * config/aarch64/arm_neon.h
17768         (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
17769         (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
17770         (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
17771         (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
17772         (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
17773         (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
17774         (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
17775         (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
17776         (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
17777         (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
17778         (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
17779         (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
17780         (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
17781         (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
17782         (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
17783         (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
17784         (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
17785         (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
17786         (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
17787         (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
17788         (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
17789         (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
17790         (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
17791         (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
17792         (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
17793         (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
17794         (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
17795         (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
17796         (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
17797         (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
17798         (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
17799         (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
17800         (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
17801         (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
17802         (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
17803         (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
17804         (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
17805         (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
17806         (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
17807         (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
17808         (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
17809         (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
17810         (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
17811         (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
17812         (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
17813         (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
17814         (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
17815         (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
17816         (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
17817         (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
17818         (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
17819         (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
17820         (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
17821         (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
17822         (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
17823         (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
17824         (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
17825         (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
17826         (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
17827         (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
17828         (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
17829         (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
17830         (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
17831         (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
17832         (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
17833         (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
17834         (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
17835         (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
17836         (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
17837         (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
17838         (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
17839         (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
17840         (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
17841         (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
17842         (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
17843         (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
17844         (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
17845         (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
17846         (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
17847         (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
17848         (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
17849         (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
17850         (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
17851         (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
17852         (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
17853         (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
17854         (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
17855         (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
17856         (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
17857         (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
17858         (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
17859         (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
17860         (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
17861         (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
17862         (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
17863         (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
17864         (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
17865         (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
17866         (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
17867         (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
17868         (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
17869         (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
17870         (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
17871         (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
17872         (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
17873         (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
17874         (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
17875         (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
17876         (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
17877         (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
17878         (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
17879         (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
17880         (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
17881         (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
17882         (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
17883         (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
17884         (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
17885         (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
17886         (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
17887         (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
17888         (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
17889         (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
17890         (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
17891         (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
17892         (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
17893         (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
17894         (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
17895         (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
17896         (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
17897         (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
17898         (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
17899         (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
17900         (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
17901         (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
17902         (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
17903         (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
17904         (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
17905         (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
17906         (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
17907         (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
17908         (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
17909         (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
17910         (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
17911         (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
17912         (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
17913         (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
17914         (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
17915         (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
17916         (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
17917         (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
17918         (vreinterpretq_p128_bf16): Delete
17920 2022-07-26  Andrew Carlotti  <andrew.carlotti@arm.com>
17922         * config/aarch64/aarch64-builtins.cc
17923         (aarch64_simd_builtin_std_type): Rename to...
17924         (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
17925         (aarch64_lookup_simd_builtin_type): Rename to...
17926         (aarch64_simd_builtin_type): ...this. Add const/pointer
17927         support, and extract table lookup to...
17928         (aarch64_lookup_simd_type_in_table): ...this function.
17929         (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
17930         (aarch64_init_fcmla_laneq_builtins): Ditto.
17931         (aarch64_init_simd_builtin_functions): Ditto.
17933 2022-07-26  Andrew Carlotti  <andrew.carlotti@arm.com>
17935         * config/aarch64/aarch64-builtins.cc
17936         (aarch64_general_gimple_fold_builtin): Add combine.
17938 2022-07-26  Richard Biener  <rguenther@suse.de>
17940         PR tree-optimization/106189
17941         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
17942         Divide using offset_ints.
17944 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
17946         * common/config/loongarch/loongarch-common.cc:
17947         Enable '-fsection-anchors' when O1 and more advanced optimization.
17948         * config/loongarch/genopts/loongarch.opt.in: Add new option
17949         '-mexplicit-relocs', and enable by default.
17950         * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
17951         Delete function declaration.
17952         (loongarch_split_move_insn): Delete function declaration.
17953         (loongarch_split_symbol_type): Add function declaration.
17954         * config/loongarch/loongarch.cc (enum loongarch_address_type):
17955         Add new address type 'ADDRESS_LO_SUM'.
17956         (loongarch_classify_symbolic_expression): New function definitions.
17957         Classify the base of symbolic expression X, given that X appears in
17958         context CONTEXT.
17959         (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
17960         (loongarch_split_symbol_type): New function definitions.
17961         Determines whether the symbol load should be split into two instructions.
17962         (loongarch_valid_lo_sum_p): New function definitions.
17963         Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
17964         symbol has type SYMBOL_TYPE.
17965         (loongarch_classify_address): Add handling of 'LO_SUM'.
17966         (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
17967         (loongarch_signed_immediate_p): Sort code.
17968         (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
17969         (loongarch_const_insns): Add handling of 'HIGH'.
17970         (loongarch_split_move_insn_p): Add the static attribute to the function.
17971         (loongarch_emit_set): New function definitions.
17972         (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
17973         (loongarch_legitimize_tls_address): Add symbol handling when defining the
17974         TARGET_EXPLICIT_RELOCS macro.
17975         (loongarch_split_symbol): New function definitions. Split symbol.
17976         (loongarch_legitimize_address): Add codes see if the address can split into a high part
17977         and a LO_SUM.
17978         (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
17979         high and low.
17980         (loongarch_split_move_insn): Delete function definitions.
17981         (loongarch_output_move): Add support for HIGH and LO_SUM.
17982         (loongarch_print_operand_reloc): New function definitions.
17983         Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
17984         (loongarch_memmodel_needs_release_fence): Sort code.
17985         (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
17986         and LOW output.
17987         (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
17988         (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
17989         (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
17990         * config/loongarch/loongarch.md (movti): Delete the template.
17991         (*movti): Delete the template.
17992         (movtf): Delete the template.
17993         (*movtf): Delete the template.
17994         (*low<mode>): New template of normal symbol low address.
17995         (@tls_low<mode>): New template of tls symbol low address.
17996         (@ld_from_got<mode>): New template load address from got table.
17997         (@ori_l_lo12<mode>): New template.
17998         * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
17999         * config/loongarch/predicates.md: Add support for symbol_type HIGH.
18001 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
18003         * config/loongarch/constraints.md (a): Delete the constraint.
18004         (b): A constant call not local address.
18005         (h): Delete the constraint.
18006         (t): Delete the constraint.
18007         * config/loongarch/loongarch-opts.cc (loongarch_config_target):
18008         Remove cModel type support other than normal.
18009         * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
18010         Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
18011         (loongarch_split_symbol): Delete useless function declarations.
18012         (loongarch_split_symbol_type): Delete useless function declarations.
18013         * config/loongarch/loongarch.cc (enum loongarch_address_type):
18014         Delete unnecessary comment information.
18015         (loongarch_symbol_binds_local_p): Modified the judgment order of label
18016         and symbol.
18017         (loongarch_classify_symbol): Return symbol type. If symbol is a label,
18018         or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
18019         return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
18020         (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
18021         'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
18022         (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
18023         and 'SYMBOL_PCREL'.
18024         (loongarch_address_insns): Sort code.
18025         (loongarch_12bit_offset_address_p): Sort code.
18026         (loongarch_14bit_shifted_offset_address_p): Sort code.
18027         (loongarch_call_tls_get_addr): Sort code.
18028         (loongarch_legitimize_tls_address): Sort code.
18029         (loongarch_output_move): Remove schema support for cmodel other than normal.
18030         (loongarch_memmodel_needs_release_fence): Sort code.
18031         (loongarch_print_operand): Sort code.
18032         * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
18033         Rename to LARCH_12BIT_OFFSET_P.
18034         (LARCH_12BIT_OFFSET_P): New macro.
18035         * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
18036         support for cmodel other than normal.
18037         * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
18038         (is_const_call_plt_symbol): Delete this predicate.
18039         (is_const_call_global_noplt_symbol): Delete this predicate.
18040         (is_const_call_no_local_symbol): New predicate, determines whether it is a local
18041         symbol or label.
18043 2022-07-26  Kewen Lin  <linkw@linux.ibm.com>
18045         PR target/106091
18046         * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
18047         REG_EH_REGION when replacing one store insn having it.
18048         (replace_swapped_aligned_load): Likewise.
18050 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
18052         * Makefile.in (OBJS): Add range-op-float.o.
18053         * range-op.cc (get_float_handler): New.
18054         (range_op_handler::range_op_handler): Save code and type for
18055         delayed querying.
18056         (range_op_handler::oeprator bool): Move from header file, and
18057         add support for floats.
18058         (range_op_handler::fold_range): Add support for floats.
18059         (range_op_handler::op1_range): Same.
18060         (range_op_handler::op2_range): Same.
18061         (range_op_handler::lhs_op1_relation): Same.
18062         (range_op_handler::lhs_op2_relation): Same.
18063         (range_op_handler::op1_op2_relation): Same.
18064         * range-op.h (class range_operator_float): New.
18065         (class floating_op_table): New.
18066         * value-query.cc (range_query::get_tree_range): Add case for
18067         REAL_CST.
18068         * range-op-float.cc: New file.
18070 2022-07-25  Roger Sayle  <roger@nextmovesoftware.com>
18071             Uroš Bizjak  <ubizjak@gmail.com>
18073         PR target/91681
18074         * config/i386/i386-expand.cc (split_double_concat): A new helper
18075         function for setting a double word value from two word values.
18076         * config/i386/i386-protos.h (split_double_concat): Prototype here.
18077         * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
18078         (*add<dwi>3_doubleword_zext): New define_insn_and_split.
18079         (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
18080         (*concat<mode><dwi>3_1): New define_insn_and_split replacing
18081         previous define_split for implementing DST = (HI<<32)|LO as
18082         pair of move instructions, setting lopart and hipart.
18083         (*concat<mode><dwi>3_2): Likewise.
18084         (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
18085         (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
18087 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
18089         PR middle-end/106432
18090         * gimple-range.cc (gimple_ranger::range_on_edge): Return false
18091         when the result range type is unsupported.
18093 2022-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18095         * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
18097 2022-07-25  Richard Biener  <rguenther@suse.de>
18099         PR middle-end/106414
18100         * match.pd (~(x ^ y) -> x == y): Restrict to single bit
18101         precision types.
18103 2022-07-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18105         * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
18106         (@aarch64_rbit<mode>): ... to this and change it in...
18107         (ffs<mode>2,ctz<mode>2): ... here.
18108         (@aarch64_rev16<mode>): New.
18109         * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
18110         Define the following enum AARCH64_REV16, AARCH64_REV16L,
18111         AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
18112         (aarch64_init_data_intrinsics): New.
18113         (aarch64_general_init_builtins): Add call to
18114         aarch64_init_data_intrinsics.
18115         (aarch64_expand_builtin_data_intrinsic): New.
18116         (aarch64_general_expand_builtin): Add call to
18117         aarch64_expand_builtin_data_intrinsic.
18118         * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
18119         __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
18120         __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
18122 2022-07-25  Martin Liska  <mliska@suse.cz>
18124         * doc/extend.texi: Remove trailing whitespaces.
18125         * doc/invoke.texi: Likewise.
18127 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
18129         * value-range-pretty-print.cc (vrange_printer::visit): New.
18130         (vrange_printer::print_frange_prop): New.
18131         * value-range-pretty-print.h (class vrange_printer): Add visit and
18132         print_frange_prop.
18133         * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
18134         (vrange_allocator::alloc_frange): New.
18135         * value-range.cc (vrange::operator=): Handle frange.
18136         (vrange::operator==): Same.
18137         (frange::accept): New.
18138         (frange::set): New.
18139         (frange::normalize_kind): New.
18140         (frange::union_): New.
18141         (frange::intersect): New.
18142         (frange::operator=): New.
18143         (frange::operator==): New.
18144         (frange::supports_type_p): New.
18145         (frange::verify_range): New.
18146         * value-range.h (enum value_range_discriminator): Handle frange.
18147         (class fp_prop): New.
18148         (FP_PROP_ACCESSOR): New.
18149         (class frange_props): New.
18150         (FRANGE_PROP_ACCESSOR): New.
18151         (class frange): New.
18152         (Value_Range::init): Handle frange.
18153         (Value_Range::operator=): Same.
18154         (Value_Range::supports_type_p): Same.
18155         (frange_props::operator==): New.
18156         (frange_props::union_): New.
18157         (frange_props::intersect): New
18158         (frange::frange): New.
18159         (frange::type): New.
18160         (frange::set_varying): New.
18161         (frange::set_undefined): New.
18163 2022-07-25  Peter Bergner  <bergner@linux.ibm.com>
18164             Kewen Lin  <linkw@linux.ibm.com>
18166         PR testsuite/106345
18167         * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
18168         to filter out all -mtune options.
18170 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
18172         * value-query.cc (range_query::get_value_range): Add assert.
18173         * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
18174         on unsupported types in vr_values.
18175         (simplify_using_ranges::simplify): Same.
18177 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
18179         * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
18180         types.
18181         * value-query.cc (get_ssa_name_range_info): Remove precision check.
18183 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
18185         * value-relation.cc (value_relation::set_relation): Remove assert.
18186         (path_oracle::register_relation): Exit when trying to register
18187         same SSA name relations.
18189 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
18191         * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
18192         (ranger_cache::range_from_dom): Same.
18193         * tree-ssa-dom.cc
18194         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
18196 2022-07-24  Roger Sayle  <roger@nextmovesoftware.com>
18197             H.J. Lu  <hjl.tools@gmail.com>
18199         PR target/106303
18200         PR target/106347
18201         * config/i386/i386-features.cc (make_vector_copies): Move from
18202         general_scalar_chain to scalar_chain.
18203         (convert_reg): Likewise.
18204         (convert_insn_common): New scalar_chain method split out from
18205         general_scalar_chain convert_insn.
18206         (convert_registers): Move from general_scalar_chain to
18207         scalar_chain.
18208         (scalar_chain::convert): Call convert_insn_common before calling
18209         convert_insn.
18210         (timode_remove_non_convertible_regs): Iterate until there are
18211         no further changes to the candidates.
18212         * config/i386/i386-features.h (scalar_chain::hash_map): Move
18213         from general_scalar_chain.
18214         (scalar_chain::convert_reg): Likewise.
18215         (scalar_chain::convert_insn_common): New shared method.
18216         (scalar_chain::make_vector_copies): Move from general_scalar_chain.
18217         (scalar_chain::convert_registers): Likewise.  No longer virtual.
18218         (general_scalar_chain::hash_map): Delete.  Moved to scalar_chain.
18219         (general_scalar_chain::convert_reg): Likewise.
18220         (general_scalar_chain::make_vector_copies): Likewise.
18221         (general_scalar_chain::convert_registers): Delete virtual method.
18222         (timode_scalar_chain::convert_registers): Likewise.
18224 2022-07-23  Immad Mir  <mirimmad@outlook.com>
18226         * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
18227         "Common Function Attributes" section.
18228         * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
18229         -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
18230         warnings may be emitted through usage of three function attributes used
18231         for static analysis of file descriptors namely fd_arg, fd_arg_read and
18232         fd_arg_write.
18234 2022-07-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
18236         * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
18237         Add a new insn_and_split pattern, and a few split patterns for
18238         spacial cases.
18240 2022-07-22  Richard Sandiford  <richard.sandiford@arm.com>
18242         * graphds.cc (graphds_scc): Fix algorithm attribution.
18244 2022-07-22  Richard Biener  <rguenther@suse.de>
18246         PR tree-optimization/106403
18247         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
18248         value valueization after check for IFN_MASKED_STORE or
18249         IFN_LEN_STORE.
18251 2022-07-22  Richard Biener  <rguenther@suse.de>
18253         PR tree-optimization/106397
18254         * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
18255         not update SSA form here.
18256         (mark_nontemporal_stores): Return whether we marked any
18257         non-temporal stores and inserted mfence.
18258         (loop_prefetch_arrays): Note when we need to update SSA.
18259         (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
18260         at the end of the pass.
18262 2022-07-22  Richard Biener  <rguenther@suse.de>
18264         PR tree-optimization/106387
18265         * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
18266         if ptr is not an SSA name.
18268 2022-07-22  liuhongt  <hongtao.liu@intel.com>
18270         PR target/106038
18271         * config/i386/mmx.md (<code><mode>3): New define_expand, it's
18272         original "<code><mode>3".
18273         (*<code><mode>3): New define_insn, it's original
18274         "<code><mode>3" be extended to handle memory and immediate
18275         operand with ix86_binary_operator_ok. Also adjust define_split
18276         after it.
18277         (mmxinsnmode): New mode attribute.
18278         (*mov<mode>_imm): Refactor with mmxinsnmode.
18279         * config/i386/predicates.md
18280         (register_or_x86_64_const_vector_operand): New predicate.
18282 2022-07-22  Will Schmidt  <will_schmidt@vnet.ibm.com>
18284         * config/rs6000/altivec.md:
18285         (vstrir_code_<mode>): Rename to...
18286         (vstrir_direct_<mode>): ... this.
18287         (vstrir_p_code_<mode>): Rename to...
18288         (vstrir_p_direct_<mode>): ... this.
18289         (vstril_code_<mode>): Rename to...
18290         (vstril_direct_<mode>): ... this.
18291         (vstril_p_code_<mode>): Rename to...
18292         (vstril_p_direct_<mode>): ... this.
18294 2022-07-22  Will Schmidt  <will_schmidt@vnet.ibm.com>
18296         * config/rs6000/rs6000-c.cc: Update comments.
18297         (rs6000_target_modify_macros): Remove bu_mask references.
18298         (rs6000_define_or_undefine_macro): Replace bu_mask reference
18299         with a rs6000_cpu value check.
18300         (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
18301         parameter from call to rs6000_target_modify_macros.
18302         * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
18303         rs6000_target_modify_macros_ptr): Remove parameter from extern
18304         for the prototype.
18305         * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
18306         parameter from prototype, update calls to this function.
18307         (rs6000_print_builtin_options): Remove prototype, call and function.
18308         (rs6000_builtin_mask_calculate): Remove function.
18309         (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
18310         (rs6000_option_override_internal): Remove rs6000_builtin_mask var
18311         and builtin_mask debug output.
18312         (rs6000_builtin_mask_names): Remove.
18313         (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
18314         diff_bumask references; Update calls to rs6000_target_modify_ptr.
18315         * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
18317 2022-07-21  Sam Feifer  <sfeifer@redhat.com>
18319         PR tree-optimization/94920
18320         * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
18321         (x <= 0 ? -x : 0): New simplification.
18323 2022-07-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18325         Revert:
18326         2022-07-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18328         * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
18329         instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
18331 2022-07-21  Richard Biener  <rguenther@suse.de>
18333         PR tree-optimization/106379
18334         * match.pd (~(a ^ b) -> a == b): New pattern.
18336 2022-07-21  Richard Biener  <rguenther@suse.de>
18338         PR tree-optimization/106378
18339         * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
18340         LEN_STORE, add mode to initialize a may-def and handle
18341         MASK_STORE that way.
18342         (dse_optimize_stmt): Query may-defs.  Handle internal
18343         functions LEN_STORE and MASK_STORE similar to how
18344         we handle memory builtins but without byte tracking.
18346 2022-07-21  Richard Biener  <rguenther@suse.de>
18348         PR tree-optimization/106365
18349         * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
18350         the offset to start encoding of RHS from.
18351         (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
18352         (vn_walk_cb_data::push_partial_def): Allow the first partial
18353         definition to be fully providing the def.  Offset RHS
18354         before encoding if requested.
18355         (vn_reference_lookup_3): Initialize def_rhs everywhere.
18356         Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
18358 2022-07-21  Richard Biener  <rguenther@suse.de>
18360         * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
18361         store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
18362         and IFN_MASK_LOAD_LANES.
18363         (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
18364         IFN_LEN_STORE and IFN_MASK_STORE_LANES.
18366 2022-07-20  Alexander Monakov  <amonakov@ispras.ru>
18368         PR rtl-optimization/101347
18369         * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
18370         population of nonlocal_goto_handler_labels from here ...
18371         (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
18372         * rtlanal.cc (remove_node_from_insn_list): Verify that a
18373         duplicate is not present in the remainder of the list.
18375 2022-07-20  Alexander Monakov  <amonakov@ispras.ru>
18377         * rtl.h (remove_node_from_expr_list): Remove declaration.
18378         * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
18380 2022-07-20  Richard Biener  <rguenther@suse.de>
18382         * tree-vect-data-refs.cc (bump_vector_ptr): Return an
18383         invariant updated address when the input was invariant.
18385 2022-07-20  liuhongt  <hongtao.liu@intel.com>
18387         * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
18388         and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
18389         * timevar.def (TV_TREE_POWCABS): New timevar.
18390         * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
18391         * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
18392         (class pass_expand_powcabs): Ditto.
18393         (pass_expand_powcabs::execute): Ditto.
18394         (make_pass_expand_powcabs): Ditto.
18395         (pass_cse_sincos::execute): Remove pow/cabs expand part.
18396         (make_pass_cse_sincos): Ditto.
18398 2022-07-20  Richard Biener  <richard.guenther@gmail.com>
18399             Hongtao Liu  <hongtao.liu@intel.com>
18401         PR tree-optimization/106010
18402         * tree-complex.cc (init_dont_simulate_again): Lower complex
18403         type move.
18404         (expand_complex_move): Also expand COMPLEX_CST for rhs.
18406 2022-07-19  Andrew MacLeod  <amacleod@redhat.com>
18408         * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
18409         for incoming ranges on join nodes and add to worklist.
18411 2022-07-19  Andrew MacLeod  <amacleod@redhat.com>
18413         * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
18414         (ranger_cache::range_from_dom): Put all nodes to be calculated
18415         in the worklist and resolve after the dom walk.
18416         * gimple-range-cache.h (resolve_dom): New prototype.
18418 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
18420         * tree-cfg.cc (gimple_verify_flow_info): Check placement of
18421         returns_twice calls.
18423 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
18425         * cfghooks.cc (duplicate_block): Expand comment.
18426         * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
18427         calls that may return twice.
18429 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
18431         * tree-ssa-sink.cc (select_best_block): Punt if selected block
18432         has incoming abnormal edges.
18434 2022-07-19  Martin Liska  <mliska@suse.cz>
18436         * doc/extend.texi: Remove trailing :.
18438 2022-07-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18440         * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
18441         instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
18443 2022-07-19  Richard Biener  <rguenther@suse.de>
18445         PR middle-end/106331
18446         * builtins.cc (get_memory_rtx): Compute alignment from
18447         the original address and set MEM_OFFSET to unknown when
18448         we create a MEM_EXPR from the base object of the address.
18450 2022-07-19  Richard Biener  <rguenther@suse.de>
18452         PR lto/106334
18453         * dwarf2out.cc (dwarf2out_register_external_die): Allow
18454         map entry re-use during WPA.
18456 2022-07-19  Roger Sayle  <roger@nextmovesoftware.com>
18457             Richard Biener  <rguenther@suse.de>
18459         PR c/106264
18460         * builtins.cc (fold_builtin_frexp): Call suppress_warning on
18461         COMPOUND_EXPR to silence spurious warning if result isn't used.
18462         (fold_builtin_modf): Likewise.
18463         (do_mpfr_remquo): Likewise.
18465 2022-07-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
18467         * config/xtensa/xtensa.cc (xtensa_rtx_costs):
18468         Change the relative cost of '(set (reg) (const_int N))' where
18469         N fits into signed 12-bit from 4 to 0 if optimizing for size.
18470         And use the appropriate macro instead of the bare number 4.
18472 2022-07-18  Andrew MacLeod  <amacleod@redhat.com>
18474         PR tree-optimization/106280
18475         * value-relation.cc (dom_oracle::register_relation): Register
18476         transitives only when it is possible for there to be one.
18477         (dom_oracle::set_one_relation): Return NULL if this is an
18478         existing relation.
18480 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
18482         * doc/invoke.texi (RISC-V Options): Add index references for
18483         `mrelax' and `mriscv-attribute'.
18485 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
18487         * doc/invoke.texi (Option Summary): Add missing second space
18488         around `-mstack-protector-guard-reg='.
18490 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
18492         * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
18493         (RISC-V Options): Likewise, and `-mriscv-attribute'.
18495 2022-07-18  Claudiu Zissulescu  <claziss@gmail.com>
18497         * config/arc/arc-arch.h (arc_tune_attr): Add
18498         ARC_TUNE_ARCHS4X_REL31A variant.
18499         * config/arc/arc.cc (arc_override_options): Tune options for
18500         release 310a.
18501         (arc_sched_issue_rate): Use correct enum.
18502         (arc600_corereg_hazard): Textual change.
18503         (arc_hazard): Add release 310a tunning.
18504         * config/arc/arc.md (tune): Update and take into consideration new
18505         tune option.
18506         (tune_dspmpy): Likewise.
18507         (tune_store): New attribute.
18508         * config/arc/arc.opt (mtune): New tune option.
18509         * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
18510         (hs4x_brcc_op): New instruction rezervation.
18511         (hs4x_data_store_1_op): Likewise.
18512         * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
18513         * config/arc/arc-tables.opt: Regenerate.
18514         * config/arc/t-multilib: Likewise.
18515         * doc/invoke.texi (ARC): Update mcpu and tune sections.
18517 2022-07-18  Richard Biener  <rguenther@suse.de>
18519         * tree-loop-distribution.cc (loop_distribution::distribute_loop):
18520         When computing cost-based merging do not disregard builtin
18521         classified partitions in some cases.
18523 2022-07-18  Richard Sandiford  <richard.sandiford@arm.com>
18525         PR target/106253
18526         * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
18527         Delete.
18528         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
18529         * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
18530         Delete.
18531         * config/arm/arm_neon_builtins.def (copysignf): Delete.
18532         * config/arm/iterators.md (nvrint_pattern): New attribute.
18533         * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
18534         New pattern.
18535         (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
18536         Likewise.
18537         (neon_copysignf<mode>): Rename to...
18538         (copysign<mode>3): ...this.
18540 2022-07-18  Claudiu Zissulescu  <claziss@gmail.com>
18542         * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
18543         pointer first when in interrupts.
18545 2022-07-18  Richard Biener  <rguenther@suse.de>
18547         * tree-loop-distribution.cc (copy_loop_before): Add
18548         the ability to replace the original LC PHI defs.
18549         (generate_loops_for_partition): Pass through a flag
18550         whether to redirect original LC PHI defs.
18551         (generate_code_for_partition): Likewise.
18552         (loop_distribution::distribute_loop): Compute the partition
18553         that should provide the LC PHI defs for common reductions
18554         and pass that down.
18556 2022-07-18  Richard Ball  <richard.ball@arm.com>
18558         * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
18559         (aarch64_evpc_uzp): Likewise.
18560         (aarch64_evpc_zip): Likewise.
18562 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
18564         PR target/106231
18565         * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
18566         to recognize any_extend:DI of ctz:SI which is implicitly extended.
18567         (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
18568         extended ctz:SI that has preceding xor to break false dependency.
18570 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
18572         * config/i386/predicates.md (x86_64_const_vector_operand):
18573         Check the operand's mode matches the specified mode argument.
18575 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
18577         * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
18578         (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
18579         (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
18580         (vec_pack_trunc_qi): Update to specify the now required
18581         UNSPEC_MASKOP unspec.
18582         (vec_pack_trunc_<mode>): Likewise.
18584 2022-07-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
18586         * config/xtensa/xtensa.md
18587         (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
18588         *masktrue_const_shifted_mask): If the immediate for bitwise AND is
18589         represented as '-(1 << N)', decrease the lower bound of N from 12
18590         to 1.  And the other immediate for conditional branch is now no
18591         longer limited to zero, but also one of some positive integers.
18592         Finally, remove the checks of some conditions, because the comparison
18593         expressions that don't satisfy such checks are determined as
18594         compile-time constants and thus will be optimized away before
18595         RTL expansion.
18597 2022-07-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
18599         * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
18600         (xtensa_constantsynth_2insn): Change to try all three synthetic
18601         methods and to use the one that fits the immediate value of
18602         the seed into a Narrow Move Immediate instruction "MOVI.N"
18603         when the Code Density Option is configured.
18605 2022-07-15  H.J. Lu  <hjl.tools@gmail.com>
18607         PR target/85620
18608         * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
18609         false if callee has indirect_return attribute and caller
18610         doesn't.
18612 2022-07-15  Roger Sayle  <roger@nextmovesoftware.com>
18614         PR target/106273
18615         * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
18616         constraints to reflect the output is earlyclobber, unless it is
18617         the same register (pair) as one of the operands.
18619 2022-07-15  David Malcolm  <dmalcolm@redhat.com>
18621         * doc/invoke.texi (Static Analyzer Options): Add the new fd
18622         warnings to the initial gccoptlist, and to the list of those
18623         disabled by -fanalyzer-checker=taint.
18625 2022-07-15  Andrew Carlotti  <andrew.carlotti@arm.com>
18627         * config/aarch64/aarch64-builtins.cc
18628         (enum aarch64_type_qualifiers): Remove qualifier_internal.
18629         (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
18631 2022-07-15  Andrew Carlotti  <andrew.carlotti@arm.com>
18633         * config/aarch64/aarch64-builtins.cc
18634         (v1di_UP): Add V1DI mode to _UP macros.
18635         * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
18636         * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
18637         * config/aarch64/aarch64-simd.md
18638         (vec_extractv2dfv1df): Replace with...
18639         (vec_extract<mode><V1half>): ...this.
18640         * config/aarch64/aarch64.cc
18641         (aarch64_classify_vector_mode): Add V1DI mode.
18642         * config/aarch64/iterators.md
18643         (VQ_2E, V1HALF, V1half): New.
18644         (nunits): Add V1DI mode.
18646 2022-07-15  Roger Sayle  <roger@nextmovesoftware.com>
18648         PR target/106278
18649         * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
18650         Fix indentation whitespace.
18651         (timode_scalar_chain::fix_debug_reg_uses): Likewise.
18652         (timode_scalar_chain::convert_insn): Delete dead code.
18653         Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
18654         Fix indentation whitespace.
18655         (convertible_comparison_p): Likewise.
18656         (timode_scalar_to_vector_candidate_p): Likewise.
18658 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
18660         * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
18662 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
18664         * Makefile.in (OBJS): Add value-range-pretty-print.o.
18665         * pretty-print.h (pp_vrange): New.
18666         * value-range.cc (vrange::dump): Call pp version.
18667         (unsupported_range::dump): Move to its own file.
18668         (dump_bound_with_infinite_markers): Same.
18669         (irange::dump): Same.
18670         (irange::dump_bitmasks): Same.
18671         (vrange::debug): Remove.
18672         * value-range.h: Remove virtual designation for dump methods.
18673         Remove dump_bitmasks method.
18674         * value-range-pretty-print.cc: New file.
18675         * value-range-pretty-print.h: New file.
18677 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
18679         * value-range.cc (irange::accept): New.
18680         (unsupported_range::accept): New.
18681         * value-range.h (class vrange_visitor): New.
18682         (class vrange): Add accept method.
18683         (class unsupported_range): Same.
18684         (class Value_Range): Same.
18686 2022-07-15  Jonathan Wakely  <jwakely@redhat.com>
18688         * diagnostic-format-json.cc (json_from_location_range): Adjust
18689         to new label_text API.
18690         * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
18691         Likewise.
18692         * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
18693         (layout::print_any_labels): Likewise.
18694         * tree-diagnostic-path.cc (class path_label): Likewise.
18695         (struct event_range): Likewise.
18696         (default_tree_diagnostic_path_printer): Likewise.
18697         (default_tree_make_json_for_path): Likewise.
18699 2022-07-15  konglin1  <lingling.kong@intel.com>
18701         PR target/106113
18702         * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
18703         comparison due to intrinsics changed over time.
18704         * config/i386/i386-expand.cc (ix86_ssecom_setcc):
18705         Add unordered check and mode for sse comi codegen.
18706         (ix86_expand_sse_comi): Add unordered check and check a different
18707         CCmode.
18708         (ix86_expand_sse_comi_round):Extract unordered check and mode part
18709         in ix86_ssecom_setcc.
18711 2022-07-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18713         * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
18714         op_mode instead of vmode in calls to force_reg for op0 and op1.
18716 2022-07-14  H.J. Lu  <hjl.tools@gmail.com>
18718         PR tree-optimization/103798
18719         * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
18720         (simplify_builtin_call): Inline memchr with constant strings of
18721         no more than the bytes of a word.
18722         * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
18723         * tree-ssa-strlen.h (use_in_zero_equality): New.
18725 2022-07-14  Eric Botcazou  <ebotcazou@adacore.com>
18727         * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
18728         and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
18729         (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
18730         pass it in the call to lookup_tmp_var.
18731         (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
18732         (get_initialized_tmp_var): Likewise.
18733         (prepare_gimple_addressable): Call internal_get_tmp_var instead of
18734         get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
18736 2022-07-14  Martin Liska  <mliska@suse.cz>
18738         * doc/gimple.texi: Close properly a deftypefn.
18740 2022-07-14  Martin Liska  <mliska@suse.cz>
18742         * doc/gimple.texi: Close properly a deftypefn.
18744 2022-07-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
18746         * config/xtensa/xtensa.md:
18747         In FP constant synthesis split pattern, subcontract to
18748         avoid_constant_pool_reference() as in the case of integer,
18749         because it can handle well too.  And cast to int32_t before
18750         calling xtensa_constantsynth() in order to ignore upper 32-bit.
18752 2022-07-13  Aldy Hernandez  <aldyh@redhat.com>
18754         * range-op.cc (operator_lt::fold_range): Use nonzero bits.
18756 2022-07-13  Aldy Hernandez  <aldyh@redhat.com>
18758         * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
18759         (irange::legacy_intersect): Clear nonzero mask.
18760         (irange::legacy_union): Same.
18761         (irange::invert): Same.
18763 2022-07-13  Richard Biener  <rguenther@suse.de>
18765         * tree-ssa-dom.h (record_temporary_equivalences): Remove.
18766         * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
18767         (dom_jt_state::get_blocks_on_stack): Likewise.
18768         (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
18769         (back_propagate_equivalences): Remove dominator bitmap
18770         compute and instead use passed in m_blocks_on_stack.
18771         (record_temporary_equivalences): Likewise.
18772         (record_equivalences_from_incoming_edge): Likewise.
18773         (dom_opt_dom_walker::before_dom_children): Maintain and
18774         pass down blocks on stack.
18775         (dom_opt_dom_walker::after_dom_children): Likewise.
18777 2022-07-13  Andrew Carlotti  <andrew.carlotti@arm.com>
18779         * config/aarch64/aarch64-builtins.cc
18780         (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
18782 2022-07-13  Richard Biener  <rguenther@suse.de>
18784         PR tree-optimization/106249
18785         * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
18786         Only verify LC SSA of the new_loop if we created it.
18787         Use TODO_update_ssa_nophi for the SSA update after versioning
18788         the loop.
18790 2022-07-12  Aldy Hernandez  <aldyh@redhat.com>
18792         * range-op.cc (unsigned_singleton_p): Remove.
18793         (operator_bitwise_and::remove_impossible_ranges): Remove.
18794         (operator_bitwise_and::fold_range): Set nonzero bits.  *
18795         * value-range.cc (irange::get_nonzero_bits): Remove
18796         legacy_mode_p assert.
18797         (irange::dump_bitmasks): Remove legacy_mode_p check.
18799 2022-07-12  Richard Sandiford  <richard.sandiford@arm.com>
18801         PR target/106253
18802         * predict.h (insn_optimization_type): Declare.
18803         * predict.cc (insn_optimization_type): New function.
18804         * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
18805         (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
18806         (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
18807         * internal-fn.cc (unary_convert_direct): New macro.
18808         (expand_convert_optab_fn): New function.
18809         (expand_unary_convert_optab_fn): New macro.
18810         (direct_unary_convert_optab_supported_p): Likewise.
18811         * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
18812         convert_optab_handler.
18813         * config/aarch64/aarch64-protos.h
18814         (aarch64_builtin_vectorized_function): Delete.
18815         * config/aarch64/aarch64-builtins.cc
18816         (aarch64_builtin_vectorized_function): Delete.
18817         * config/aarch64/aarch64.cc
18818         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
18819         * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
18820         * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
18821         optimize_insn_for_size_p test.
18823 2022-07-12  Richard Biener  <rguenther@suse.de>
18825         * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
18826         Remove.
18827         (vect_do_peeling): Do not call it, adjust comment.
18829 2022-07-12  Richard Sandiford  <richard.sandiford@arm.com>
18831         * config/aarch64/aarch64-builtins.cc
18832         (aarch64_builtin_vectorized_function): Remove handling of
18833         floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
18835 2022-07-11  Andrew MacLeod  <amacleod@redhat.com>
18837         PR tree-optimization/106234
18838         * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
18839         cache value before recursively resolving it.
18841 2022-07-11  Roger Sayle  <roger@nextmovesoftware.com>
18843         * config/i386/i386-features.h (scalar_chain): Add fields
18844         insns_conv, n_sse_to_integer and n_integer_to_sse to this
18845         parent class, moved from general_scalar_chain.
18846         (scalar_chain::convert_compare): Protected method moved
18847         from general_scalar_chain.
18848         (mark_dual_mode_def): Make protected, not private virtual.
18849         (scalar_chain:convert_op): New private virtual method.
18850         (general_scalar_chain::general_scalar_chain): Simplify constructor.
18851         (general_scalar_chain::~general_scalar_chain): Delete destructor.
18852         (general_scalar_chain): Move insns_conv, n_sse_to_integer and
18853         n_integer_to_sse fields to parent class, scalar_chain.
18854         (general_scalar_chain::mark_dual_mode_def): Delete prototype.
18855         (general_scalar_chain::convert_compare): Delete prototype.
18856         (timode_scalar_chain::compute_convert_gain): Remove simplistic
18857         implementation, convert to a method prototype.
18858         (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
18859         (timode_scalar_chain::convert_op): Prototype new virtual method.
18860         * config/i386/i386-features.cc (scalar_chain::scalar_chain):
18861         Allocate insns_conv and initialize n_sse_to_integer and
18862         n_integer_to_sse fields in constructor.
18863         (scalar_chain::scalar_chain): Free insns_conv in destructor.
18864         (general_scalar_chain::general_scalar_chain): Delete
18865         constructor, now defined in the class declaration.
18866         (general_scalar_chain::~general_scalar_chain): Delete destructor.
18867         (scalar_chain::mark_dual_mode_def): Renamed from
18868         general_scalar_chain::mark_dual_mode_def.
18869         (timode_scalar_chain::mark_dual_mode_def): Delete.
18870         (scalar_chain::convert_compare): Renamed from
18871         general_scalar_chain::convert_compare.
18872         (timode_scalar_chain::compute_convert_gain): New method to
18873         determine the gain from converting a TImode chain to V1TImode.
18874         (timode_scalar_chain::convert_op): New method to convert an
18875         operand from TImode to V1TImode.
18876         (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
18877         on REG_EQUAL notes that were originally TImode (not CONST_INT).
18878         Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
18879         (timode_mem_p): Helper predicate to check where operand is
18880         memory reference with sufficient alignment for TImode STV.
18881         (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
18882         to check whether COMPARE is convertible.  Handle SET_DESTs that
18883         that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
18884         CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
18886 2022-07-11  Richard Sandiford  <richard.sandiford@arm.com>
18888         PR tree-optimization/106250
18889         * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
18890         argument to directly_supported_p.
18892 2022-07-11  Richard Biener  <rguenther@suse.de>
18894         * tree-into-ssa.cc (update_ssa): Do not forcefully
18895         re-compute dominance fast queries for TODO_update_ssa_no_phi.
18897 2022-07-11  Richard Biener  <rguenther@suse.de>
18899         PR tree-optimization/106228
18900         * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
18901         VUSE compute for the non-loop case.
18903 2022-07-11  Richard Biener  <rguenther@suse.de>
18905         * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
18906         (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
18907         (rewrite_update_dom_walker::m_in_region_flag): New.
18908         (rewrite_update_dom_walker::before_dom_children): If the region
18909         to update is marked, STOP at exits.
18910         (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
18911         to be updated.
18912         (dump_update_ssa): Use bitmap_empty_p.
18913         (update_ssa): Likewise.  Use REWRITE_UPDATE_REGION when
18914         TODO_update_ssa_no_phi.
18915         * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
18916         pending update_ssa to the caller.
18918 2022-07-11  Richard Biener  <rguenthert@suse.de>
18920         PR target/105459
18921         * config/i386/i386-options.cc (ix86_set_current_function):
18922         Rebuild the target optimization node whenever necessary,
18923         not only when the optimization node didn't change.
18925 2022-07-11  Richard Biener  <rguenther@suse.de>
18927         PR tree-optimization/106228
18928         * tree-vect-data-refs.cc (vect_setup_realignment): Properly
18929         set a VUSE operand on the emitted load.
18931 2022-07-11  Aldy Hernandez  <aldyh@redhat.com>
18933         * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
18934         verification against legacy value_range.
18935         (gimple_ranger::register_inferred_ranges): Same.
18936         (gimple_ranger::export_global_ranges): Rename update_global_range
18937         to set_range_info.
18938         * tree-core.h (struct range_info_def): Remove.
18939         (struct irange_storage_slot): New.
18940         (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
18941         (struct tree_ssa_name): Add vrange_storage support.
18942         * tree-ssanames.cc (range_info_p): New.
18943         (range_info_fits_p): New.
18944         (range_info_alloc): New.
18945         (range_info_free): New.
18946         (range_info_get_range): New.
18947         (range_info_set_range): New.
18948         (set_range_info_raw): Remove.
18949         (set_range_info): Adjust to use vrange_storage.
18950         (set_nonzero_bits): Same.
18951         (get_nonzero_bits): Same.
18952         (duplicate_ssa_name_range_info): Remove overload taking
18953         value_range_kind.
18954         Rewrite tree overload to use vrange_storage.
18955         (duplicate_ssa_name_fn): Adjust to use vrange_storage.
18956         * tree-ssanames.h (struct range_info_def): Remove.
18957         (set_range_info): Adjust prototype to take vrange.
18958         * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
18959         duplicate_ssa_name_range_info.
18960         * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
18961         (SSA_NAME_RANGE_TYPE): Remove.
18962         * value-query.cc (get_ssa_name_range_info): Adjust to use
18963         vrange_storage.
18964         (update_global_range): Remove.
18965         (get_range_global): Remove as_a<irange>.
18966         * value-query.h (update_global_range): Remove.
18967         * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
18968         Rename update_global_range to set_range_info.
18969         * value-range-storage.cc (vrange_storage::alloc_slot): Remove
18970         gcc_unreachable.
18972 2022-07-10  Aldy Hernandez  <aldyh@redhat.com>
18974         * value-range.cc (irange::operator=): Call verify_range.
18975         (irange::irange_set): Normalize kind after everything else has
18976         been set.
18977         (irange::irange_set_anti_range): Same.
18978         (irange::set): Same.
18979         (irange::verify_range): Disallow nonzero masks for VARYING.
18980         (irange::irange_union): Call verify_range.
18981         Handle nonzero masks better.
18982         (irange::irange_intersect): Same.
18983         (irange::set_nonzero_bits): Calculate mask if either range has an
18984         explicit mask.
18985         (irange::intersect_nonzero_bits): Same.
18986         (irange::union_nonzero_bits): Same.
18987         (range_tests_nonzero_bits): New.
18988         (range_tests): Call range_tests_nonzero_bits.
18989         * value-range.h (class irange): Remove set_nonzero_bits method
18990         with trees.
18991         (irange::varying_compatible_p): Set nonzero mask.
18993 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
18995         * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
18996         the sign-extend of result in the RTL template.
18997         (<any_div><mode>3): Adjust for <any_div>di3_fake change.
18999 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
19001         * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
19002         Remove static, for use in the machine description file.
19003         * config/loongarch/loongarch-protos.h:
19004         (loongarch_check_zero_div_p): Add prototype.
19005         * config/loongarch/loongarch.md (enabled): New attr.
19006         (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
19007         idiv.  Conditionally enable the alternatives using
19008         loongarch_check_zero_div_p.
19009         (<optab>di3_fake): Likewise.
19011 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
19013         * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
19014         instead of mul.d.
19016 2022-07-09  Aldy Hernandez  <aldyh@redhat.com>
19018         * value-range.cc (irange::irange_single_pair_union): Set
19019         VR_VARYING when appropriate.
19021 2022-07-09  Vit Kabele  <vit.kabele@sysgo.com>
19023         * stor-layout.cc (finalize_record_size): Extend warning message.
19025 2022-07-09  Sam Feifer  <sfeifer@redhat.com>
19027         PR tree-optimization/98304
19028         * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
19030 2022-07-09  Jeff Law  <jeffreyalaw@gmail.com>
19032         * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
19033         initializer and use clear_storage rather than copying the
19034         NULs to the destination array.
19036 2022-07-09  Roger Sayle  <roger@nextmovesoftware.com>
19038         * config/i386/i386.md (define_peephole2): Use match_operand of
19039         flags_reg_operand to capture and preserve the mode of FLAGS_REG.
19040         (define_peephole2): Likewise.
19041         (define_peephole2): Likewise...
19043 2022-07-09  Roger Sayle  <roger@nextmovesoftware.com>
19045         * config/i386/i386-features.cc (convert_compare): Add support
19046         for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
19047         by generating a pandn followed by ptest.
19048         (convertible_comparison_p): Recognize both *cmpdi_doubleword and
19049         recent *testdi_not_doubleword comparison patterns.
19051 2022-07-09  Tamar Christina  <tamar.christina@arm.com>
19053         * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
19054         indicate that the value is not undefined.
19056 2022-07-09  Andrew Pinski  <apinski@marvell.com>
19058         PR tree-optimization/106087
19059         * tree-ssa-dce.cc (simple_dce_from_worklist): Check
19060         to make sure the statement is only defining one operand.
19062 2022-07-08  Lewis Hyatt  <lhyatt@gmail.com>
19064         PR preprocessor/91733
19065         * input.cc (find_end_of_line): New helper function.
19066         (file_cache_slot::get_next_line): Recognize \r as a line ending.
19067         * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
19068         since \r will now be interpreted as a line-ending.
19070 2022-07-08  Martin Liska  <mliska@suse.cz>
19072         PR sanitizer/106132
19073         * opts.cc (finish_options): Use 2 calls to
19074         report_conflicting_sanitizer_options.
19076 2022-07-08  Richard Biener  <rguenther@suse.de>
19078         PR tree-optimization/106226
19079         * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
19080         no SSA update is needed.  Move virtual SSA update ...
19081         * tree-vectorizer.cc (pass_vectorize::execute): ... here,
19082         via forced virtual renaming when TODO_update_ssa_only_virtuals
19083         is queued.
19084         (vect_transform_loops): Return TODO_update_ssa_only_virtuals
19085         when virtual SSA update is required.
19086         (try_vectorize_loop_1): Adjust.
19087         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
19088         virtual renaming if the ABI forces an aggregate return
19089         but the original call did not have a virtual definition.
19091 2022-07-08  Martin Liska  <mliska@suse.cz>
19093         * toplev.cc (init_asm_output): Do not init asm_out_file.
19095 2022-07-08  Tamar Christina  <tamar.christina@arm.com>
19097         PR tree-optimization/106063
19098         * match.pd: Do not apply pattern after veclower is not supported.
19100 2022-07-08  Thomas Schwinge  <thomas@codesourcery.com>
19102         * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
19103         'fn2' computation.
19105 2022-07-08  Tamar Christina  <tamar.christina@arm.com>
19107         * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
19108         still undefined and if so emit a subreg move instead.
19109         (store_integral_bit_field): Likewise.
19110         (store_bit_field): Likewise.
19111         * expr.h (write_complex_part): Likewise.
19112         * expmed.h (store_bit_field): Add new parameter.
19113         * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
19114         parameter.
19115         (expand_ifn_atomic_compare_exchange): Likewise.
19116         * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
19117         * emit-rtl.cc (validate_subreg): Likewise.
19118         * expr.cc (emit_group_store): Likewise.
19119         (copy_blkmode_from_reg): Likewise.
19120         (copy_blkmode_to_reg): Likewise.
19121         (clear_storage_hints): Likewise.
19122         (write_complex_part):  Likewise.
19123         (emit_move_complex_parts): Likewise.
19124         (expand_assignment): Likewise.
19125         (store_expr): Likewise.
19126         (store_field): Likewise.
19127         (expand_expr_real_2): Likewise.
19128         * ifcvt.cc (noce_emit_move_insn): Likewise.
19129         * internal-fn.cc (expand_arith_set_overflow): Likewise.
19130         (expand_arith_overflow_result_store): Likewise.
19131         (expand_addsub_overflow): Likewise.
19132         (expand_neg_overflow): Likewise.
19133         (expand_mul_overflow): Likewise.
19134         (expand_arith_overflow): Likewise.
19136 2022-07-08  Haochen Jiang  <haochen.jiang@intel.com>
19138         PR target/106180
19139         * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
19140         Rename from *sse2_cvtps2pd<mask_name>_1.
19141         (vec_unpacks_lo_v4sf): Add handler for memory operand.
19143 2022-07-08  Lulu Cheng  <chenglulu@loongson.cn>
19145         * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
19146         Modify fp_sp_offset and gp_sp_offset's calculation method,
19147         when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
19148         or UNITS_PER_FP_REG.
19150 2022-07-07  David Malcolm  <dmalcolm@redhat.com>
19152         * diagnostic-format-json.cc (json_from_location_range): Update for
19153         removal of label_text::maybe_free in favor of automatic memory
19154         management.
19155         * diagnostic-format-sarif.cc
19156         (sarif_builder::make_location_object): Likewise.
19157         * diagnostic-show-locus.cc (struct pod_label_text): New.
19158         (class line_label): Convert m_text from label_text to pod_label_text.
19159         (layout::print_any_labels): Move "text" to the line_label.
19160         * tree-diagnostic-path.cc (path_label::get_text): Update for
19161         removal of label_text::maybe_free in favor of automatic memory
19162         management.
19163         (event_range::print): Likewise.
19164         (default_tree_diagnostic_path_printer): Likewise.
19165         (default_tree_make_json_for_path): Likewise.
19167 2022-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19169         * statistics.cc (get_function_name): Add check to see if fn is not NULL.
19171 2022-07-07  Richard Biener  <rguenther@suse.de>
19173         * tree-into-ssa.cc (iterating_old_ssa_names): New.
19174         (add_new_name_mapping): Grow {new,old}_ssa_names separately
19175         and only when actually needed.  Assert we are not growing
19176         the old_ssa_names set when iterating over it.
19177         (update_ssa): Remove old_ssa_names copying and empty_p
19178         query, note we are iterating over it and expect no set changes.
19180 2022-07-07  Thomas Schwinge  <thomas@codesourcery.com>
19182         * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
19183         (prepare_target_image, main): Handle OpenMP 'requires'.
19184         (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
19185         'GOMP_offload_unregister_ver'.
19187 2022-07-07  Richard Biener  <rguenther@suse.de>
19189         PR target/106219
19190         * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
19191         set DECL_PURE_P.
19193 2022-07-07  Richard Biener  <rguenther@suse.de>
19195         * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
19196         number of LC PHIs inserted.
19197         (add_exit_phis): Return whether any variable required
19198         multiple LC PHI nodes.
19199         (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
19200         when possible.
19202 2022-07-07  Richard Biener  <rguenther@suse.de>
19204         * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
19205         the def loop exit block bitmap as argument instead of
19206         re-computing it here.
19207         (add_exit_phis_var): Adjust.
19208         (loop_name_cmp): New function.
19209         (add_exit_phis): Sort variables to insert LC PHI nodes
19210         after definition loop, for each definition loop compute
19211         the exit block bitmap once.
19212         (get_loops_exit): Remove.
19213         (rewrite_into_loop_closed_ssa_1): Do not pre-record
19214         all loop exit blocks into bitmaps.  Record loop exits
19215         if required.
19217 2022-07-07  Dimitrije Milosevic  <Dimitrije.Milosevic@Syrmia.com>
19219         * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
19220         to handle the N32 ABI.
19221         * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
19222         the macro, as it is not needed anymore.
19224 2022-07-06  Thomas Schwinge  <thomas@codesourcery.com>
19226         * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
19227         '[...]_data'.
19228         * config/nvptx/mkoffload.cc (process): Likewise.
19230 2022-07-06  Thomas Schwinge  <thomas@codesourcery.com>
19232         * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
19234 2022-07-05  Andrew MacLeod  <amacleod@redhat.com>
19236         * value-relation.cc (relation_to_code): New vector.
19237         (relation_oracle::validate_relation): New.
19238         (set_relation): Allow ssa1 == ssa2 to be registered.
19239         * value-relation.h (validate_relation): New prototype.
19240         (query_relation): Make internal variant protected.
19242 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
19244         * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
19245         for double word comparisons and tests (comparisons against zero).
19246         * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
19247         and;cmp into andn;cmp $0 as a pre-reload splitter.
19248         (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
19249         (*<any_or><dwi>3_doubleword): Likewise.
19251 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
19252             Hongtao Liu  <hongtao.liu@intel.com>
19254         * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
19255         CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
19256         * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
19257         and gen_ssse3_palignv1ti instead of TImode.
19258         * config/i386/sse.md (SSESCALARMODE): Delete.
19259         (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
19260         (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
19261         iterator instead of SSESCALARMODE.
19262         (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
19263         using a single move instruction (if required).
19265 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
19266             Uroš Bizjak  <ubizjak@gmail.com>
19268         PR rtl-optimization/96692
19269         * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
19270         as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
19272 2022-07-05  Richard Biener  <rguenther@suse.de>
19274         PR tree-optimization/106198
19275         * tree-cfgcleanup.cc (repair_loop_structures): Always do a
19276         full LC SSA rewrite but only if any blocks changed loop
19277         depth.
19279 2022-07-05  Richard Biener  <rguenther@suse.de>
19281         * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
19282         (find_uses_to_rename_in_loop): Likewise.
19283         (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
19284         uses.
19285         (rewrite_into_loop_closed_ssa): Adjust.
19287 2022-07-05  Richard Biener  <rguenther@suse.de>
19289         PR tree-optimization/106186
19290         * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
19291         Properly handle virtual PHI nodes.
19293 2022-07-05  Richard Biener  <rguenther@suse.de>
19295         PR tree-optimization/106196
19296         * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
19297         handle aggregate returns of calls for VDEF updates.
19299 2022-07-05  Richard Biener  <rguenther@suse.de>
19301         * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
19302         Maintain LC SSA.
19304 2022-07-05  Richard Sandiford  <richard.sandiford@arm.com>
19306         * tree-vect-patterns.cc (vect_convert_input): Expect the input
19307         type to be signed for optab_vector_mixed_sign.  Update the vectype
19308         at the same time as type.
19309         (vect_recog_dot_prod_pattern): Update accordingly.  If usdot isn't
19310         available, try sdot instead.
19311         * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
19312         (vect_model_reduction_cost): Model the cost of implementing usdot
19313         using sdot.
19314         (vectorizable_reduction): Likewise.  Skip target support test
19315         for lane reductions.
19316         (vect_emulate_mixed_dot_prod): New function.
19317         (vect_transform_reduction): Use it to emulate usdot via sdot.
19319 2022-07-05  Richard Biener  <rguenther@suse.de>
19321         PR tree-optimization/106182
19322         * loop-init.cc (fix_loop_structure): Return the number
19323         of newly discovered plus the number of deleted loops.
19324         * tree-cfgcleanup.cc (repair_loop_structures): Adjust
19325         variable name.
19327 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
19329         * gimple-range-fold.cc
19330         (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
19331         call to SCEV for irange supported types.
19332         (fold_using_range::range_of_builtin_int_call): Convert to vrange.
19333         * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
19334         * tree-ssa-dom.cc (cprop_operand): Same.
19336 2022-07-04  Roger Sayle  <roger@nextmovesoftware.com>
19338         PR target/104489
19339         * calls.cc (precompute_register_parameters): Allow promotion
19340         of floating point values to be passed in wider integer modes
19341         by calling new convert_float_to_wider_int.
19342         (expand_call): Allow floating point results to be returned in
19343         wider integer modes by calling new convert wider_int_to_float.
19344         * cfgexpand.cc (expand_value_return): Allow backends to promote
19345         a scalar floating point return value to a wider integer mode
19346         by calling new convert_float_to_wider_int.
19347         * expr.cc (convert_float_to_wider_int): New function.
19348         (convert_wider_int_to_float): Likewise.
19349         (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
19350         scalar FP PARM_DECLs to wider integer modes, by calling new
19351         convert_wider_int_to_float.
19352         * expr.h (convert_modes): Name arguments for improved documentation.
19353         (convert_float_to_wider_int): Prototype new function here.
19354         (convert_wider_int_to_float): Likewise.
19355         * function.cc (assign_parm_setup_stack): Allow floating point
19356         values to be passed on the stack as wider integer modes by
19357         calling new convert_wider_int_to_float.
19359 2022-07-04  Martin Jambor  <mjambor@suse.cz>
19361         PR tree-optimization/105860
19362         * tree-sra.cc (build_reconstructed_reference): Start expr
19363         traversal only just below the outermost union.
19365 2022-07-04  Richard Biener  <rguenther@suse.de>
19367         * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
19368         and update virtual SSA form again.  Assert we do so for
19369         a known set of transforms only.
19370         * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
19371         * tree-vect-stmts.cc (vectorizable_load): When vectorizing
19372         using load-lanes allow virtual SSA update.
19374 2022-07-04  Tobias Burnus  <tobias@codesourcery.com>
19375             Chung-Lin Tang  <cltang@codesourcery.com>
19376             Thomas Schwinge  <thomas@codesourcery.com>
19378         * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
19379         (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
19380         (main): Ask lto1 to obtain omp_requires_mask and pass it on.
19381         * config/nvptx/mkoffload.cc (process, main): Likewise.
19382         * lto-cgraph.cc (omp_requires_to_name): New.
19383         (input_offload_tables): Save omp_requires_mask.
19384         (output_offload_tables): Read it, check for consistency,
19385         save value for mkoffload.
19386         * omp-low.cc (lower_omp_target): Force output_offloadtables
19387         call for OMP_REQUIRES_TARGET_USED.
19389 2022-07-04  Richard Biener  <rguenther@suse.de>
19391         * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
19392         no SSA update is needed instead of updating virtual SSA
19393         form.
19394         * tree-vect-stmts.cc (vectorizable_load): For hoisted
19395         invariant load use the loop entry virtual use.
19396         For emulated gather loads use the virtual use of the
19397         original stmt like vect_finish_stmt_generation would do.
19399 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
19401         * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
19402         for direct circularity.
19404 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
19406         * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
19407         the language for vector types.
19409 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
19411         * value-range-storage.cc (irange_storage_slot::set_irange): Set
19412         nonzero bits in irange.
19413         (irange_storage_slot::get_irange): Get nonzero bits from irange.
19414         * value-range.cc (irange::operator=): Set nonzero bits.
19415         (irange::irange_set): Same.
19416         (irange::irange_set_anti_range): Same.
19417         (irange::set): Same.
19418         (irange::verify_range): Same.
19419         (irange::legacy_equal_p): Check nonzero bits.
19420         (irange::equal_p): Same.
19421         (irange::contains_p): Handle nonzero bits.
19422         (irange::irange_union): Same.
19423         (irange::irange_intersect): Same.
19424         (irange::dump): Same.
19425         (irange::set_nonzero_bits): New.
19426         (irange::get_nonzero_bits): New.
19427         (irange::intersect_nonzero_bits): New.
19428         (irange::union_nonzero_bits): New.
19429         (irange::dump_bitmasks): New.
19430         * value-range.h (class irange): Add m_nonzero_mask.
19431         (gt_ggc_mx): Handle nonzero bits.
19432         (gt_pch_nx): Same.
19433         (irange::set_undefined): Set nonzero bits.
19434         (irange::set_varying): Same.
19435         (irange::normalize_kind): Call set_undefined.
19437 2022-07-04  Richard Biener  <rguenther@suse.de>
19439         * tree-ssa-loop-manip.h
19440         (rewrite_virtuals_into_loop_closed_ssa): Remove.
19441         (rewrite_into_loop_closed_ssa_1): Likewise.
19442         * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
19443         Make static.
19444         (rewrite_into_loop_closed_ssa): Remove loop overload,
19445         always rewrite virtuals into LC SSA.
19446         (check_loop_closed_ssa_bb): Also check virtuals.
19447         * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
19448         LC PHIs when in LC SSA.
19449         * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
19450         loop-closed SSA here, but ...
19451         (tree_loop_unroll_and_jam): ... here once.
19452         * tree-if-conv.cc (version_loop_for_if_conversion): Use
19453         the cheaper TODO_update_ssa_no_phi.
19454         * tree-loop-distribution.cc (version_loop_by_alias_check):
19455         Likewise.
19456         * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
19457         Likewise.
19458         * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
19459         (tree_unswitch_outer_loop): Do not rewrite virtuals into
19460         LC ssa.
19461         * tree-parloops.cc (transform_to_exit_first_loop_alt):
19462         Likewise.
19463         (pass_parallelize_loops::execute): After finishing rewrite
19464         into LC SSA again because we do not maintain it properly.
19466 2022-07-04  Richard Biener  <rguenther@suse.de>
19468         PR tree-optimization/106055
19469         * graphite.cc (canonicalize_loop_closed_ssa): Check whether
19470         we can propagate.
19472 2022-07-04  Haochen Jiang  <haochen.jiang@intel.com>
19474         PR target/43618
19475         * config/i386/sse.md (extendv2sfv2df2): New define_expand.
19476         (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
19477         (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
19479 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
19481         * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
19482         * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
19483         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
19484         with two arguments.
19485         (find_unswitching_predicates_for_bb): Same.
19486         * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
19487         * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
19488         * value-range.cc (irange::equal_p): Rename to...
19489         (irange::operator==): ...this.
19490         * value-range.h (irange::set): Remove.
19491         (irange::operator==): Remove.
19492         (irange::set_zero): Use set with two arguments.
19493         * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
19494         (vr_values::extract_range_from_unary_expr): Same.
19495         (check_for_binary_op_overflow): Same.
19496         (bounds_of_var_in_loop): Same.
19498 2022-07-03  H.J. Lu  <hjl.tools@gmail.com>
19500         PR target/106022
19501         * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
19502         New.
19503         * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
19504         New.
19505         * config/i386/mmx.md (V_16_32_64): New.
19506         (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
19507         and 64-bit constant vector.
19508         * config/i386/predicates.md (x86_64_const_vector_operand): New.
19510 2022-07-03  Aldy Hernandez  <aldyh@redhat.com>
19512         * gimple-range-cache.cc: Include value-range-storage.h.
19513         * gimple-range-cache.h (class block_range_cache): Add "class" to
19514         m_range_allocator.
19515         * gimple-range-edge.cc
19516         (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
19517         (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
19518         (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
19519         * gimple-range-edge.h: Add "class" to m_range_allocator.
19520         * gimple-range-infer.cc
19521         (infer_range_manager::infer_range_manager): Allocate allocator.
19522         (infer_range_manager::~infer_range_manager): Free allocator.
19523         (infer_range_manager::get_nonzero): Dereference allocator.
19524         (infer_range_manager::add_range): Same.
19525         * gimple-range-infer.h (class vrange_allocator): Add "class" to
19526         m_range_allocator.
19527         * value-range-storage.h (class vrange_allocator): Move from
19528         value-range.h.
19529         (class obstack_vrange_allocator): Same.
19530         (class ggc_vrange_allocator): Same.
19531         (vrange_allocator::alloc_vrange): Same.
19532         (vrange_allocator::alloc_irange): Same.
19533         * value-range.h (class vrange_allocator): Move to value-range-storage.h.
19534         (class obstack_vrange_allocator): Same.
19535         (class ggc_vrange_allocator): Same.
19537 2022-07-03  Aldy Hernandez  <aldyh@redhat.com>
19539         * Makefile.in (OBJS): Add value-range-storage.o.
19540         (GTFILES): Add value-range-storage.h.
19541         * gengtype.cc (open_base_files): Add value-range-storage.h.
19542         * value-range-storage.cc: New file.
19543         * value-range-storage.h: New file.
19545 2022-07-03  Xi Ruoyao  <xry111@xry111.site>
19546             Lulu Cheng  <chenglulu@loongson.cn>
19548         * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
19549         New static function.
19550         (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
19551         of TARGET_CHECK_ZERO_DIV.
19552         (loongarch_output_division): Likewise.
19553         * common/config/loongarch/loongarch-common.cc
19554         (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
19555         * doc/invoke.texi: Update to match the new behavior.
19557 2022-07-03  Ian Lance Taylor  <iant@golang.org>
19559         * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
19560         statement if -fdelete-dead-exceptions.
19562 2022-07-02  Tim Lange  <mail@tim-lange.me>
19564         PR analyzer/105900
19565         * doc/invoke.texi: Added Wanalyzer-allocation-size.
19567 2022-07-02  Immad Mir  <mirimmad17@gmail.com>
19569         PR analyzer/106003
19570         * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
19571         * doc/invoke.texi:  Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
19572         -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
19573         -Wanalyzer-fd-use-after-close.
19575 2022-07-01  Aldy Hernandez  <aldyh@redhat.com>
19577         * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
19578         (trailing_wide_ints::set_precision): Add num_elements argument.
19579         (trailing_wide_ints::extra_size): Same.
19581 2022-07-01  Uroš Bizjak  <ubizjak@gmail.com>
19583         * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
19584         Use "r" constraint for operand 1.
19586 2022-07-01  Richard Biener  <rguenther@suse.de>
19588         * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
19589         Do not look at interesting_blocks which is a copy of
19590         blocks_to_update.
19591         (update_ssa): Do not initialize it.
19592         (pass_build_ssa::execute): Set interesting_blocks to NULL
19593         after releasing it.
19595 2022-07-01  Richard Biener  <rguenther@suse.de>
19597         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
19598         back to using maybe_ne (off, -1).
19600 2022-07-01  Richard Biener  <rguenther@suse.de>
19602         * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
19603         checking dominance check conditional on flag_checking.
19605 2022-07-01  Tobias Burnus  <tobias@codesourcery.com>
19607         * config/gcn/gcn-protos.h (print_operand_address): Remove register
19608         keyword on 'rtx addr' argument.
19610 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
19611             Uroš Bizjak  <ubizjak@gmail.com>
19613         * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
19614         to post-reload define_insn_and_split.
19616 2022-07-01  Jakub Jelinek  <jakub@redhat.com>
19618         PR middle-end/106144
19619         * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
19620         emitting element for shift or if shift is 0 first element after start.
19621         (wide_int_cc_tests): Add tests for equivalency of wi::mask and
19622         wi::shifted_mask with 0 start.
19624 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
19626         PR target/106122
19627         * config/i386/i386.md (peephole2): Avoid generating pop %esp
19628         when optimizing for size.
19630 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
19631             Uroš Bizjak  <ubizjak@gmail.com>
19633         * config/i386/i386.md (general_szext_operand): Add TImode
19634         support using x86_64_hilo_general_operand predicate.
19635         (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
19636         (*add<dwi>3_doubleword): Improved optimization of zero addition.
19637         (and<mode>3): Use SDWIM mode iterator to add support for double
19638         word bit-wise AND in TImode.  Use force_reg when double word
19639         immediate operand isn't x86_64_hilo_general_operand.
19640         (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
19641         converted into a post-reload splitter.
19642         (*andndi3_doubleword): Previous define_insn deleted.
19643         (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
19644         TARGET_BMI that splits post-reload.
19645         (*andn<mode>3_doubleword): New define_insn_and_split for
19646         !TARGET_BMI, that lowers/splits before reload.
19647         (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
19648         double word bit-wise XOR and bit-wise IOR in TImode.  Use
19649         force_reg when double word immediate operand isn't
19650         x86_64_hilo_general_operand.
19651         (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
19652         (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
19653         double word bit-wise NOT in TImode.
19654         (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
19655         and converted into a post-reload splitter.
19657 2022-07-01  Eric Botcazou  <ebotcazou@adacore.com>
19659         PR middle-end/105874
19660         * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
19661         EXPAND_MEMORY for the expansion of the inner reference only
19662         in the usual cases where a memory reference is required.
19664 2022-07-01  Richard Biener  <rguenther@suse.de>
19666         PR tree-optimization/106131
19667         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
19668         zero when offsetting the read looking through an aggregate
19669         copy.
19671 2022-07-01  Martin Liska  <mliska@suse.cz>
19673         PR tree-optimization/106126
19674         * gimple-if-to-switch.cc (struct condition_info): Save
19675         has_side_effect.
19676         (find_conditions): Parse all BBs.
19677         (pass_if_to_switch::execute): Allow only side effects for first
19678         BB.
19680 2022-07-01  Haochen Jiang  <haochen.jiang@intel.com>
19682         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
19683         Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
19684         OPTION_MASK_ISA2_AVX512BF16_UNSET and
19685         OPTION_MASK_ISA2_AVX512FP16_UNSET.
19687 2022-06-30  Joseph Myers  <joseph@codesourcery.com>
19689         PR lto/106129
19690         * lto-wrapper.cc (find_option): Add argument start.
19691         (merge_and_complain): Loop over existing_opt_index and
19692         existing_opt2_index for Xassembler check.  Update calls to
19693         find_option.
19694         (find_and_merge_options): Add argument first to determine whether
19695         to merge options with those passed in *opts.
19696         (run_gcc): Update calls to find_and_merge_options.
19698 2022-06-30  Aldy Hernandez  <aldyh@redhat.com>
19700         * gimple-range-cache.cc (block_range_cache::block_range_cache):
19701         Rename vrange_allocator to obstack_vrange_allocator.
19702         (ssa_global_cache::ssa_global_cache): Same.
19703         * gimple-range-edge.h (class gimple_outgoing_range): Same.
19704         * gimple-range-infer.h (class infer_range_manager): Same.
19705         * value-range.h (class vrange_allocator): Make abstract.
19706         (class obstack_vrange_allocator): Inherit from vrange_allocator.
19707         (class ggc_vrange_allocator): New.
19709 2022-06-30  Roger Sayle  <roger@nextmovesoftware.com>
19710             Uroš Bizjak  <ubizjak@gmail.com>
19712         * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
19713         provide gen_swapsi.
19714         (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
19715         via new gen_<insn>32di2_doubleword below.
19716         (<anyrotate>32di2_doubleword): New define_insn_and_split
19717         that splits after reload as either a pair of move instructions
19718         or an xchgl (using gen_swapsi).
19720 2022-06-30  Richard Biener  <rguenther@suse.de>
19722         * domwalk.h (dom_walker::dom_walker): Update comment to
19723         reflect reality and new special argument value for
19724         bb_index_to_rpo.
19725         * domwalk.cc (dom_walker::dom_walker): Recognize -1
19726         bb_index_to_rpo.
19727         * tree-into-ssa.cc
19728         (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
19729         dom_walker to not use RPO.
19731 2022-06-30  Martin Liska  <mliska@suse.cz>
19733         * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
19734         it is unused.
19736 2022-06-30  Andrew MacLeod  <amacleod@redhat.com>
19738         PR tree-optimization/106114
19739         * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
19740         statement operands instead of GORI cache.
19742 2022-06-30  Antoni Boucher  <bouanto@zoho.com>
19744         PR target/106095
19745         * config/i386/sse.md: Fix asm generation.
19747 2022-06-29  Sergei Trofimovich  <siarheit@google.com>
19749         PR c++/106102
19750         * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
19752 2022-06-29  Joseph Myers  <joseph@codesourcery.com>
19754         * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
19755         not gen_const_mem for UNSPEC_PIC_CALL_SYM.
19757 2022-06-29  Richard Biener  <rguenther@suse.de>
19759         PR rtl-optimization/106082
19760         * combine.cc (distribute_notes): Preserve notes when
19761         they indicate a call doesn't perform a non-local goto.
19763 2022-06-29  Richard Biener  <rguenther@suse.de>
19765         PR tree-optimization/106112
19766         * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
19767         a constant operand according to its type.
19769 2022-06-29  Martin Liska  <mliska@suse.cz>
19771         * doc/invoke.texi: Remove removed evrp-mode.
19773 2022-06-29  Lulu Cheng  <chenglulu@loongson.cn>
19775         PR target/106097
19776         * config/loongarch/loongarch.cc (loongarch_build_integer):
19777         Remove undefined behavior from code.
19779 2022-06-28  Dimitar Dimitrov  <dimitar@dinux.eu>
19781         * doc/sourcebuild.texi: Document new no_alignment_constraints
19782         effective target check.
19784 2022-06-28  Aldy Hernandez  <aldyh@redhat.com>
19786         * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
19787         * flag-types.h (enum evrp_mode): Remove.
19788         * params.opt: Remove --param=evrp-mode.
19789         * tree-vrp.cc (make_pass_early_vrp): New.
19790         (pass_vrp::execute): Call early VRP instance.
19791         * gimple-ssa-evrp-analyze.cc: Removed.
19792         * gimple-ssa-evrp-analyze.h: Removed.
19793         * gimple-ssa-evrp.cc: Removed.
19795 2022-06-28  Alexandre Oliva  <oliva@adacore.com>
19797         * Makefile.in (TFLAGS): New.
19798         (GCC_FOR_TARGET): Add TFLAGS.
19799         (FLAGS_TO_PASS): Pass TFLAGS down.
19801 2022-06-28  Richard Biener  <rguenther@suse.de>
19803         * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
19804         call update_ssa.
19806 2022-06-28  Richard Biener  <rguenther@suse.de>
19808         * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
19809         mark_block_for_update.
19810         (update_ssa): Adjust.
19812 2022-06-28  Xi Ruoyao  <xry111@xry111.site>
19814         PR target/106096
19815         * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
19816         $r13 from SIBCALL_REGS.
19817         * config/loongarch/loongarch.cc (loongarch_regno_to_class):
19818         Change $r13 to JIRL_REGS.
19820 2022-06-28  Aldy Hernandez  <aldyh@redhat.com>
19822         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
19823         irange::supports_p.
19825 2022-06-28  Richard Biener  <rguenther@suse.de>
19827         PR middle-end/106053
19828         * match.pd ((T)a == (T)b): Avoid folding away sign
19829         changes in a comparison if we'd truncate to a boolean.
19831 2022-06-28  Kewen Lin  <linkw@linux.ibm.com>
19833         * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
19834         iterator GPR with SImode, adjust the condition and output template,
19835         rename to ...
19836         (*rotlsi3_insert_4): ... this.
19838 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
19840         * genmatch.cc: Add "final" and "override" to various vfunc
19841         implementations, removing redundant "virtual" as appropriate.
19842         * gensupport.cc: Likewise.
19843         * gimple-range-cache.h: Likewise.
19844         * ipa-icf-gimple.h: Likewise.
19845         * ipa-icf.h: Likewise.
19846         * read-md.h: Likewise.
19847         * read-rtl-function.cc: Likewise.
19848         * tree-ssa-loop-ch.cc: Likewise.
19849         * tree-ssa-sccvn.cc: Likewise.
19851 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
19853         * config/i386/i386-features.h: Add "final" and "override" to
19854         scalar_chain vfunc implementations as appropriate.
19856 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
19858         * tree-switch-conversion.h: Add "final" and "override" to cluster
19859         vfunc implementations as appropriate.
19861 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
19863         * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
19864         implementations as appropriate.
19866 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
19868         * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
19869         implementations, removing redundant "virtual" as appropriate.
19870         * gimple-ssa-strength-reduction.cc: Likewise.
19871         * ipa-prop.cc: Likewise.
19872         * rtl-ssa/blocks.cc: Likewise.
19873         * tree-into-ssa.cc: Likewise.
19874         * tree-ssa-dom.cc: Likewise.
19875         * tree-ssa-math-opts.cc: Likewise.
19876         * tree-ssa-phiopt.cc: Likewise.
19877         * tree-ssa-propagate.cc: Likewise.
19878         * tree-ssa-sccvn.cc: Likewise.
19879         * tree-ssa-strlen.cc: Likewise.
19880         * tree-ssa-uncprop.cc: Likewise.
19882 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
19884         * adjust-alignment.cc: Add "final" and "override" to opt_pass
19885         vfunc implementations, removing redundant "virtual" as
19886         appropriate.
19887         * asan.cc: Likewise.
19888         * auto-inc-dec.cc: Likewise.
19889         * auto-profile.cc: Likewise.
19890         * bb-reorder.cc: Likewise.
19891         * cfgcleanup.cc: Likewise.
19892         * cfgexpand.cc: Likewise.
19893         * cfgrtl.cc: Likewise.
19894         * cgraphbuild.cc: Likewise.
19895         * combine-stack-adj.cc: Likewise.
19896         * combine.cc: Likewise.
19897         * compare-elim.cc: Likewise.
19898         * config/i386/i386-features.cc: Likewise.
19899         * coroutine-passes.cc: Likewise.
19900         * cprop.cc: Likewise.
19901         * cse.cc: Likewise.
19902         * dce.cc: Likewise.
19903         * df-core.cc: Likewise.
19904         * dse.cc: Likewise.
19905         * dwarf2cfi.cc: Likewise.
19906         * early-remat.cc: Likewise.
19907         * except.cc: Likewise.
19908         * final.cc: Likewise.
19909         * function.cc: Likewise.
19910         * fwprop.cc: Likewise.
19911         * gcse.cc: Likewise.
19912         * gimple-harden-conditionals.cc: Likewise.
19913         * gimple-if-to-switch.cc: Likewise.
19914         * gimple-isel.cc: Likewise.
19915         * gimple-laddress.cc: Likewise.
19916         * gimple-loop-interchange.cc: Likewise.
19917         * gimple-loop-jam.cc: Likewise.
19918         * gimple-loop-versioning.cc: Likewise.
19919         * gimple-low.cc: Likewise.
19920         * gimple-ssa-backprop.cc: Likewise.
19921         * gimple-ssa-evrp.cc: Likewise.
19922         * gimple-ssa-isolate-paths.cc: Likewise.
19923         * gimple-ssa-nonnull-compare.cc: Likewise.
19924         * gimple-ssa-split-paths.cc: Likewise.
19925         * gimple-ssa-store-merging.cc: Likewise.
19926         * gimple-ssa-strength-reduction.cc: Likewise.
19927         * gimple-ssa-warn-access.cc: Likewise.
19928         * gimple-ssa-warn-alloca.cc: Likewise.
19929         * gimple-ssa-warn-restrict.cc: Likewise.
19930         * gimple-warn-recursion.cc: Likewise.
19931         * graphite.cc: Likewise.
19932         * ifcvt.cc: Likewise.
19933         * init-regs.cc: Likewise.
19934         * ipa-comdats.cc: Likewise.
19935         * ipa-cp.cc: Likewise.
19936         * ipa-devirt.cc: Likewise.
19937         * ipa-fnsummary.cc: Likewise.
19938         * ipa-free-lang-data.cc: Likewise.
19939         * ipa-icf.cc: Likewise.
19940         * ipa-inline.cc: Likewise.
19941         * ipa-modref.cc: Likewise.
19942         * ipa-profile.cc: Likewise.
19943         * ipa-pure-const.cc: Likewise.
19944         * ipa-reference.cc: Likewise.
19945         * ipa-split.cc: Likewise.
19946         * ipa-sra.cc: Likewise.
19947         * ipa-visibility.cc: Likewise.
19948         * ipa.cc: Likewise.
19949         * ira.cc: Likewise.
19950         * jump.cc: Likewise.
19951         * loop-init.cc: Likewise.
19952         * lower-subreg.cc: Likewise.
19953         * mode-switching.cc: Likewise.
19954         * modulo-sched.cc: Likewise.
19955         * multiple_target.cc: Likewise.
19956         * omp-expand.cc: Likewise.
19957         * omp-low.cc: Likewise.
19958         * omp-oacc-kernels-decompose.cc: Likewise.
19959         * omp-oacc-neuter-broadcast.cc: Likewise.
19960         * omp-offload.cc: Likewise.
19961         * omp-simd-clone.cc: Likewise.
19962         * passes.cc: Likewise.
19963         * postreload-gcse.cc: Likewise.
19964         * postreload.cc: Likewise.
19965         * predict.cc: Likewise.
19966         * recog.cc: Likewise.
19967         * ree.cc: Likewise.
19968         * reg-stack.cc: Likewise.
19969         * regcprop.cc: Likewise.
19970         * reginfo.cc: Likewise.
19971         * regrename.cc: Likewise.
19972         * reorg.cc: Likewise.
19973         * sancov.cc: Likewise.
19974         * sanopt.cc: Likewise.
19975         * sched-rgn.cc: Likewise.
19976         * stack-ptr-mod.cc: Likewise.
19977         * store-motion.cc: Likewise.
19978         * tracer.cc: Likewise.
19979         * trans-mem.cc: Likewise.
19980         * tree-call-cdce.cc: Likewise.
19981         * tree-cfg.cc: Likewise.
19982         * tree-cfgcleanup.cc: Likewise.
19983         * tree-complex.cc: Likewise.
19984         * tree-eh.cc: Likewise.
19985         * tree-emutls.cc: Likewise.
19986         * tree-if-conv.cc: Likewise.
19987         * tree-into-ssa.cc: Likewise.
19988         * tree-loop-distribution.cc: Likewise.
19989         * tree-nrv.cc: Likewise.
19990         * tree-object-size.cc: Likewise.
19991         * tree-parloops.cc: Likewise.
19992         * tree-predcom.cc: Likewise.
19993         * tree-profile.cc: Likewise.
19994         * tree-sra.cc: Likewise.
19995         * tree-ssa-ccp.cc: Likewise.
19996         * tree-ssa-copy.cc: Likewise.
19997         * tree-ssa-dce.cc: Likewise.
19998         * tree-ssa-dom.cc: Likewise.
19999         * tree-ssa-dse.cc: Likewise.
20000         * tree-ssa-forwprop.cc: Likewise.
20001         * tree-ssa-ifcombine.cc: Likewise.
20002         * tree-ssa-loop-ch.cc: Likewise.
20003         * tree-ssa-loop-im.cc: Likewise.
20004         * tree-ssa-loop-ivcanon.cc: Likewise.
20005         * tree-ssa-loop-prefetch.cc: Likewise.
20006         * tree-ssa-loop-split.cc: Likewise.
20007         * tree-ssa-loop-unswitch.cc: Likewise.
20008         * tree-ssa-loop.cc: Likewise.
20009         * tree-ssa-math-opts.cc: Likewise.
20010         * tree-ssa-phiopt.cc: Likewise.
20011         * tree-ssa-phiprop.cc: Likewise.
20012         * tree-ssa-pre.cc: Likewise.
20013         * tree-ssa-reassoc.cc: Likewise.
20014         * tree-ssa-sccvn.cc: Likewise.
20015         * tree-ssa-sink.cc: Likewise.
20016         * tree-ssa-strlen.cc: Likewise.
20017         * tree-ssa-structalias.cc: Likewise.
20018         * tree-ssa-uncprop.cc: Likewise.
20019         * tree-ssa-uninit.cc: Likewise.
20020         * tree-ssanames.cc: Likewise.
20021         * tree-stdarg.cc: Likewise.
20022         * tree-switch-conversion.cc: Likewise.
20023         * tree-tailcall.cc: Likewise.
20024         * tree-vect-generic.cc: Likewise.
20025         * tree-vectorizer.cc: Likewise.
20026         * tree-vrp.cc: Likewise.
20027         * tsan.cc: Likewise.
20028         * ubsan.cc: Likewise.
20029         * var-tracking.cc: Likewise.
20030         * vtable-verify.cc: Likewise.
20031         * web.cc: Likewise.
20033 2022-06-27  Andrew Stubbs  <ams@codesourcery.com>
20035         * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
20036         (jump): Likewise.
20037         (movdi_symbol_save_scc): Likewise.
20039 2022-06-27  Roger Sayle  <roger@nextmovesoftware.com>
20041         PR rtl-optimization/7061
20042         * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
20044 2022-06-27  Roger Sayle  <roger@nextmovesoftware.com>
20046         PR tree-optimization/94026
20047         * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
20048         (((X >> C1) & C2) eq/ne C3): Likewise.
20050 2022-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20052         * statistics.cc: Include tree.h.
20053         (get_function_name): New function.
20054         (statistics_fini_pass_2): Call get_function_name instead of
20055         current_function_name.
20056         (statistics_counter_event): Call get_function_name instead of
20057         function_name.
20058         (statistics_histogram_event): Likewise.
20060 2022-06-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20062         * config/xtensa/xtensa.md:
20063         Suppress unnecessary emitting nop insn in the split patterns for
20064         integer/FP constant synthesis, and add new peephole2 pattern that
20065         folds such synthesized additions.
20067 2022-06-25  Aldy Hernandez  <aldyh@redhat.com>
20069         * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
20070         instead of evrp.
20071         (dom_jt_state::push): Remove m_evrp.
20072         (dom_jt_state::pop): Same.
20073         (dom_jt_state::record_ranges_from_stmt): Remove.
20074         (dom_jt_state::register_equiv): Remove updating of evrp ranges.
20075         (class dom_jt_simplifier): Pass ranger to constructor.
20076         Inherit from hybrid_jt_simplifier.
20077         (dom_jt_simplifier::simplify): Convert to ranger.
20078         (pass_dominator::execute): Same.
20079         (all_uses_feed_or_dominated_by_stmt): New.
20080         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
20081         (dom_opt_dom_walker::before_dom_children): Call
20082         set_global_ranges_from_unreachable_edges.
20083         Do not call record_ranges_from_stmt.
20084         (dom_opt_dom_walker::after_dom_children): Remove evrp use.
20085         (cprop_operand): Use int_range<> instead of value_range.
20086         (dom_opt_dom_walker::fold_cond): New.
20087         (dom_opt_dom_walker::optimize_stmt): Pass ranger to
20088         cprop_into_stmt.
20089         Use fold_cond() instead of vrp_visit_cond_stmt().
20090         * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
20091         pass state to simplifier.
20092         * vr-values.h (class vr_values): Make fold_cond public.
20094 2022-06-25  Jeff Law  <jeffreyalaw@gmail.com>
20096         * common/config/tilegx/tilegx-common.cc: Removed.
20097         * common/config/tilepro/tilepro-common.cc: Removed.
20098         * config.gcc: Remove tilegx and tilepro entries.
20099         * config/tilegx/constraints.md: Removed.
20100         * config/tilegx/feedback.h: Removed.
20101         * config/tilegx/linux.h: Removed.
20102         * config/tilegx/mul-tables.cc: Removed.
20103         * config/tilegx/predicates.md: Removed.
20104         * config/tilegx/sync.md: Removed.
20105         * config/tilegx/t-tilegx: Removed.
20106         * config/tilegx/tilegx-builtins.h: Removed.
20107         * config/tilegx/tilegx-c.cc: Removed.
20108         * config/tilegx/tilegx-generic.md: Removed.
20109         * config/tilegx/tilegx-modes.def: Removed.
20110         * config/tilegx/tilegx-multiply.h: Removed.
20111         * config/tilegx/tilegx-opts.h: Removed.
20112         * config/tilegx/tilegx-protos.h: Removed.
20113         * config/tilegx/tilegx.cc: Removed.
20114         * config/tilegx/tilegx.h: Removed.
20115         * config/tilegx/tilegx.md: Removed.
20116         * config/tilegx/tilegx.opt: Removed.
20117         * config/tilepro/constraints.md: Removed.
20118         * config/tilepro/feedback.h: Removed.
20119         * config/tilepro/gen-mul-tables.cc: Removed.
20120         * config/tilepro/linux.h: Removed.
20121         * config/tilepro/mul-tables.cc: Removed.
20122         * config/tilepro/predicates.md: Removed.
20123         * config/tilepro/t-tilepro: Removed.
20124         * config/tilepro/tilepro-builtins.h: Removed.
20125         * config/tilepro/tilepro-c.cc: Removed.
20126         * config/tilepro/tilepro-generic.md: Removed.
20127         * config/tilepro/tilepro-modes.def: Removed.
20128         * config/tilepro/tilepro-multiply.h: Removed.
20129         * config/tilepro/tilepro-protos.h: Removed.
20130         * config/tilepro/tilepro.cc: Removed.
20131         * config/tilepro/tilepro.h: Removed.
20132         * config/tilepro/tilepro.md: Removed.
20133         * config/tilepro/tilepro.opt: Removed.
20134         * configure.ac: Remove tilegx and tilepro entries.
20135         * configure: Rebuilt.
20136         * doc/extend.texi: Remove tilegx and tilepro entries.
20137         * doc/install.texi: Remove tilegx and tilepro entries.
20138         * doc/invoke.texi: Remove tilegx and tilepro entries.
20139         * doc/md.texi: Remove tilegx and tilepro entries.
20141 2022-06-25  Roger Sayle  <roger@nextmovesoftware.com>
20142             Richard Biener  <rguenther@suse.de>
20144         * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
20145         iteration over each basic block that was updated by the second
20146         iteration.
20148 2022-06-24  Jason Merrill  <jason@redhat.com>
20150         PR c++/87729
20151         PR c++/20423
20152         * doc/invoke.texi: Document changes.
20154 2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
20156         * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
20157         condition to avoid overflow.
20159 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
20161         * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
20162         OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
20163         * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
20164         OPTION_MASK_PPC_GFXOPT.
20165         * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
20166         * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
20167         OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
20168         * config/rs6000/rs6000-c.cc: Update comment.
20169         * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
20170         * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
20171         MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
20172         (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
20173         with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
20174         * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
20175         MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
20176         MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
20177         MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
20179 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
20181         * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
20182         OPTION_MASK_MFCRF.
20183         * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
20184         OPTION_MASK_MULTIPLE.
20185         * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
20186         * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
20187         OPTION_MASK_MFCRF.
20188         * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
20189         OPTION_MASK_EABI.
20190         * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
20191         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
20192         MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
20193         * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
20194         MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
20195         MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
20196         MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
20197         MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
20198         Replace with
20199         OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
20200         OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
20201         OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
20202         OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
20203         OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
20204         OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
20205         OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
20206         * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
20207         MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
20208         * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
20209         with OPTION_MASK_MULTIPLE.
20210         (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
20211         MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
20212         MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
20213         MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
20214         MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
20215         * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
20216         with OPTION_MASK_EABI.
20218 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
20220         * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
20221         RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
20222         RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
20223         RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
20224         OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
20225         OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
20226         OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
20227         * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
20228         RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
20229         RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
20230         RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
20232 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
20234         * config/rs6000/rs6000-c.cc: Update comments.
20235         * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
20236         RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
20237         RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
20238         RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
20239         RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
20240         with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
20241         OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
20242         OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
20243         OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
20244         OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
20245         OPTION_MASK_MMA, OPTION_MASK_POWER10.
20246         * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
20247         RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
20248         RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
20249         RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
20250         RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
20252 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
20254         * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
20255         MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
20256         OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
20258 2022-06-24  Richard Biener  <rguenther@suse.de>
20260         PR middle-end/106070
20261         * match.pd (a != b ? a : b): Fix translation of
20262         operand_equal_for_comparison_p.
20264 2022-06-24  Jan Hubicka  <jh@suse.cz>
20266         PR ipa/106057
20267         * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
20269 2022-06-24  Martin Liska  <mliska@suse.cz>
20271         PR middle-end/106059
20272         * profile-count.h: *= and /= operators need to modify this
20273         object.
20275 2022-06-24  Roger Sayle  <roger@nextmovesoftware.com>
20276             Uroš Bizjak  <ubizjak@gmail.com>
20278         PR target/105930
20279         * config/i386/i386.md (*<any_or>di3_doubleword): Split after
20280         reload.  Use rtx_equal_p to avoid creating memory-to-memory moves,
20281         and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
20283 2022-06-24  Alexandre Oliva  <oliva@adacore.com>
20285         * common.opt (nostdlib++): New.
20286         * doc/invoke.texi (-nostdlib++): Document it.
20288 2022-06-24  Alexandre Oliva  <oliva@adacore.com>
20290         * doc/sourcebuild.texi (Environment attributes): Document
20291         two_plus_gigs.
20293 2022-06-23  David Malcolm  <dmalcolm@redhat.com>
20295         * common.opt (fdiagnostics-show-rules): New option.
20296         * diagnostic-format-json.cc (diagnostic_output_format_init_json):
20297         Fix up context->show_rules.
20298         * diagnostic-format-sarif.cc
20299         (diagnostic_output_format_init_sarif): Likewise.
20300         * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
20301         (diagnostic_metadata::precanned_rule): New class.
20302         (diagnostic_metadata::add_rule): New.
20303         (diagnostic_metadata::get_num_rules): New.
20304         (diagnostic_metadata::get_rule): New.
20305         (diagnostic_metadata::m_rules): New field.
20306         * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
20307         (print_any_rules): New.
20308         (diagnostic_report_diagnostic): Call it.
20309         * diagnostic.h (diagnostic_context::show_rules): New field.
20310         * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
20311         * opts.cc (common_handle_option): Handle
20312         OPT_fdiagnostics_show_rules.
20313         * toplev.cc (general_init): Set up global_dc->show_rules.
20315 2022-06-23  Martin Liska  <mliska@suse.cz>
20317         PR c++/106062
20318         * ubsan.cc (sanitize_unreachable_fn): Change order of calls
20319         in order to initialize UBSAN built-ins.
20321 2022-06-23  Martin Liska  <mliska@suse.cz>
20323         PR ipa/105600
20324         * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
20325         Skip variables with body_removed.
20327 2022-06-23  liuhongt  <hongtao.liu@intel.com>
20329         * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
20330         reg_or_subregno.
20331         (sse4_2_pcmpistr): Ditto.
20333 2022-06-23  Xionghu Luo  <xionghuluo@tencent.com>
20335         * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
20336         typo.
20337         * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
20338         * tree-switch-conversion.h: Likewise.
20340 2022-06-22  Jason Merrill  <jason@redhat.com>
20342         PR c++/104642
20343         * common.opt: Add -funreachable-traps.
20344         * doc/invoke.texi (-funreachable-traps): Document it.
20345         * opts.cc (finish_options): Enable at -O0 or -Og.
20346         * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
20347         (builtin_decl_unreachable, build_builtin_unreachable): New.
20348         * tree.h: Declare them.
20349         * ubsan.cc (sanitize_unreachable_fn): Factor out.
20350         (ubsan_instrument_unreachable): Use
20351         gimple_build_builtin_unreachable.
20352         * ubsan.h (sanitize_unreachable_fn): Declare.
20353         * gimple.cc (gimple_build_builtin_unreachable): New.
20354         * gimple.h: Declare it.
20355         * builtins.cc (expand_builtin_unreachable): Add assert.
20356         (fold_builtin_0): Call build_builtin_unreachable.
20357         * sanopt.cc: Don't run for just SANITIZE_RETURN
20358         or SANITIZE_UNREACHABLE when trapping.
20359         * cgraphunit.cc (walk_polymorphic_call_targets): Use new
20360         unreachable functions.
20361         * gimple-fold.cc (gimple_fold_call)
20362         (gimple_get_virt_method_for_vtable)
20363         * ipa-fnsummary.cc (redirect_to_unreachable)
20364         * ipa-prop.cc (ipa_make_edge_direct_to_target)
20365         (ipa_impossible_devirt_target)
20366         * ipa.cc (walk_polymorphic_call_targets)
20367         * tree-cfg.cc (pass_warn_function_return::execute)
20368         (execute_fixup_cfg)
20369         * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
20370         (unloop_loops)
20371         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
20372         Likewise.
20374 2022-06-22  Richard Sandiford  <richard.sandiford@arm.com>
20376         PR tree-optimization/106019
20377         * tree-data-ref.cc (dr_may_alias_p): Try using the
20378         innermost_loop_behavior to disambiguate non-loop queries.
20380 2022-06-22  Palmer Dabbelt  <palmer@rivosinc.com>
20382         * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
20384 2022-06-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20386         * config/xtensa/xtensa.md (bswapsi2_internal):
20387         Enlarge the buffer that is obviously smaller than the template
20388         string given to sprintf().
20390 2022-06-21  Roger Sayle  <roger@nextmovesoftware.com>
20391             Marek Polacek  <polacek@redhat.com>
20392             Segher Boessenkool  <segher@kernel.crashing.org>
20393             Kewen Lin  <linkw@linux.ibm.com>
20395         PR target/105991
20396         * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
20397         exact_log2 doesn't return -1 (or zero).
20398         (plus_xor): New code iterator.
20399         (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
20401 2022-06-21  Nathan Sidwell  <nathan@acm.org>
20403         * doc/invoke.texi (C++ Modules): Remove language-linkage
20404         as missing feature.
20406 2022-06-21  Arjun Shankar  <arjun@redhat.com>
20408         PR tree-optimization/94899
20409         * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
20410         0x80000000): New simplification.
20412 2022-06-21  Jakub Jelinek  <jakub@redhat.com>
20414         PR rtl-optimization/106032
20415         * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
20416         t may_trap_or_fault_p, even if it is cheap.
20418 2022-06-21  Jakub Jelinek  <jakub@redhat.com>
20420         PR middle-end/106030
20421         * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
20422         temp to expand_operands if mode has been promoted.
20424 2022-06-21  Xionghu Luo  <xionghuluo@tencent.com>
20426         PR target/105740
20427         * gimple-if-to-switch.cc (find_conditions): Don't skip the first
20428         condition bb.
20430 2022-06-21  Siddhesh Poyarekar  <siddhesh@gotplt.org>
20432         PR tree-optimization/105736
20433         * tree-object-size.cc (addr_object_size): Return size_unknown
20434         when object offset computation returns an error.
20436 2022-06-20  H.J. Lu  <hjl.tools@gmail.com>
20438         PR target/105960
20439         * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
20440         false if PIC register is used when calling ifunc functions.
20442 2022-06-20  Richard Biener  <rguenther@suse.de>
20444         PR middle-end/106027
20445         * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
20446         type of the prevailing comparison for the new comparison type.
20447         (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
20448         to A < X && A >= Y folding.
20450 2022-06-20  Kewen Lin  <linkw@linux.ibm.com>
20452         PR tree-optimization/105940
20453         * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
20454         slp_done_for_suggested_uf and adjust with it accordingly.
20455         (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
20456         pass it down to vect_analyze_loop_2 for the initial analysis and
20457         applying suggested unroll factor.
20458         (vect_is_simple_reduction): Add parameter slp and adjust with it.
20459         (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
20460         (vect_analyze_scalar_cycles): Likewise.
20462 2022-06-20  Martin Liska  <mliska@suse.cz>
20464         * bb-reorder.cc (find_traces_1_round): Add operators / and * and
20465         use them.
20466         (better_edge_p): Likewise.
20467         * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
20468         * cfgloopmanip.cc (scale_loop_profile): Likewise.
20469         * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
20470         * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
20471         * config/sh/sh.cc (expand_cbranchdi4): Likewise.
20472         * dojump.cc (do_compare_rtx_and_jump): Likewise.
20473         * final.cc (compute_alignments): Likewise.
20474         * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
20475         (decide_about_value): Likewise.
20476         * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
20477         * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
20478         * modulo-sched.cc (sms_schedule): Likewise.
20479         * omp-expand.cc (extract_omp_for_update_vars): Likewise.
20480         (expand_omp_ordered_sink): Likewise.
20481         (expand_omp_for_ordered_loops): Likewise.
20482         (expand_omp_for_static_nochunk): Likewise.
20483         * predict.cc (maybe_hot_count_p): Likewise.
20484         (probably_never_executed): Likewise.
20485         (set_even_probabilities): Likewise.
20486         (handle_missing_profiles): Likewise.
20487         (expensive_function_p): Likewise.
20488         * profile-count.h: Likewise.
20489         * profile.cc (compute_branch_probabilities): Likewise.
20490         * stmt.cc (emit_case_dispatch_table): Likewise.
20491         * symtab-thunks.cc (expand_thunk): Likewise.
20492         * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
20493         * tree-ssa-sink.cc (select_best_block): Likewise.
20494         * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
20495         (switch_decision_tree::balance_case_nodes): Likewise.
20496         (switch_decision_tree::emit_case_nodes): Likewise.
20497         * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
20499 2022-06-20  yulong  <shiyulong@iscas.ac.cn>
20501         * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
20502         * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
20503         of RISCV_BUILTIN.
20504         * config/riscv/riscv-ftypes.def (0): Remove unused.
20505         (1): New.
20507 2022-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20509         * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
20510         Consider relaxed MOVI instructions as L32R.
20512 2022-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20514         * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
20515         Use can_create_pseudo_p(), instead of using individual
20516         reload_in_progress and reload_completed.
20517         (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
20518         the existing predicate function.
20519         (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
20520         Use the standard RTX code predicate macros such as MEM_P,
20521         SYMBOL_REF_P and/or CONST_INT_P.
20522         * config/xtensa/xtensa.md: Avoid using numeric literals to determine
20523         if callee-saved register, at the split patterns for indirect sibcall
20524         fixups.
20526 2022-06-18  Jakub Jelinek  <jakub@redhat.com>
20528         * common.opt (flag_sanitize_trap): New variable.
20529         (fsanitize-trap=, fsanitize-trap): New options.
20530         (fsanitize-undefined-trap-on-error): Change into deprecated alias
20531         for -fsanitize-trap=all.
20532         * opts.h (struct sanitizer_opts_s): Add can_trap member.
20533         * opts.cc (finish_options): Complain about unsupported
20534         -fsanitize-trap= options.
20535         (sanitizer_opts): Add can_trap values to all entries.
20536         (get_closest_sanitizer_option): Ignore -fsanitize-trap=
20537         options which have can_trap false.
20538         (parse_sanitizer_options): Add support for -fsanitize-trap=.
20539         For -fsanitize-trap=all, enable
20540         SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT.  Disallow
20541         -fsanitize-trap=vptr here.
20542         (common_handle_option): Handle OPT_fsanitize_trap_ and
20543         OPT_fsanitize_trap.
20544         * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
20545         flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
20546         flag_sanitize_undefined_trap_on_error.
20547         * gcc.cc (sanitize_spec_function): Use
20548         flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
20549         and drop use of flag_sanitize_undefined_trap_on_error in
20550         "undefined" handling.
20551         * ubsan.cc (ubsan_instrument_unreachable): Use
20552         flag_sanitize_trap & SANITIZE_??? instead of
20553         flag_sanitize_undefined_trap_on_error.
20554         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
20555         ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
20556         ubsan_build_overflow_builtin, instrument_bool_enum_load,
20557         ubsan_instrument_float_cast, instrument_nonnull_arg,
20558         instrument_nonnull_return, instrument_builtin): Likewise.
20559         * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
20560         (-fsanitize-undefined-trap-on-error): Document as deprecated
20561         alias of -fsanitize-trap.
20563 2022-06-18  Jakub Jelinek  <jakub@redhat.com>
20565         PR middle-end/105998
20566         * varasm.cc (narrowing_initializer_constant_valid_p): Check
20567         SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
20568         ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
20570 2022-06-18  Roger Sayle  <roger@nextmovesoftware.com>
20572         PR tree-optimization/105835
20573         * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
20574         Narrow integer multiplication by a zero_one_valued_p operand.
20575         (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
20576         conversions inside COND_EXPR where both data operands are
20577         integer constants.
20579 2022-06-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20581         * config/xtensa/constraints.md (Y):
20582         Change to include integer constants until reload begins.
20583         * config/xtensa/predicates.md (move_operand): Ditto.
20584         * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
20585         Change to allow storing integer constants into litpool only after
20586         reload begins.
20588 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
20590         PR target/105209
20591         * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
20592         * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
20593         (alpha_store_data_bypass_p_1): Ditto.
20594         * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
20595         of generic store_data_bypass_p.
20596         (ev4_ist_c): Remove insn reservation.
20598 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
20600         PR target/105970
20601         * config/i386/i386.cc (ix86_function_arg): Assert that
20602         the mode of pointer argumet is equal to ptr_mode, not Pmode.
20604 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
20606         PR target/105993
20607         * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
20608         instead of REGNO comparisons in combine splitter.
20610 2022-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
20612         * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
20613         types.
20615 2022-06-17  Kito Cheng  <kito.cheng@sifive.com>
20617         * config/riscv/bitmanip.md: Supress warning.
20619 2022-06-17  Richard Earnshaw  <rearnsha@arm.com>
20621         PR target/106004
20622         * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
20623         Clear bits in the mask above bit 31.
20625 2022-06-17  Richard Earnshaw  <rearnsha@arm.com>
20627         * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
20628         to avoid spilling trivial literals to the constant pool.
20630 2022-06-16  David Malcolm  <dmalcolm@redhat.com>
20632         * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
20633         auto_diagnostic_group to group any warning with its note.
20634         (maybe_warn_for_bound): Likewise.
20635         (check_access): Likewise.
20636         (warn_dealloc_offset): Likewise.
20637         (pass_waccess::maybe_warn_memmodel): Likewise.
20638         (pass_waccess::maybe_check_dealloc_call): Likewise.
20639         (pass_waccess::warn_invalid_pointer): Likewise.
20640         (pass_waccess::check_dangling_stores): Likewise.
20642 2022-06-16  Jason Merrill  <jason@redhat.com>
20644         * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
20645         opts_set->x_flag_sanitize.
20647 2022-06-16  Jason Merrill  <jason@redhat.com>
20649         * flags.h (issue_strict_overflow_warning): Comment #endif.
20651 2022-06-16  Andrew MacLeod  <amacleod@redhat.com>
20653         * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
20654         was invaraint before, clear the invariant bit.
20655         * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
20656         * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
20658 2022-06-16  Andrew MacLeod  <amacleod@redhat.com>
20660         * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
20662 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
20664         PR tree-optimization/105983
20665         * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
20666         y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
20667         on non-equality comparisons.
20669 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
20671         PR tree-optimization/105984
20672         * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
20673         x > stype_max / cst || x < stype_min / cst): fold_convert @1
20674         to TREE_TYPE (@0) just once and test for negative divisor
20675         also on that folded constant instead of on @1.
20677 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
20679         PR middle-end/105951
20680         * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
20681         optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
20682         as last argument to the internal functions.
20683         * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
20684         extra call argument to ifns.  If expand_atomic_fetch_op fails for the
20685         lhs == NULL_TREE case, fall through into the optab code with
20686         gen_reg_rtx (mode) as target.  If second expand_atomic_fetch_op
20687         fails, construct a CALL_EXPR and expand that.
20688         (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
20689         to ifns.  If expand_atomic_fetch_op fails, construct a CALL_EXPR and
20690         expand that.
20692 2022-06-16  Haochen Gui  <guihaoc@gcc.gnu.org>
20694         PR target/103316
20695         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
20696         gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
20697         RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
20698         RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
20699         * config/rs6000/vector.md (VEC_IC): New mode iterator.  Add support
20700         for new Power10 V1TI instructions.
20701         (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
20702         (vec_cmpu<mode><mode>): Likewise.
20703         (vector_nlt<mode>): Set mode iterator to VEC_IC.
20704         (vector_nltv1ti): Remove.
20705         (vector_gtu<mode>): Set mode iterator to VEC_IC.
20706         (vector_gtuv1ti): Remove.
20707         (vector_nltu<mode>): Set mode iterator to VEC_IC.
20708         (vector_nltuv1ti): Remove.
20709         (vector_geu<mode>): Set mode iterator to VEC_IC.
20710         (vector_ngt<mode>): Likewise.
20711         (vector_ngtv1ti): Remove.
20712         (vector_ngtu<mode>): Set mode iterator to VEC_IC.
20713         (vector_ngtuv1ti): Remove.
20714         (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
20715         (vector_gtu_v1ti_p): Remove.
20716         (vrotl<mode>3): Set mode iterator to VEC_IC.  Emit insns for V1TI.
20717         (vrotlv1ti3): Remove.
20718         (vashr<mode>3): Set mode iterator to VEC_IC.  Emit insns for V1TI.
20719         (vashrv1ti3): Remove.
20721 2022-06-16  Martin Liska  <mliska@suse.cz>
20723         * gengtype-state.cc (read_a_state_token): Do not skip extra
20724         character after escaped sequence.
20726 2022-06-16  Martin Liska  <mliska@suse.cz>
20728         PR driver/105564
20729         * spellcheck.cc (test_find_closest_string): Add new test.
20730         * spellcheck.h (class best_match): Prefer a difference in
20731         trailing sign symbol.
20733 2022-06-16  liuhongt  <hongtao.liu@intel.com>
20735         PR tree-optimization/53533
20736         * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
20737         (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
20738         and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
20740 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20742         * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
20744 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20746         * config/xtensa/predicates.md (reload_operand):
20747         New predicate.
20748         * config/xtensa/xtensa.md: New peephole2 pattern.
20750 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20752         * config/xtensa/xtensa.md (*round_up_to_even):
20753         New insn-and-split pattern.
20754         (*signed_ge_zero): Ditto.
20756 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20758         * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
20759         xtensa_emit_sibcall): New prototypes.
20760         (xtensa_expand_epilogue): Add new argument that specifies whether
20761         or not sibling call.
20762         * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
20763         New macro definition.
20764         (xtensa_prepare_expand_call): New function in order to share
20765         the common code.
20766         (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
20767         New functions.
20768         (xtensa_expand_epilogue): Add new argument sibcall_p and use it
20769         for sibling call handling.
20770         * config/xtensa/xtensa.md (call, call_value):
20771         Use xtensa_prepare_expand_call.
20772         (call_internal, call_value_internal):
20773         Add the condition in order to be disabled if sibling call.
20774         (sibcall, sibcall_value, sibcall_epilogue): New expansions.
20775         (sibcall_internal, sibcall_value_internal): New insn patterns,
20776         and split ones in order to take care of the indirect sibcalls.
20778 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20780         * doc/invoke.texi: Document -mextra-l32r-costs= option.
20782 2022-06-15  David Malcolm  <dmalcolm@redhat.com>
20784         PR analyzer/105962
20785         * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
20786         * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
20787         Extend -fdiagnostics-path-format=separate-events so that with
20788         -fdiagnostics-show-path-depths it prints fndecls as well as stack
20789         depths.
20791 2022-06-15  David Malcolm  <dmalcolm@redhat.com>
20793         * value-relation.h: Add "final" and "override" to relation_oracle
20794         vfunc implementations as appropriate.
20796 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
20798         PR middle-end/105975
20799         Revert everything apart from the expand_fn_using_insn and
20800         expand_direct_optab_fn changes from:
20801         * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
20802         (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
20803         (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
20804         (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
20805         * internal-fn.h (direct_internal_fn_info::directly_mapped): New
20806         member variable.
20807         (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
20808         (direct_internal_fn_p): Also return true for internal functions
20809         that map directly to instructions defined target-insns.def.
20810         (direct_internal_fn): Adjust comment accordingly.
20811         * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
20812         (vectorizable_optab2): New local macros.
20813         (not_direct): Initialize directly_mapped.
20814         (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
20815         (gather_load_direct, len_load_direct, mask_store_direct)
20816         (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
20817         (vec_cond_direct, scatter_store_direct, len_store_direct)
20818         (vec_set_direct, unary_direct, binary_direct, ternary_direct)
20819         (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
20820         (while_direct, fold_extract_direct, fold_left_direct)
20821         (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
20822         (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
20823         (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
20824         (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
20825         (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
20826         (direct_internal_fn_types): Handle functions that map to instructions
20827         defined in target-insns.def.
20828         (direct_internal_fn_types): Likewise.
20829         (direct_internal_fn_supported_p): Likewise.
20830         (internal_fn_expanders): Likewise.
20831         (expand_fn_using_insn): New function,
20832         split out and adapted from...
20833         (expand_direct_optab_fn): ...here.
20834         (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
20835         (expand_GOMP_SIMT_EXIT): Likewise.
20836         (expand_GOMP_SIMT_LANE): Likewise.
20837         (expand_GOMP_SIMT_LAST_LANE): Likewise.
20838         (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
20839         (expand_GOMP_SIMT_VOTE_ANY): Likewise.
20840         (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
20841         (expand_GOMP_SIMT_XCHG_IDX): Likewise.
20843 2022-06-15  Richard Earnshaw  <rearnsha@arm.com>
20845         PR target/105981
20846         * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
20847         to first_reg and second_reg respectively.  Initialize them correctly
20848         when generating big-endian code.
20850 2022-06-15  Richard Earnshaw  <rearnsha@arm.com>
20852         PR target/105974
20853         * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
20855 2022-06-15  Richard Biener  <rguenther@suse.de>
20857         PR tree-optimization/105971
20858         * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
20859         FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
20860         to leak less surprising alias results.
20862 2022-06-15  Richard Biener  <rguenther@suse.de>
20864         PR tree-optimization/105969
20865         * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
20866         by zero in overflow check.
20868 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
20870         PR tree-optimization/105254
20871         PR tree-optimization/105940
20872         Revert:
20873         * config/aarch64/aarch64.cc
20874         (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
20875         loop_vec_info as argument.  Restrict the unroll factor to values
20876         that divide the VF.
20877         (aarch64_vector_costs::finish_cost): Update call accordingly.
20879 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
20881         * read-rtl.cc (find_int): Substitute symbolic constants
20882         before converting the string to an integer.
20884 2022-06-15  Roger Sayle  <roger@nextmovesoftware.com>
20885             Richard Biener  <rguenther@suse.de>
20887         * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
20888         left shifts by a constant when the result is truncated, and the
20889         shift constant is well-defined.
20890         * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
20891         support for rotations of signed integer types, by lowering
20892         using unsigned vector shifts.
20894 2022-06-15  liuhongt  <hongtao.liu@intel.com>
20896         PR target/105953
20897         * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
20898         operands[3].
20900 2022-06-14  Surya Kumari Jangala  <jskumari@linux.ibm.com>
20902         PR rtl-optimization/105041
20903         * regrename.cc (check_new_reg_p): Use nregs value from du chain.
20905 2022-06-14  Segher Boessenkool  <segher@kernel.crashing.org>
20907         * config/rs6000/vsx.md (VS_scalar): Delete.
20908         (rest of file): Adjust.
20910 2022-06-14  Jan Hubicka  <hubicka@ucw.cz>
20912         PR ipa/105739
20913         * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
20915 2022-06-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
20917         * config/riscv/bitmanip.md: Add split to handle opportunities
20918         for slli + sh[123]add.uw
20920 2022-06-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
20922         * config/riscv/predicates.md (consecutive_bits_operand):
20923         Implement new predicate.
20925 2022-06-14  Richard Biener  <rguenther@suse.de>
20927         PR tree-optimization/105946
20928         * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
20929         Do not look at arguments not specified in the function call.
20931 2022-06-14  Richard Biener  <rguenther@suse.de>
20933         PR middle-end/105965
20934         * match.pd (view_convert CONSTRUCTOR): Handle single-element
20935         CTOR case.
20937 2022-06-14  Eric Botcazou  <ebotcazou@adacore.com>
20939         * warning-control.cc (copy_warning) [generic version]: Do not erase
20940         the warning data of the destination location when the no-warning
20941         bit is not set on the source.
20942         (copy_warning) [tree version]: Return early if TO is equal to FROM.
20943         (copy_warning) [gimple version]: Likewise.
20945 2022-06-14  Kewen Lin  <linkw@linux.ibm.com>
20947         PR tree-optimization/105940
20948         * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
20949         applying suggested_unroll_factor after start_over.
20951 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20953         * config/xtensa/predicates.md (shifted_mask_operand):
20954         New predicate.
20955         * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
20956         New insn-and-split pattern.
20957         (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
20958         *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
20959         *masktrue_const_shifted_mask): Ditto.
20961 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20963         * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
20965 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20967         * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
20968         Remove the first argument.
20969         (xtensa_emit_bit_branch): Remove it because now called only from the
20970         output statement of *bittrue insn pattern.
20971         * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
20972         argument 'p_invert', and make so that the condition is reversed by
20973         itself as needed.
20974         (xtensa_expand_conditional_branch): Share the common path, and remove
20975         condition inversion code.
20976         (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
20977         "false side" pattern.
20978         (xtensa_emit_bit_branch): Remove it because of the abovementioned
20979         reason, and move the function body to *bittrue insn pattern.
20980         * config/xtensa/xtensa.md (*bittrue): Transplant the output
20981         statement from removed xtensa_emit_bit_branch().
20982         (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
20983         insn patterns.
20985 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
20987         * config/xtensa/predicates.md (logical_shift_operator,
20988         xtensa_shift_per_byte_operator): New predicates.
20989         * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
20990         New prototype.
20991         * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
20992         New helper function for funnel shift patterns.
20993         * config/xtensa/xtensa.md (ior_op): New code iterator.
20994         (*ashlsi3_1): Replace with new split pattern.
20995         (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
20996         (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
20997         New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
20998         in order to omit unnecessary bitwise AND operation.
20999         (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
21000         *shlrd_per_byte_<code>_omit_AND):
21001         New insn patterns for funnel shifts.
21003 2022-06-13  Jason Merrill  <jason@redhat.com>
21005         * tree-cfg.cc (pass_warn_function_return::execute): Also check
21006         BUILT_IN_TRAP.
21008 2022-06-13  Maciej W. Rozycki  <macro@embecosm.com>
21010         * config/riscv/riscv.md (length): Remove the explicit setting
21011         for "fcmp".
21013 2022-06-13  H.J. Lu  <hjl.tools@gmail.com>
21015         * common/config/i386/cpuinfo.h (get_available_features): Require
21016         AVX for F16C and VAES.
21018 2022-06-13  Uroš Bizjak  <ubizjak@gmail.com>
21020         PR target/105927
21021         * config/i386/predicates.md (register_no_elim_operand):
21022         Return true for subreg of a memory operand.
21024 2022-06-13  Richard Sandiford  <richard.sandiford@arm.com>
21026         * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
21027         (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
21028         (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
21029         (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
21030         * internal-fn.h (direct_internal_fn_info::directly_mapped): New
21031         member variable.
21032         (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
21033         (direct_internal_fn_p): Also return true for internal functions
21034         that map directly to instructions defined target-insns.def.
21035         (direct_internal_fn): Adjust comment accordingly.
21036         * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
21037         (vectorizable_optab2): New local macros.
21038         (not_direct): Initialize directly_mapped.
21039         (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
21040         (gather_load_direct, len_load_direct, mask_store_direct)
21041         (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
21042         (vec_cond_direct, scatter_store_direct, len_store_direct)
21043         (vec_set_direct, unary_direct, binary_direct, ternary_direct)
21044         (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
21045         (while_direct, fold_extract_direct, fold_left_direct)
21046         (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
21047         (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
21048         (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
21049         (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
21050         (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
21051         (direct_internal_fn_types): Handle functions that map to instructions
21052         defined in target-insns.def.
21053         (direct_internal_fn_types): Likewise.
21054         (direct_internal_fn_supported_p): Likewise.
21055         (internal_fn_expanders): Likewise.
21057 2022-06-13  Richard Sandiford  <richard.sandiford@arm.com>
21059         * internal-fn.cc (expand_fn_using_insn): New function,
21060         split out and adapted from...
21061         (expand_direct_optab_fn): ...here.
21062         (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
21063         (expand_GOMP_SIMT_EXIT): Likewise.
21064         (expand_GOMP_SIMT_LANE): Likewise.
21065         (expand_GOMP_SIMT_LAST_LANE): Likewise.
21066         (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
21067         (expand_GOMP_SIMT_VOTE_ANY): Likewise.
21068         (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
21069         (expand_GOMP_SIMT_XCHG_IDX): Likewise.
21071 2022-06-13  Jakub Jelinek  <jakub@redhat.com>
21073         * omp-expand.cc (expand_omp_target): Remap user provided
21074         device clause arguments, -1 to -2 and -2 to -3, either
21075         at compile time if constant, or at runtime.
21077 2022-06-13  Eric Botcazou  <ebotcazou@adacore.com>
21079         * common.opt (finstrument-functions): Set explicit value.
21080         (-finstrument-functions-once): New option.
21081         * doc/invoke.texi (Program Instrumentation Options): Document it.
21082         * gimplify.cc (build_instrumentation_call): New static function.
21083         (gimplify_function_tree): Call it to emit the instrumentation calls
21084         if -finstrument-functions[-once] is specified.
21086 2022-06-13  Eric Botcazou  <ebotcazou@adacore.com>
21088         * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
21089         * gimple.h (gimple_set_location): Do not copy warning data from
21090         the previous location when it is UNKNOWN_LOCATION.
21091         * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
21093 2022-06-13  Jakub Jelinek  <jakub@redhat.com>
21095         PR target/105911
21096         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
21097         *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
21098         (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
21099         operands[3] unmodified.
21101 2022-06-12  Simon Wright  <simon@pushface.org>
21103         PR target/104871
21104         * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
21105         version is darwin20 (macOS 11) or greater, truncate the version to the
21106         major number.
21108 2022-06-12  Mark Mentovai  <mark@mentovai.com>
21110         * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
21112 2022-06-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21114         PR target/96463
21115         * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
21116         (svld1rq_impl::fold): Define.
21117         * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
21118         op_mode and op_vec_flags.
21119         (aarch64_evpc_reencode): Initialize newd.op_mode and
21120         newd.op_vec_flags.
21121         (aarch64_evpc_sve_dup): New function.
21122         (aarch64_expand_vec_perm_const_1): Gate existing calls to
21123         aarch64_evpc_* functions under d->vmode == d->op_mode,
21124         and call aarch64_evpc_sve_dup.
21125         (aarch64_vectorize_vec_perm_const): Remove assert
21126         d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
21127         * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
21128         vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
21129         constant.
21131 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21133         * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
21134         New prototype.
21135         * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
21136         xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
21137         xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
21138         New backend functions that process the abovementioned logic.
21139         (xtensa_emit_move_sequence): Revert the previous changes.
21140         * config/xtensa/xtensa.md: New split patterns for integer
21141         and floating-point, as the frontend part.
21143 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21145         * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
21146         for ABS and NEG, add missing case for BSWAP and CLRSB, and
21147         double the costs for integer divisions using libfuncs if
21148         optimizing for speed, in order to take advantage of fast constant
21149         division by multiplication.
21150         (TARGET_INSN_COST): New macro definition.
21151         (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
21152         calculating relative costs of a RTL insns, for both of speed and
21153         size.
21154         * config/xtensa/xtensa.md (return, nop, trap): Correct values of
21155         the attribute "length" that depends on TARGET_DENSITY.
21156         (define_asm_attributes, blockage, frame_blockage): Add missing
21157         attributes.
21158         * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
21159         dependent option, however, preparatory work for now.
21161 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21163         * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
21164         Pass through the block length / loop count conditions if
21165         zero-overhead looping is configured and active,
21167 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21169         * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
21170         Split into individual signedness, in order to use libcall
21171         "__umulsidi3" but not the other.
21172         (<u>mulhisi3): Merge into one by using code iterator.
21173         (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
21175 2022-06-11   Michael Meissner  <meissner@linux.ibm.com>
21177         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
21178         not generate block copies with vector pair instructions if we are
21179         tuning for power10.
21181 2022-06-10  Roger Sayle  <roger@nextmovesoftware.com>
21183         PR rtl-optimization/7061
21184         * expr.cc (emit_group_store): For groups that consist of a single
21185         scalar integer register that hold a complex mode value, use
21186         gen_lowpart to generate a SUBREG to "view_convert" to the complex
21187         mode.  For modes of different sizes, first convert to an integer
21188         mode of the appropriate size.
21190 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21192         * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
21194 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21196         * config/xtensa/xtensa.md (*andsi3_bitcmpl):
21197         New insn_and_split pattern.
21199 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21201         * config/xtensa/xtensa.md (one_cmplsi2):
21202         Rearrange as an insn_and_split pattern.
21204 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21206         * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
21208 2022-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
21210         * config/rs6000/rs6000.md (FP_ISA3): Delete.
21211         (float<QHI:mode><FP_ISA3:mode>2): Rename to...
21212         (float<QHI:mode><SFDF:mode>2): ... this.  Adjust.
21213         (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
21214         (*float<QHI:mode><SFDF:mode>2_internal): ... this.  Adjust.
21215         (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
21216         (floatuns<QHI:mode><SFDF:mode>2): ... this.  Adjust.
21217         (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
21218         (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this.  Adjust.
21220 2022-06-09  Maciej W. Rozycki  <macro@embecosm.com>
21222         * config/riscv/riscv.md
21223         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
21224         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
21225         rather than space with FSFLAGS.
21227 2022-06-09  Tobias Burnus  <tobias@codesourcery.com>
21229         * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
21230         omp_discover_declare_target_fn_r): Don't walk reverse-offload
21231         target regions.
21233 2022-06-09  Jakub Jelinek  <jakub@redhat.com>
21235         * doc/invoke.texi (-Waddress): Fix a typo in small example.
21236         Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
21238 2022-06-09  Cui,Lili  <lili.cui@intel.com>
21240         PR target/105493
21241         * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
21242         from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
21243         unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
21244         (icelake_cost): Ditto.
21245         (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
21246         stores and unaligned stores cost from {6, 6, 6, 10, 15} to
21247         {8, 8, 8, 10, 15}.
21249 2022-06-09  Haochen Gui  <guihaoc@gcc.gnu.org>
21251         * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
21252         and ior insns to one rotate and mask insn.
21253         (define_split for bswapdi register): Likewise.
21255 2022-06-08  Roger Sayle  <roger@nextmovesoftware.com>
21257         PR middle-end/105874
21258         * expr.cc (expand_expr_real_1) <normal_inner_ref>:  New local
21259         variable tem_modifier for calculating the expand_modifier enum to
21260         use for expanding tem.  If tem is a VAR_DECL, use EXPAND_MEMORY.
21262 2022-06-08  Max Filippov  <jcmvbkbc@gmail.com>
21264         PR target/105879
21265         * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
21266         to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
21267         'gen_highpart' bitwise semantics and fix order of highpart and
21268         lowpart depending on target endianness.
21270 2022-06-08  Chung-Ju Wu  <jasonwucj@gmail.com>
21272         * config/arm/arm-cpus.in (star-mc1): New cpu.
21273         * config/arm/arm-tables.opt: Regenerate.
21274         * config/arm/arm-tune.md: Regenerate.
21275         * doc/invoke.texi: Update docs.
21277 2022-06-08  liuhongt  <hongtao.liu@intel.com>
21279         PR target/105513
21280         PR target/105504
21281         * config/i386/i386.md (*movsi_internal): Change alternative
21282         from *v to ?v.
21283         (*movdi_internal): Ditto.
21284         * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
21285         to ?r.
21286         (*vec_extractv4sf_mem): Ditto.
21287         (*vec_extracthf): Ditto.
21289 2022-06-07  Richard Earnshaw  <rearnsha@arm.com>
21291         PR target/105090
21292         * config/arm/arm.cc (arm_bfi_1_p): New function.
21293         (arm_bfi_p): New function.
21294         (arm_rtx_costs_internal): Add costs for BFI idioms.
21295         (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
21296         * config/arm/constraints.md (Dj): New constraint.
21297         * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
21298         (insv_zero): Convert to an insn with a split.
21299         (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
21301 2022-06-07  liuhongt  <hongtao.liu@intel.com>
21303         PR target/105854
21304         * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
21305         from Yv to Yw.
21307 2022-06-07  Roger Sayle  <roger@nextmovesoftware.com>
21309         PR middle-end/105853
21310         PR target/105856
21311         * calls.cc (load_register_parameters): Call store_constructor
21312         and int_expr_size directly instead of expanding via expand_expr.
21313         * expr.cc (static void store_constructor): Don't prototype here.
21314         (static HOST_WIDE_INT int_expr_size): Likewise.
21315         (store_constructor): No longer static.
21316         (int_expr_size): Likewise, no longer static.
21317         * expr.h (store_constructor): Prototype here.
21318         (int_expr_size): Prototype here.
21320 2022-06-07  Jan Beulich  <jbeulich@suse.com>
21322         Revert:
21323         2022-06-03  Jan Beulich  <jbeulich@suse.com>
21325         * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
21326         * configure.ac: Check for objcopy, producing
21327         ORIGINAL_OBJCOPY_FOR_TARGET.
21328         * configure: Update accordingly.
21329         * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
21330         Handle objcopy.
21332 2022-06-07  Jakub Jelinek  <jakub@redhat.com>
21334         * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
21335         * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
21336         Adjust clause printing style depending on
21337         OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
21339 2022-06-07  Jan Beulich  <jbeulich@suse.com>
21341         * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
21342         Change type.
21343         * config/i386/i386-builtin-types.def: New function type
21344         (V4DI, V32QI, V32QI).
21345         * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
21346         V4DI_FTYPE_V32QI_V32QI.
21348 2022-06-07  Jan Beulich  <jbeulich@suse.com>
21350         * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
21351         into account for reg-only insns.
21353 2022-06-07  Roger Sayle  <roger@nextmovesoftware.com>
21355         * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
21356         IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
21357         TARGET_CMOVE's (scalar integer) conditional moves.
21358         * config/i386/sse.md (define_split): Recognize XOP's vpcmov
21359         from its equivalent (canonical) pxor;pand;pxor sequence.
21361 2022-06-07  Kewen Lin  <linkw@linux.ibm.com>
21363         * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
21364         parameter ORDER.
21366 2022-06-06  Andrew Stubbs  <ams@codesourcery.com>
21368         * config.in: Regenerate.
21369         * configure: Regenerate.
21370         * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
21372 2022-06-04  Roger Sayle  <roger@nextmovesoftware.com>
21374         PR middle-end/95126
21375         * calls.cc (load_register_parameters): When loading a suitable
21376         immediate_const_ctor_p VAR_DECL into a single word_mode register,
21377         construct it directly in a pseudo rather than read it (by parts)
21378         from memory.
21379         * expr.cc (int_expr_size): Make tree argument a const_tree.
21380         (immediate_const_ctor_p): Helper predicate.  Return true for
21381         simple constructors that may be materialized in a register.
21382         (expand_expr_real_1) [VAR_DECL]: When expanding a constant
21383         VAR_DECL with a suitable immediate_const_ctor_p constructor
21384         use store_constructor to materialize it directly in a pseudo.
21385         * expr.h (immediate_const_ctor_p): Prototype here.
21386         * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
21387         VALUE argument from tree to const_tree.
21388         * varasm.h (initializer_constant_valid_for_bitfield_p): Update
21389         prototype.
21391 2022-06-04  Jakub Jelinek  <jakub@redhat.com>
21393         PR target/105825
21394         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
21395         *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
21396         bits of mask aren't all set, use operands[2] mode for the AND
21397         operation instead of always SImode.
21399 2022-06-03  Jakub Jelinek  <jakub@redhat.com>
21401         PR middle-end/30314
21402         PR middle-end/105777
21403         * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
21404         x > stype_max / cst || x < stype_min / cst): New simplification.
21406 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
21408         * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
21409         Value_Range.
21410         * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
21411         * value-range.h (Value_Range::Value_Range): Implement copy
21412         constructor for Value_Range.
21414 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
21416         * value-range.h (struct vrange_traits): Remove.
21417         (is_a): Rewrite without vrange_traits.
21418         (as_a): Same.
21420 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
21422         * value-range.cc (vrange::contains_p): Implement.
21423         (vrange::type): Return void.
21424         (vrange::supports_type_p): Implement.
21425         (irange::fits_p): Same.
21426         (vrange::set_undefined): Same.
21427         (irange::set_nonnegative): Same.
21428         (vrange::set_varying): Same.
21429         (vrange::union_): Same.
21430         (unsupported_range::set): Move to vrange.
21431         (unsupported_range::type): Move to vrange.
21432         (vrange::intersect): Implement for varying and undefined.
21433         (vrange::zero_p): Implement.
21434         (unsupported_range::supports_type_p): Move to vrange.
21435         (vrange::nonzero_p): Implement.
21436         (unsupported_range::set_undefined): Move to vrange.
21437         (unsupported_range::set_varying): Same.
21438         (unsupported_range::dump): Same.
21439         (unsupported_range::union_): Same.  Implement for varying and
21440         undefined.
21441         (unsupported_range::intersect): Move to vrange.
21442         (unsupported_range::zero_p): Same.
21443         (unsupported_range::nonzero_p): Same.
21444         (unsupported_range::set_nonzero): Same.
21445         (unsupported_range::set_zero): Same.
21446         (unsupported_range::set_nonnegative): Same.
21447         (unsupported_range::fits_p): Same.
21448         * value-range.h (class vrange): Remove abstract markers for most
21449         methods.
21450         (class unsupported_range): Remove most methods as they will now be
21451         inherited from vrange.
21453 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
21455         * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
21456         an object level supports_type_p for irange and a static
21457         Value_Range::supports_type_p.
21458         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
21459         (fold_using_range::range_of_address): Same.
21460         (fold_using_range::range_of_builtin_call): Same.
21461         * gimple-range-fold.h (gimple_range_type): Same.
21462         (gimple_range_ssa_p): Same.
21463         * gimple-range-path.cc (path_range_query::internal_range_of_expr):
21464         Same.
21465         (path_range_query::range_of_stmt): Same.
21466         (path_range_query::add_to_imports): Same.
21467         * gimple-range.cc (gimple_ranger::range_on_edge): Same.
21468         (gimple_ranger::export_global_ranges): Same.
21469         * gimple-ssa-evrp-analyze.cc
21470         (evrp_range_analyzer::record_ranges_from_phis):  Same.
21471         * range-op.cc (range_operator::wi_fold): Same.
21472         (range_operator::fold_range): Same.
21473         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
21474         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
21475         (evaluate_control_stmt_using_entry_checks): Same.
21476         * tree-ssa-threadedge.cc
21477         (hybrid_jt_simplifier::compute_ranges_from_state): Same.
21478         * tree-vrp.cc (supported_types_p): Same.
21479         * value-query.cc (range_query::value_of_expr): Same.
21480         (range_query::value_on_edge): Same.
21481         (range_query::value_of_stmt): Same.
21482         (range_query::get_tree_range): Same.
21483         (get_range_global): Same.
21484         (global_range_query::range_of_expr): Same.
21485         * value-range-equiv.h (class value_range_equiv): Same.
21486         * value-range.cc (irange::supports_type_p): Same.
21487         (unsupported_range::supports_type_p): Same.
21488         * value-range.h (enum value_range_discriminator): Same.
21489         (Value_Range::init): Same.
21490         (Value_Range::supports_type_p): Same.
21491         (irange::supports_type_p): Same.
21492         (irange::supports_p): Same.
21493         (vrange::supports_type_p): Same.
21494         (vrange_allocator::alloc_vrange): Same.
21496 2022-06-03  Jan Beulich  <jbeulich@suse.com>
21498         * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
21499         * configure.ac: Check for objcopy, producing
21500         ORIGINAL_OBJCOPY_FOR_TARGET.
21501         * configure: Update accordingly.
21502         * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
21503         Handle objcopy.
21505 2022-06-03  Jan Beulich  <jbeulich@suse.com>
21507         * config/i386/mmx.md (mmx_psadbw): Convert to expander.
21508         (*mmx_psadbw): New. Mark as commutative.
21509         * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
21510         (*<sse2_avx2>_psadbw): New. Mark as commutative.
21512 2022-06-03  Alexandre Oliva  <oliva@adacore.com>
21514         PR tree-optimization/105665
21515         PR tree-optimization/100810
21516         * tree-ssa-loop-ivopts.cc
21517         (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
21518         (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
21519         (find_ssa_undef): Check precomputed flag and intervening uses.
21520         (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
21522 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
21524         * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
21525         tree-logical-location.o.
21526         (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
21527         (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
21528         * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
21529         (sarif-stderr, sarif-file): New enum values.
21530         * diagnostic-client-data-hooks.h: New file.
21531         * diagnostic-format-sarif.cc: New file.
21532         * diagnostic-path.h (enum diagnostic_event::verb): New enum.
21533         (enum diagnostic_event::noun): New enum.
21534         (enum diagnostic_event::property): New enum.
21535         (struct diagnostic_event::meaning): New struct.
21536         (diagnostic_event::get_logical_location): New vfunc.
21537         (diagnostic_event::get_meaning): New vfunc.
21538         (simple_diagnostic_event::get_logical_location): New vfunc impl.
21539         (simple_diagnostic_event::get_meaning): New vfunc impl.
21540         * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
21541         (diagnostic_initialize): Initialize m_client_data_hooks.
21542         (diagnostic_finish): Clean up m_client_data_hooks.
21543         (diagnostic_event::meaning::dump_to_pp): New.
21544         (diagnostic_event::meaning::maybe_get_verb_str): New.
21545         (diagnostic_event::meaning::maybe_get_noun_str): New.
21546         (diagnostic_event::meaning::maybe_get_property_str): New.
21547         (get_cwe_url): Make non-static.
21548         (diagnostic_output_format_init): Handle
21549         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
21550         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
21551         * diagnostic.h (enum diagnostics_output_format): Add
21552         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
21553         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
21554         (class diagnostic_client_data_hooks): New forward decl.
21555         (class logical_location): New forward decl.
21556         (diagnostic_context::m_client_data_hooks): New field.
21557         (diagnostic_output_format_init_sarif_stderr): New decl.
21558         (diagnostic_output_format_init_sarif_file): New decl.
21559         (get_cwe_url): New decl.
21560         * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
21561         sarif-file.
21562         * doc/sourcebuild.texi (Scan a particular file): Add
21563         scan-sarif-file and scan-sarif-file-not.
21564         * langhooks-def.h (lhd_get_sarif_source_language): New decl.
21565         (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
21566         (LANG_HOOKS_INITIALIZER): Add
21567         LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
21568         * langhooks.cc (lhd_get_sarif_source_language): New.
21569         * langhooks.h (lang_hooks::get_sarif_source_language): New field.
21570         * logical-location.h: New file.
21571         * plugin.cc (struct for_each_plugin_closure): New.
21572         (for_each_plugin_cb): New.
21573         (for_each_plugin): New.
21574         * plugin.h (for_each_plugin): New decl.
21575         * tree-diagnostic-client-data-hooks.cc: New file.
21576         * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
21577         (tree_diagnostics_defaults): Populate m_client_data_hooks.
21578         * tree-logical-location.cc: New file.
21579         * tree-logical-location.h: New file.
21581 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
21583         * common.opt (fdiagnostics-format=): Add json-stderr and json-file
21584         to description.
21585         (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
21586         (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
21587         (diagnostics_output_format): Add json-stderr and json-file.
21588         * diagnostic-format-json.cc (json_flush_to_file): New.
21589         (json_final_cb): Convert to...
21590         (json_flush_to_file): ...this, ...
21591         (json_stderr_final_cb): ...this, and...
21592         (json_file_final_cb): ...this.
21593         (diagnostic_output_format_init): Move to diagnostic.cc.
21594         (json_output_base_file_name): New.
21595         (diagnostic_output_format_init_json): New.
21596         (diagnostic_output_format_init_json_stderr): New.
21597         (diagnostic_output_format_init_json_file): New.
21598         * diagnostic.cc (diagnostic_output_format_init): Move here from
21599         diagnostic-format-json.cc; update for changes to enum.
21600         * diagnostic.h (enum diagnostics_output_format): Rename
21601         DIAGNOSTICS_OUTPUT_FORMAT_JSON to
21602         DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
21603         DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
21604         (diagnostic_output_format_init): Add base_file_name param.
21605         (diagnostic_output_format_init_json_stderr): New decl.
21606         (diagnostic_output_format_init_json_file): New dec.
21607         * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
21608         "json-file".  Rewrite so that the existing "json" is a synonym of
21609         "json-stderr".
21610         * gcc.cc (driver_handle_option): Pass dump_base_name to
21611         diagnostic_output_format_init.
21612         * opts.cc (common_handle_option): Likewise.
21614 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
21616         * json.cc (string::print): Fix escaping of '\'.
21618 2022-06-02  Philipp Tomsich  <philipp.tomsich@vrull.eu>
21620         * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
21621         (-1 << 31) for the single-bit case, when operating on (1 << 31)
21622         in SImode.
21623         * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
21624         any single-bit value, moving the special case for (1 << 31) to
21625         riscv_build_integer_1 (in riscv.c).
21627 2022-06-02  Roger Sayle  <roger@nextmovesoftware.com>
21629         PR target/105791
21630         * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
21631         (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
21633 2022-06-02  Jakub Jelinek  <jakub@redhat.com>
21635         PR target/105778
21636         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
21637         from AND and its operands and just verify operands[2] has HImode,
21638         SImode or for TARGET_64BIT DImode.  Allow operands[3] to be a mask
21639         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
21640         just throw away the masking.  Use force_reg before calling
21641         gen_lowpart.
21642         (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
21643         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
21644         just throw away the masking.
21645         (*ashl<mode>3_doubleword): Rename to ...
21646         (ashl<mode>3_doubleword): ... this.
21647         (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
21648         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
21649         Use force_reg before calling gen_lowpart.
21650         (*<insn><mode>3_mask): Likewise.
21651         (*<insn><dwi>3_doubleword_mask): Likewise.  Allow operands[3] to be
21652         a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
21653         case just throw away the masking.  Use force_reg before calling
21654         gen_lowpart.
21655         (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
21656         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
21657         throw away the masking.
21658         (*<insn><mode>3_doubleword): Rename to ...
21659         (<insn><mode>3_doubleword): ... this.
21660         (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
21661         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
21662         Use force_reg before calling gen_lowpart.
21663         (splitter after it): Remove :SI from AND and its operands and just
21664         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
21665         (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
21666         operands and just verify operands[1] has HImode, SImode or for
21667         TARGET_64BIT DImode.  Use force_reg before calling gen_lowpart.
21668         (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
21669         * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
21670         ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
21672 2022-06-02  Richard Biener  <rguenther@suse.de>
21674         PR tree-optimization/101668
21675         * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
21676         for vector types with compatible lane types.
21677         (vect_build_slp_tree_2): Deal with this.
21678         (vect_add_slp_permutation): Adjust.  Emit lowpart/concat
21679         special cases without VEC_PERM.
21680         (vectorizable_slp_permutation): Select the operand vector
21681         type and relax requirements.  Handle identity permutes
21682         with mismatching operand types.
21683         * optabs-query.cc (can_vec_perm_const_p): Only allow variable
21684         permutes for op_mode == mode.
21686 2022-06-02  Richard Biener  <rguenther@suse.de>
21688         PR tree-optimization/105802
21689         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
21690         Make sure to also compute the range in the type of the switch index.
21692 2022-06-01  David Seifert  <soap@gentoo.org>
21694         PR plugins/95648
21695         * configure: Regenerate.
21697 2022-06-01  H.J. Lu  <hjl.tools@gmail.com>
21699         PR rtl-optimization/105638
21700         * df-core.cc (df_find_single_def_src): Moved and renamed from
21701         find_single_def_src in loop-iv.cc.  Change the argument to rtx
21702         and use rtx_equal_p.  Return null for partial or conditional
21703         defs.
21704         * df.h (df_find_single_def_src): New prototype.
21705         * dse.cc (record_store): Use the constant source if the source
21706         register is set only once.
21707         * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
21708         (replace_single_def_regs): Replace find_single_def_src with
21709         df_find_single_def_src.
21711 2022-06-01  Wilco Dijkstra  <wilco.dijkstra@arm.com>
21713         * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
21714         selected_tune.
21715         (explicit_arch): Rename to selected_arch.
21716         (x_aarch64_override_tune_string): Remove.
21717         (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
21718         (aarch64_override_tune_string): Add Save so it gets saved/restored.
21719         * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
21720         * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
21721         (processor): Remove archtecture_version field.
21722         (selected_arch): Remove global.
21723         (selected_cpu): Remove global.
21724         (selected_tune): Remove global.
21725         (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
21726         (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
21727         (aarch64_override_options): Further simplify code to only set
21728         selected_arch and selected_tune globals.
21729         (aarch64_option_save): Remove now that target options are saved.
21730         (aarch64_option_restore): Remove redundant target option restores.
21731         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
21732         AARCH64_ISA_V9.
21733         * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
21734         * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
21735         (aarch64_ra_sign_key): Remove.
21737 2022-06-01  Jakub Jelinek  <jakub@redhat.com>
21739         PR middle-end/30314
21740         * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
21741         x > ~(utype)0 / cst): New simplification.
21743 2022-06-01  Richard Biener  <rguenther@suse.de>
21745         PR tree-optimization/105786
21746         * tree-loop-distribution.cc
21747         (loop_distribution::transform_reduction_loop): Only do strlen
21748         replacement for integer type reductions.
21750 2022-06-01  Jakub Jelinek  <jakub@redhat.com>
21752         PR tree-optimization/105770
21753         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
21754         CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
21756 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
21758         * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
21759         (sbr_vector::sbr_vector): Same.
21760         (sbr_vector::grow): Same.
21761         (sbr_vector::set_bb_range): Same.
21762         (sbr_vector::get_bb_range): Same.
21763         (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
21764         (sbr_sparse_bitmap::set_bb_range): Same.
21765         (sbr_sparse_bitmap::get_bb_range): Same.
21766         (block_range_cache::set_bb_range): Same.
21767         (block_range_cache::get_bb_range): Same.
21768         (block_range_cache::dump): Same.
21769         (ssa_global_cache::get_global_range): Same.
21770         (ssa_global_cache::set_global_range): Same.
21771         (ssa_global_cache::clear): Same.
21772         (ssa_global_cache::dump): Same.
21773         (ranger_cache::get_global_range): Same.
21774         (ranger_cache::set_global_range): Same.
21775         (ranger_cache::range_of_def): Same.
21776         (ranger_cache::entry_range): Same.
21777         (ranger_cache::exit_range): Same.
21778         (ranger_cache::edge_range): Same.
21779         (ranger_cache::range_of_expr): Same.
21780         (ranger_cache::range_on_edge): Same.
21781         (ranger_cache::block_range): Same.
21782         (ranger_cache::propagate_cache): Same.
21783         (ranger_cache::fill_block_cache): Same.
21784         (ranger_cache::range_from_dom): Same.
21785         * gimple-range-cache.h: Same.
21786         * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
21787         Same.
21788         (gimple_outgoing_range::switch_edge_range): Same.
21789         (gimple_outgoing_range::edge_range_p): Same.
21790         * gimple-range-edge.h: Same.
21791         * gimple-range-fold.cc (fur_source::get_operand): Same.
21792         (fur_source::get_phi_operand): Same.
21793         (fur_edge::get_operand): Same.
21794         (fur_edge::get_phi_operand): Same.
21795         (fur_stmt::get_operand): Same.
21796         (fur_stmt::get_phi_operand): Same.
21797         (fur_list::fur_list): Same.
21798         (fur_list::get_operand): Same.
21799         (fur_list::get_phi_operand): Same.
21800         (fold_range): Same.
21801         (adjust_imagpart_expr): Same.
21802         (adjust_realpart_expr): Same.
21803         (gimple_range_adjustment): Same.
21804         (fold_using_range::fold_stmt): Same.
21805         (fold_using_range::range_of_range_op): Same.
21806         (fold_using_range::range_of_address): Same.
21807         (fold_using_range::range_of_phi): Same.
21808         (fold_using_range::range_of_call): Same.
21809         (fold_using_range::range_of_builtin_call): Same.
21810         (fold_using_range::range_of_builtin_int_call): Same.
21811         (fold_using_range::range_of_cond_expr): Same.
21812         (fur_source::register_outgoing_edges): Same.
21813         * gimple-range-fold.h (fold_range): Same.
21814         (gimple_range_type): Same.
21815         (gimple_range_ssa_p): Same.
21816         * gimple-range-gori.cc (gimple_range_calc_op1): Same.
21817         (gimple_range_calc_op2): Same.
21818         (gori_compute::compute_operand_range_switch): Same.
21819         (gori_compute::compute_operand_range): Same.
21820         (gori_compute::logical_combine): Same.
21821         (gori_compute::compute_logical_operands): Same.
21822         (gori_compute::compute_operand1_range): Same.
21823         (gori_compute::compute_operand2_range): Same.
21824         (gori_compute::compute_operand1_and_operand2_range): Same.
21825         (gori_compute::outgoing_edge_range_p): Same.
21826         (gori_compute::condexpr_adjust): Same.
21827         * gimple-range-gori.h (gimple_range_calc_op1): Same.
21828         (gimple_range_calc_op2): Same.
21829         * gimple-range-path.cc (path_range_query::get_cache): Same.
21830         (path_range_query::set_cache): Same.
21831         (path_range_query::range_on_path_entry): Same.
21832         (path_range_query::internal_range_of_expr): Same.
21833         (path_range_query::range_of_expr): Same.
21834         (path_range_query::ssa_range_in_phi): Same.
21835         (path_range_query::range_defined_in_block): Same.
21836         (path_range_query::compute_ranges_in_phis): Same.
21837         (path_range_query::compute_ranges_in_block): Same.
21838         (path_range_query::add_to_imports): Same.
21839         (path_range_query::range_of_stmt): Same.
21840         * gimple-range-path.h: Same.
21841         * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
21842         (gimple_infer_range::~side_effect_manager): Same.
21843         (gimple_infer_range::get_nonzero): Same.
21844         (gimple_infer_range::maybe_adjust_range): Same.
21845         (gimple_infer_range::add_range): Same.
21846         * gimple-range-infer.h: Same.
21847         * gimple-range-tests.cc: Same.
21848         * gimple-range-trace.cc (range_tracer::trailer): Same.
21849         (debug_seed_ranger): Same.
21850         * gimple-range-trace.h: Same.
21851         * gimple-range.cc (gimple_ranger::range_of_expr): Same.
21852         (gimple_ranger::range_on_entry): Same.
21853         (gimple_ranger::range_on_exit): Same.
21854         (gimple_ranger::range_on_edge): Same.
21855         (gimple_ranger::fold_range_internal): Same.
21856         (gimple_ranger::range_of_stmt): Same.
21857         (gimple_ranger::prefill_name): Same.
21858         (gimple_ranger::prefill_stmt_dependencies): Same.
21859         (gimple_ranger::export_global_ranges): Same.
21860         (gimple_ranger::dump_bb): Same.
21861         * gimple-range.h: Same.
21862         * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
21863         (memmodel_to_uhwi): Same.
21864         * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
21865         (determine_value_range): Same.
21866         (record_nonwrapping_iv): Same.
21867         (infer_loop_bounds_from_signedness): Same.
21868         (scev_var_range_cant_overflow): Same.
21869         * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
21870         * value-query.cc (range_query::range_on_edge): Same.
21871         (range_query::range_of_stmt): Same.
21872         (range_query::value_of_expr): Same.
21873         (range_query::value_on_edge): Same.
21874         (range_query::value_of_stmt): Same.
21875         (range_query::get_tree_range): Same.
21876         (update_global_range): Same.
21877         (get_range_global): Same.
21878         (gimple_range_global): Same.
21879         (global_range_query::range_of_expr): Same.
21880         (range_query::query_relation): Same.
21881         * value-query.h (gimple_range_global): Same.
21882         (update_global_range): Same.
21883         * vr-values.cc (vr_values::range_of_expr): Same.
21884         (bounds_of_var_in_loop): Same.
21885         (simplify_using_ranges::vrp_visit_cond_stmt): Same.
21886         * vr-values.h (class vr_values): Same.
21887         * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
21889 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
21891         * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
21892         vrange allocator.
21893         (sbr_vector::grow): Same.
21894         (sbr_vector::set_bb_range): Same.
21895         (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
21896         (sbr_sparse_bitmap::set_bb_range): Same.
21897         (block_range_cache::~block_range_cache): Same.
21898         (block_range_cache::set_bb_range): Same.
21899         (ssa_global_cache::ssa_global_cache): Same.
21900         (ssa_global_cache::~ssa_global_cache): Same.
21901         (ssa_global_cache::set_global_range): Same.
21902         * gimple-range-cache.h (block_range_cache): Same.
21903         (ssa_global_cache): Same.
21904         * gimple-range-edge.cc
21905         (gimple_outgoing_range::calc_switch_ranges): Same.
21906         * gimple-range-edge.h (gimple_outgoing_range): Same.
21907         * gimple-range-infer.cc (infer_range_manager::get_nonzero):
21908         Same.
21909         (infer_range_manager::add_range): Same.
21910         * gimple-range-infer.h (class infer_range_manager): Same.
21911         * value-range.h (class irange_allocator): Rename to...
21912         (class vrange_allocator): ...this.
21913         (irange_allocator::irange_allocator): New.
21914         (vrange_allocator::vrange_allocator): New.
21915         (irange_allocator::~irange_allocator): New.
21916         (vrange_allocator::~vrange_allocator): New.
21917         (irange_allocator::get_memory): Rename to...
21918         (vrange_allocator::alloc): ...this.
21919         (vrange_allocator::alloc_vrange): Rename from...
21920         (irange_allocator::allocate): ...this.
21921         (vrange_allocator::alloc_irange): New.
21923 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
21925         * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
21926         vrange and convert range_op_handler function calls to use the
21927         identically named object.
21928         * gimple-range-fold.cc (gimple_range_operand1): Same.
21929         (gimple_range_operand2): Same.
21930         (fold_using_range::fold_stmt): Same.
21931         (fold_using_range::range_of_range_op): Same.
21932         (fold_using_range::range_of_builtin_ubsan_call): Same.
21933         (fold_using_range::relation_fold_and_or): Same.
21934         (fur_source::register_outgoing_edges): Same.
21935         * gimple-range-fold.h (gimple_range_handler): Remove.
21936         * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
21937         (gimple_range_calc_op2): Same.
21938         (range_def_chain::get_def_chain): Same.
21939         (gori_compute::compute_operand_range): Same.
21940         (gori_compute::condexpr_adjust): Same.
21941         * gimple-range.cc (gimple_ranger::prefill_name): Same.
21942         (gimple_ranger::prefill_stmt_dependencies): Same.
21943         * range-op.cc (get_bool_state): Same.
21944         (class operator_equal): Add using clause.
21945         (class operator_not_equal): Same.
21946         (class operator_lt): Same.
21947         (class operator_le): Same.
21948         (class operator_gt): Same.
21949         (class operator_ge): Same.
21950         (class operator_plus): Same.
21951         (class operator_minus): Same.
21952         (class operator_mult): Same.
21953         (class operator_exact_divide): Same.
21954         (class operator_lshift): Same.
21955         (class operator_rshift): Same.
21956         (class operator_cast): Same.
21957         (class operator_logical_and): Same.
21958         (class operator_bitwise_and): Same.
21959         (class operator_logical_or): Same.
21960         (class operator_bitwise_or): Same.
21961         (class operator_bitwise_xor): Same.
21962         (class operator_trunc_mod): Same.
21963         (class operator_logical_not): Same.
21964         (class operator_bitwise_not): Same.
21965         (class operator_cst): Same.
21966         (class operator_identity): Same.
21967         (class operator_unknown): Same.
21968         (class operator_abs): Same.
21969         (class operator_negate): Same.
21970         (class operator_addr_expr): Same.
21971         (class pointer_or_operator): Same.
21972         (operator_plus::op1_range): Adjust for vrange.
21973         (operator_minus::op1_range): Same.
21974         (operator_mult::op1_range): Same.
21975         (operator_cast::op1_range): Same.
21976         (operator_bitwise_not::fold_range): Same.
21977         (operator_negate::fold_range): Same.
21978         (range_op_handler): Rename to...
21979         (get_handler): ...this.
21980         (range_op_handler::range_op_handler): New.
21981         (range_op_handler::fold_range): New.
21982         (range_op_handler::op1_range): New.
21983         (range_op_handler::op2_range): New.
21984         (range_op_handler::lhs_op1_relation): New.
21985         (range_op_handler::lhs_op2_relation): New.
21986         (range_op_handler::op1_op2_relation): New.
21987         (range_cast): Adjust for vrange.
21988         * range-op.h (range_op_handler): Remove function.
21989         (range_cast): Adjust for vrange.
21990         (class range_op_handler): New.
21991         (get_bool_state): Adjust for vrange.
21992         (empty_range_varying): Same.
21993         (relop_early_resolve): Same.
21994         * tree-data-ref.cc (compute_distributive_range): Same.
21995         * tree-vrp.cc (get_range_op_handler): Remove.
21996         (range_fold_binary_symbolics_p): Use range_op_handler class
21997         instead of get_range_op_handler.
21998         (range_fold_unary_symbolics_p): Same.
21999         (range_fold_binary_expr): Same.
22000         (range_fold_unary_expr): Same.
22001         * value-query.cc (range_query::get_tree_range): Adjust for vrange.
22003 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
22005         * gimple-range-fold.h (gimple_range_type): Check type before
22006         calling supports_type_p.
22007         * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
22008         * value-query.cc (range_query::get_tree_range): Same.
22009         * value-range.cc (Value_Range::lower_bound): New.
22010         (Value_Range::upper_bound): New.
22011         (Value_Range::dump): New.
22012         * value-range.h (class Value_Range): New.
22013         (irange::supports_type_p): Do not check if type is non-zero.
22015 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
22017         * value-range-equiv.cc (value_range_equiv::set): New.
22018         * value-range-equiv.h (class value_range_equiv): Make set method
22019         virtual.
22020         Remove default bitmap argument from set method.
22021         * value-range.cc (vrange::contains_p): New.
22022         (vrange::singleton_p): New.
22023         (vrange::operator=): New.
22024         (vrange::operator==): New.
22025         (irange::fits_p): Move to .cc file.
22026         (irange::set_nonnegative): New.
22027         (unsupported_range::unsupported_range): New.
22028         (unsupported_range::set): New.
22029         (unsupported_range::type): New.
22030         (unsupported_range::set_undefined): New.
22031         (unsupported_range::set_varying): New.
22032         (unsupported_range::dump): New.
22033         (unsupported_range::union_): New.
22034         (unsupported_range::intersect): New.
22035         (unsupported_range::zero_p): New.
22036         (unsupported_range::nonzero_p): New.
22037         (unsupported_range::set_nonzero): New.
22038         (unsupported_range::set_zero): New.
22039         (unsupported_range::set_nonnegative): New.
22040         (unsupported_range::fits_p): New.
22041         (irange::set): Call irange::set_undefined.
22042         (irange::verify_range): Check discriminator field.
22043         (irange::dump): Dump [irange] marker.
22044         (irange::debug): Move to...
22045         (vrange::debug): ...here.
22046         (dump_value_range): Accept vrange.
22047         (debug): Same.
22048         * value-range.h (enum value_range_discriminator): New.
22049         (class vrange): New.
22050         (class unsupported_range): New.
22051         (struct vrange_traits): New.
22052         (is_a): New.
22053         (as_a): New.
22054         (class irange): Inherit from vrange.
22055         (dump_value_range): Adjust for vrange.
22056         (irange::kind): Rename to...
22057         (vrange::kind): ...this.
22058         (irange::varying_p): Rename to...
22059         (vrange::varying_p): ...this.
22060         (irange::undefined_p): Rename to...
22061         (vrange::undefined_p): ...this.
22062         (irange::irange): Set discriminator.
22063         (irange::union_): Convert to irange before passing to irange
22064         method.
22065         (irange::intersect): Same.
22066         (vrange::supports_type_p): New.
22067         * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
22068         NULL bitmap argument to value_range_equiv::set.
22069         (vr_values::extract_range_basic): Same.
22071 2022-06-01  Richard Biener  <rguenther@suse.de>
22073         PR tree-optimization/105763
22074         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
22075         Check gimple_range_ssa_p.
22077 2022-05-31  Jason Merrill  <jason@redhat.com>
22079         * Makefile.in (TAGS): Look at libcpp/*.cc.
22081 2022-05-31  Christophe Lyon  <christophe.lyon@arm.com>
22083         * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
22084         Prefix mode names with E_.
22086 2022-05-31  Alan Modra  <amodra@gmail.com>
22088         * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
22089         spelling of DW_AT_namelist_item.
22091 2022-05-31  Jakub Jelinek  <jakub@redhat.com>
22093         * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
22094         allow var to be private in the outer context.
22095         (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
22096         to build_outer_var_ref.
22098 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
22100         * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
22101         tieable with DImode on TARGET_64BIT, and SCmode tieable with
22102         V2SFmode, and DCmode with V2DFmode.
22104 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
22106         PR rtl-optimization/101617
22107         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
22108         special case (indicated by negate_cc_compare_p) to generate a
22109         -1/0 mask using neg;sbb.
22110         * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
22111         to generate an *x86_neg<mode>_ccc instruction.
22112         (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
22113         generate a *x86_mov<mode>cc_0_m1_neg instruction.
22115 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
22117         * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
22118         SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
22119         <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
22121 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
22123         PR target/70321
22124         * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
22125         DI mode equality/inequality using XOR here.  Instead generate a
22126         COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
22127         * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
22128         gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
22129         (general_scalar_chain::convert_compare): New function to convert
22130         scalar equality/inequality comparison into vector operations.
22131         (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
22132         new convert_compare helper method.
22133         (convertible_comparion_p): Update to match doubleword COMPARE
22134         of two register, memory or integer constant operands.
22135         * config/i386/i386-features.h (general_scalar_chain::convert_compare):
22136         Prototype/declare member function here.
22137         * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
22138         only allow new doubleword modes for EQ and NE operators.
22139         (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
22140         doubleword comparison into a pair of XORs followed by an IOR to
22141         set the (zero) flags register, optimizing the XORs if possible.
22142         * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
22143         iterator; V_AVX is (currently) only used by ptest.
22144         (sse4_1 mode attribute): Update to support V1TI and V2TI.
22146 2022-05-30  Uroš Bizjak  <ubizjak@gmail.com>
22148         * config/i386/i386.md: Remove constraints when used with
22149         const_int_operand, const0_operand, const_1_operand, constm1_operand,
22150         const8_operand, const128_operand, const248_operand, const123_operand,
22151         const2367_operand, const1248_operand, const359_operand,
22152         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
22153         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
22154         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
22155         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
22156         const_0_to_255_mul_8_operand, const_1_to_31_operand,
22157         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
22158         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
22159         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
22160         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
22161         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
22162         const_24_to_27_operand and const_28_to_31_operand.
22163         * config/i386/mmx.md: Ditto.
22164         * config/i386/sse.md: Ditto.
22165         * config/i386/subst.md: Ditto.
22166         * config/i386/sync.md: Ditto.
22168 2022-05-30  Jan Beulich  <jbeulich@suse.com>
22170         * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
22171         arguments.
22173 2022-05-30  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22175         * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
22177 2022-05-29  Iain Sandoe  <iain@sandoe.co.uk>
22179         PR target/105599
22180         * config/darwin.h: Move versions-specific handling of multiply_defined
22181         from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
22183 2022-05-29  Eric Gallager  <egallager@gcc.gnu.org>
22185         PR other/82383
22186         * doc/sourcebuild.texi: Add entries for the c++tools,
22187         gotools, libbacktrace, libcc1, libcody, liboffloadmic,
22188         and libsanitizer directories. Remove entry for boehm-gc.
22189         Fix alphabetization for libquadmath.
22191 2022-05-28  Joel Holdsworth  <jholdsworth@nvidia.com>
22193         * config/avr/avr-mcus.def: Add device definitions.
22194         * doc/avr-mmcu.texi: Corresponding changes.
22195         * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
22196         device prefix.
22197         * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
22198         from leaking into cc1.
22200 2022-05-28  Vladimir Makarov  <vmakarov@gcc.gnu.org>
22202         PR target/103722
22203         * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
22204         is special) for various scenarios.
22206 2022-05-28  Iain Sandoe  <iain@sandoe.co.uk>
22208         * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
22209         describing this macro.
22211 2022-05-27  Richard Biener  <rguenther@suse.de>
22213         * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
22215 2022-05-27  Martin Jambor  <mjambor@suse.cz>
22217         PR ipa/105639
22218         * ipa-prop.cc (propagate_controlled_uses): Check type of the
22219         constant before adding a LOAD reference.
22221 2022-05-27  Jakub Jelinek  <jakub@redhat.com>
22223         * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
22224         to OMP_CLAUSE_ENTER.
22225         * tree.h (OMP_CLAUSE_ENTER_TO): Define.
22226         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
22227         OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
22228         * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
22229         instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
22230         "to" instead of "enter".
22231         * tree-nested.cc (convert_nonlocal_omp_clauses,
22232         convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
22233         OMP_CLAUSE_TO_DECLARE.
22235 2022-05-27  Richard Biener  <rguenther@suse.de>
22237         PR tree-optimization/105726
22238         * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
22239         Constrain array-of-flexarray case more.
22241 2022-05-27  Jakub Jelinek  <jakub@redhat.com>
22243         PR sanitizer/105729
22244         * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
22245         to (X &) z + w if -fsanitize=null during GENERIC folding.
22247 2022-05-27  Roger Sayle  <roger@nextmovesoftware.com>
22249         * match.pd (match_zero_one_valued_p): New predicate.
22250         (mult @0 @1): Use zero_one_valued_p for optimization to the
22251         expression "bit_and @0 @1".
22252         (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
22253         (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
22254         (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
22255         (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
22256         Remove three redundant transforms obsoleted by the three above.
22258 2022-05-27  Roger Sayle  <roger@nextmovesoftware.com>
22260         * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
22261         to split a combined "and;cmp" sequence into "not;test".
22263 2022-05-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
22265         * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
22266         (bswapsi2_internal): Revise the template and condition, and add
22267         detection code for preceding the same insn in order to omit a
22268         "SSAI 8" instruction of the latter.
22269         (bswapdi2): Suppress built-in insn expansion with the corresponding
22270         library call when optimizing for size.
22272 2022-05-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
22274         * config/xtensa/xtensa-protos.h
22275         (xtensa_expand_block_set_unrolled_loop,
22276         xtensa_expand_block_set_small_loop): New prototypes.
22277         * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
22278         xtensa_expand_block_set_unrolled_loop,
22279         xtensa_expand_block_set_small_loop): New functions.
22280         * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
22281         * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
22283 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
22285         * config/xtensa/xtensa.cc (xtensa_expand_block_move):
22286         Make instruction counting more accurate, and simplify emitting insns.
22288 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
22290         * config/xtensa/constraints.md (M, O): Use the macro.
22291         * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
22292         sext_fldsz_operand): Ditto.
22293         * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
22294         xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
22295         xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
22296         xtensa_expand_prologue): Ditto.
22297         * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
22299 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
22301         * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
22302         * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
22303         Ditto.
22305 2022-05-25  Andrew MacLeod  <amacleod@redhat.com>
22307         * gimple-range-cache.cc: Adjust comments.
22308         * gimple-range-infer.cc: Adjust comments.
22309         * gimple-range-infer.h: Adjust comments.
22310         * gimple-range.cc: Adjust comments.
22312 2022-05-25  Andrew MacLeod  <amacleod@redhat.com>
22314         * Makefile.in (OBJS): Use gimple-range-infer.o.
22315         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
22316         (ranger_cache::range_from_dom): Rename var side_effect to infer.
22317         (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
22318         * gimple-range-cache.h: Include gimple-range-infer.h.
22319         (class ranger_cache): Adjust prototypes, use infer_range_manager.
22320         * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
22321         (gimple_infer_range::*): Rename from stmt_side_effects.
22322         (infer_range_manager::*): Rename from side_effect_manager.
22323         * gimple-range-side-effect.cc: Rename.
22324         * gimple-range-side-effect.h: Rename.
22325         * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
22326         (class gimple_infer_range): Rename from stmt_side_effects.
22327         (class infer_range_manager): Rename from side_effect_manager.
22328         * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
22329         from register_side_effects.
22330         * gimple-range.h (register_inferred_ranges): Adjust prototype.
22331         * range-op.h: Adjust comment.
22332         * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
22333         (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
22335 2022-05-25  Simon Cook  <simon.cook@embecosm.com>
22337         * config/riscv/arch-canonicalize: Only add mafd extension if
22338         base was rv32/rv64g.
22340 2022-05-25  Tobias Burnus  <tobias@codesourcery.com>
22342         * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
22344 2022-05-25  Jakub Jelinek  <jakub@redhat.com>
22346         PR sanitizer/105714
22347         * asan.cc (has_stmt_been_instrumented_p): For assignments which
22348         are both stores and loads, return true only if both destination
22349         and source have been instrumented.
22351 2022-05-25  Martin Liska  <mliska@suse.cz>
22352             Richard Biener   <rguenther@suse.de>
22354         * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
22355         * params.opt (max-unswitch-level): Remove.
22356         * doc/invoke.texi (max-unswitch-level): Likewise.
22357         * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
22358         gimplified expressions.
22359         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
22360         (tree_may_unswitch_on): Rename to ...
22361         (find_unswitching_predicates_for_bb): ... this and handle
22362         switch statements.
22363         (get_predicates_for_bb): Likewise.
22364         (set_predicates_for_bb): Likewise.
22365         (init_loop_unswitch_info): Likewise.
22366         (tree_ssa_unswitch_loops): Prepare stuff before calling
22367         tree_unswitch_single_loop.
22368         (tree_unswitch_single_loop): Rework the function using
22369         pre-computed predicates and with a per original loop cost model.
22370         (merge_last): New.
22371         (add_predicate_to_path): Likewise.
22372         (find_range_for_lhs): Likewise.
22373         (simplify_using_entry_checks): Rename to ...
22374         (evaluate_control_stmt_using_entry_checks): ... this, handle
22375         switch statements and improve simplifications using ranger.
22376         (simplify_loop_version): Rework using
22377         evaluate_control_stmt_using_entry_checks.
22378         (evaluate_bbs): New.
22379         (evaluate_loop_insns_for_predicate): Likewise.
22380         (tree_unswitch_loop): Adjust to allow switch statements and
22381         pass in the edge to unswitch.
22382         (clean_up_after_unswitching): New.
22383         (pass_tree_unswitch::execute): Pass down fun.
22385 2022-05-24  Eugene Rozenfeld  <erozen@microsoft.com>
22387         * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
22388         counts for the epilog loop.
22390 2022-05-24  Martin Sebor  <msebor@redhat.com>
22391             Richard Biener  <rguenther@suse.de>
22393         PR middle-end/105604
22394         * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
22395         (get_origin_and_offset_r): Remove null handling.  Handle variable array
22396         sizes.
22397         (get_origin_and_offset): Handle null argument here.  Simplify.
22398         (alias_offset): Update comment.
22399         * pointer-query.cc (field_at_offset): Update comment.  Handle members
22400         of variable-length types.
22402 2022-05-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22404         * target.def (vec_perm_const): Define new parameter op_mode and
22405         update doc.
22406         * doc/tm.texi: Regenerate.
22407         * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
22408         vec_perm_const hook to add new parameter op_mode and return false
22409         if result and operand modes do not match.
22410         * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
22411         * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
22412         * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
22413         * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
22414         * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
22415         * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
22416         * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
22417         * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
22418         * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
22419         prototype.
22420         * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
22421         (ashrv2di3): Likewise.
22422         * optabs.cc (expand_vec_perm_const): Likewise.
22423         * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
22424         * optabs-query.cc (can_vec_perm_const_p): Define new parameter
22425         op_mode and pass it to vec_perm_const hook.
22426         (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
22427         * match.pd (vec_perm X Y CST): Likewise.
22428         * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
22429         * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
22430         (vect_grouped_load_supported): Likewise.
22431         (vect_shift_permute_load_chain): Likewise.
22432         * tree-vect-generic.cc (lower_vec_perm): Likewise.
22433         * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
22434         * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
22435         * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
22436         * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
22437         (vect_transform_slp_perm_load): Likewise.
22438         (vectorizable_slp_permutation): Likewise.
22439         * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
22440         (vectorizable_bswap): Likewise.
22441         (scan_store_can_perm_p): Likewise.
22442         (vect_gen_perm_mask_checked): Likewise.
22444 2022-05-24  H.J. Lu  <hjl.tools@gmail.com>
22446         PR target/104816
22447         * config/i386/i386.opt: Remove Undocumented.
22448         * doc/invoke.texi: Document -mcet-switch.
22450 2022-05-24  Andrew Stubbs  <ams@codesourcery.com>
22452         * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
22453         * config/gcn/gcn-opts.h (enum gcn_isa): New.
22454         (TARGET_GCN3): Use enum gcn_isa.
22455         (TARGET_GCN3_PLUS): Likewise.
22456         (TARGET_GCN5): Likewise.
22457         (TARGET_GCN5_PLUS): Likewise.
22458         (TARGET_CDNA1): New.
22459         (TARGET_CDNA1_PLUS): New.
22460         (TARGET_CDNA2): New.
22461         (TARGET_CDNA2_PLUS): New.
22462         (TARGET_M0_LDS_LIMIT): New.
22463         (TARGET_PACKED_WORK_ITEMS): New.
22464         * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
22465         (gcn_option_override): Recognise CDNA ISA variants.
22466         (gcn_omp_device_kind_arch_isa): Support gfx90a.
22467         (gcn_expand_prologue): Make m0 init optional.
22468         Add support for packed work items.
22469         (output_file_start): Support gfx90a.
22470         (gcn_hsa_declare_function_name): Support gfx90a metadata.
22471         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
22472         __CDNA2__.
22473         * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
22474         (<su>mulsi3_highpart_imm): Likewise.
22475         (<su>mulsidi3): Likewise.
22476         (<su>mulsidi3_imm): Likewise.
22477         * config/gcn/gcn.opt (gpu_type): Add gfx90a.
22478         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
22479         (main): Support gfx90a.
22480         * config/gcn/t-gcn-hsa: Add gfx90a multilib.
22481         * config/gcn/t-omp-device: Add gfx90a isa.
22483 2022-05-24  Andrew Stubbs  <ams@codesourcery.com>
22485         * config.in: Regenerate.
22486         * config/gcn/gcn-hsa.h (X_FIJI): Delete.
22487         (X_900): Delete.
22488         (X_906): Delete.
22489         (X_908): Delete.
22490         (S_FIJI): Delete.
22491         (S_900): Delete.
22492         (S_906): Delete.
22493         (S_908): Delete.
22494         (NO_XNACK): New macro.
22495         (NO_SRAM_ECC): New macro.
22496         (SRAMOPT): Keep only v4 variant.
22497         (HSACO3_SELECT_OPT): Delete.
22498         (DRIVER_SELF_SPECS): Delete.
22499         (ASM_SPEC): Remove LLVM 9 support.
22500         * config/gcn/gcn-valu.md
22501         (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
22502         (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
22503         * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
22504         (print_operand_address): Remove assembler bug workaround.
22505         * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
22506         (EF_AMDGPU_SRAM_ECC_V3): Delete.
22507         (SET_XNACK_ON): Delete v3 variants.
22508         (SET_XNACK_OFF): Delete v3 variants.
22509         (TEST_XNACK): Delete v3 variants.
22510         (SET_SRAM_ECC_ON): Delete v3 variants.
22511         (SET_SRAM_ECC_ANY): Delete v3 variants.
22512         (SET_SRAM_ECC_OFF): Delete v3 variants.
22513         (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
22514         (TEST_SRAM_ECC_ANY): Delete v3 variants.
22515         (TEST_SRAM_ECC_ON): Delete v3 variants.
22516         (copy_early_debug_info): Remove v3 support.
22517         (main): Remove v3 support.
22518         * configure: Regenerate.
22519         * configure.ac: Replace all GCN feature checks with a version check.
22521 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
22523         * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
22524         i.e. a double word negation of a zero extended operand, to
22525         neg;sbb.
22527 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
22529         PR tree-optimization/105668
22530         * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
22531         V1TImode, just like V2DImode.
22532         * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
22533         Use VI_128 mode iterator instead of VI124_128 to include V2DI.
22534         (vcond_mask_v2div2di): Delete.
22535         (vcond_mask_v1tiv1ti): New define_expand.
22537 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
22539         * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
22540         to strncmp for strings of length one.
22542 2022-05-24  ShiYulong  <shiyulong@iscas.ac.cn>
22544         * config/riscv/predicates.md (imm5_operand): Add a new operand type for
22545         prefetch instructions.
22546         * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
22547         Extensions.
22548         (RISCV_ATYPE_SI): New.
22549         (RISCV_ATYPE_DI): New.
22550         * config/riscv/riscv-ftypes.def (0): New.
22551         (1): New.
22552         * config/riscv/riscv.md (riscv_clean_<mode>): New.
22553         (riscv_flush_<mode>): New.
22554         (riscv_inval_<mode>): New.
22555         (riscv_zero_<mode>): New.
22556         (prefetch): New.
22557         (riscv_prefetchi_<mode>): New.
22558         * config/riscv/riscv-cmo.def: New file.
22560 2022-05-24  ShiYulong  <shiyulong@iscas.ac.cn>
22562         * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
22563         * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
22564         (MASK_ZICBOM): New.
22565         (MASK_ZICBOP): New.
22566         (TARGET_ZICBOZ): New.
22567         (TARGET_ZICBOM): New.
22568         (TARGET_ZICBOP): New.
22569         * config/riscv/riscv.opt (riscv_zicmo_subext): New.
22571 2022-05-24  David Malcolm  <dmalcolm@redhat.com>
22573         * tree-vect-slp-patterns.cc: Add "final" and "override" to
22574         vect_pattern::build impls as appropriate.
22576 2022-05-24  David Malcolm  <dmalcolm@redhat.com>
22578         * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
22579         implementations, removing redundant "virtual" as appropriate.
22580         * ipa-fnsummary.h: Likewise.
22581         * ipa-modref.cc: Likewise.
22582         * ipa-param-manipulation.cc: Likewise.
22583         * ipa-profile.cc: Likewise.
22584         * ipa-prop.h: Likewise.
22585         * ipa-pure-const.cc: Likewise.
22586         * ipa-reference.cc: Likewise.
22587         * ipa-sra.cc: Likewise.
22588         * symbol-summary.h: Likewise.
22589         * symtab-thunks.cc: Likewise.
22591 2022-05-24  Martin Liska  <mliska@suse.cz>
22593         Revert:
22594         2022-05-24  Martin Liska  <mliska@suse.cz>
22596         * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
22597         warning.
22599 2022-05-24  Martin Liska  <mliska@suse.cz>
22601         * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
22602         warning.
22604 2022-05-24  Bruno Haible  <bruno@clisp.org>
22606         PR other/105527
22607         * doc/install.texi (Configuration): Add more details about --with-zstd.
22608         Document --with-zstd-include and --with-zstd-lib
22610 2022-05-24  Richard Biener  <rguenther@suse.de>
22612         PR middle-end/105711
22613         * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
22614         and use it.
22615         (extract_bit_field_1): Pass down the mode of op0 to
22616         extract_bit_field_as_subreg.
22618 2022-05-24  Vineet Gupta  <vineetg@rivosinc.com>
22620         * config/riscv/riscv.cc: (struct riscv_tune_param): Add
22621         fmv_cost.
22622         (rocket_tune_info): Add default fmv_cost 8.
22623         (sifive_7_tune_info): Ditto.
22624         (thead_c906_tune_info): Ditto.
22625         (optimize_size_tune_info): Ditto.
22626         (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
22628 2022-05-24  Jakub Jelinek  <jakub@redhat.com>
22630         PR c/105378
22631         * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
22632         builtin.
22633         * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
22634         clause but no depend clauses.
22635         * omp-expand.cc (expand_taskwait_call): Use
22636         BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
22637         BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
22639 2022-05-24  Richard Biener  <rguenther@suse.de>
22641         PR tree-optimization/100221
22642         * tree-ssa-dse.cc (contains_phi_arg): New function.
22643         (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
22645 2022-05-24  Richard Biener  <rguenther@suse.de>
22647         PR tree-optimization/105629
22648         * tree-ssa-phiopt.cc (spaceship_replacement): Allow
22649         a sign-extending conversion.
22651 2022-05-24  Kewen Lin  <linkw@linux.ibm.com>
22653         PR target/105627
22654         * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
22655         be a debug insn.
22656         (union_uses): Skip debug use_insn.
22658 2022-05-23  Vineet Gupta  <vineetg@rivosinc.com>
22660         * config/riscv/predicates.md (const_0_operand): Remove
22661         const_double.
22662         * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
22663         CONST_DOUBLE.
22664         * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
22666 2022-05-23  Mayshao  <mayshao-oc@zhaoxin.com>
22668         * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
22669         the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
22670         (cpu_indicator_init): Handle Zhaoxin processors.
22671         * common/config/i386/i386-common.cc: Add lujiazui.
22672         * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
22673         VENDOR_ZHAOXIN.
22674         (enum processor_types): Add ZHAOXIN_FAM7H.
22675         (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
22676         * config.gcc: Add lujiazui.
22677         * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
22678         Signatures for zhaoxin
22679         (signature_SHANGHAI_ecx): Ditto.
22680         (signature_SHANGHAI_edx): Ditto.
22681         * config/i386/driver-i386.cc (host_detect_local_cpu): Let
22682         -march=native recognize lujiazui processors.
22683         * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
22684         * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
22685         * config/i386/i386.h (enum processor_type): Ditto.
22686         * config/i386/i386.md: Add lujiazui.
22687         * config/i386/x86-tune-costs.h (struct processor_costs): Add
22688         lujiazui costs.
22689         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
22690         (ix86_adjust_cost): Ditto.
22691         * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
22692         (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
22693         (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
22694         (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
22695         (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
22696         (X86_TUNE_MOVX): Ditto.
22697         (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
22698         (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
22699         (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
22700         (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
22701         (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
22702         (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
22703         (X86_TUNE_USE_LEAVE): Ditto.
22704         (X86_TUNE_PUSH_MEMORY): Ditto.
22705         (X86_TUNE_LCP_STALL): Ditto.
22706         (X86_TUNE_USE_INCDEC): Ditto.
22707         (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
22708         (X86_TUNE_OPT_AGU): Ditto.
22709         (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
22710         (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
22711         (X86_TUNE_USE_SAHF): Ditto.
22712         (X86_TUNE_USE_BT): Ditto.
22713         (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
22714         (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
22715         (X86_TUNE_AVOID_MFENCE): Ditto.
22716         (X86_TUNE_EXPAND_ABS): Ditto.
22717         (X86_TUNE_USE_SIMODE_FIOP): Ditto.
22718         (X86_TUNE_USE_FFREEP): Ditto.
22719         (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
22720         (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
22721         (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
22722         (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
22723         (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
22724         * doc/extend.texi: Add details about lujiazui.
22725         * doc/invoke.texi: Add details about lujiazui.
22726         * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
22728 2022-05-23  Martin Liska  <mliska@suse.cz>
22730         * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
22732 2022-05-23  Richard Biener  <rguenther@suse.de>
22734         * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
22735         (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
22737 2022-05-23  Richard Biener  <rguenther@suse.de>
22739         * gimple-expr.cc (is_gimple_condexpr): Remove.
22740         * gimple-expr.h (is_gimple_condexpr): Likewise.
22741         * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
22742         * tree-if-conv.cc (set_bb_predicate): Likewie.
22743         (add_to_predicate_list): Likewise.
22744         (gen_phi_arg_condition): Likewise.
22745         (predicate_scalar_phi): Likewise.
22746         (predicate_statements): Likewise.
22748 2022-05-23  Richard Biener  <rguenther@suse.de>
22750         * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
22751         * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
22752         as is_gimple_val.
22753         * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
22754         * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
22755         * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
22756         Build the condition of the COND_EXPR separately.
22757         * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
22758         * tree-vect-generic.cc (expand_vector_condition): Likewise.
22759         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
22760         Likewise.
22761         * vr-values.cc (simplify_using_ranges::simplify): Likewise.
22762         * tree-vect-patterns.cc: Add comment indicating we are
22763         building invalid COND_EXPRs and why.
22764         * omp-expand.cc (expand_omp_simd): Gimplify the condition
22765         to the COND_EXPR separately.
22766         (expand_omp_atomic_cas): Note part that should be unreachable
22767         now.
22768         * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
22769         condition for valid replacements.
22770         * tree-if-conv.cc (predicate_bbs): Simulate previous
22771         re-folding of the condition in folded COND_EXPRs which
22772         is necessary because of unfolded GIMPLE_CONDs in the IL
22773         as in for example gcc.dg/fold-bopcond-1.c.
22774         * gimple-range-gori.cc (gori_compute::condexpr_adjust):
22775         Handle that the comparison is now in the def stmt of
22776         the select operand.  Required by gcc.dg/pr104526.c.
22778 2022-05-23  Tobias Burnus  <tobias@codesourcery.com>
22780         PR fortran/104949
22781         * langhooks-def.h (lhd_omp_array_size): New.
22782         (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
22783         (LANG_HOOKS_DECLS): Add it.
22784         * langhooks.cc (lhd_omp_array_size): New.
22785         * langhooks.h (struct lang_hooks_for_decls): Add hook.
22786         * omp-low.cc (scan_sharing_clauses, lower_omp_target):
22787         Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
22789 2022-05-23  Roger Sayle  <roger@nextmovesoftware.com>
22791         * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
22792         XOR/IOR case.  Account for two instructions for double-word
22793         operations.  In case of vector pandn, account for single
22794         instruction.  Likewise for integer andn with TARGET_BMI.
22795         <case NOT>: Vector NOT requires more than 1 instruction (pxor).
22796         <case NEG>: Double-word negation requires 3 instructions.
22798 2022-05-23  Tsukasa OI  <research_trasio@irq.a4lg.com>
22800         * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
22801         Fix "K" extension prefix to be placed before "J".
22802         * config/riscv/arch-canonicalize: Likewise.
22804 2022-05-23  liuhongt  <hongtao.liu@intel.com>
22806         * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
22807         <-> mask cost from 5 to 6.
22808         (icelake_cost): Ditto.
22810 2022-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
22812         * config/aarch64/aarch64.md
22813         (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
22814         (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
22815         (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
22816         (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
22817         (one_cmpl_<optab><mode>2): Likewise.
22818         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
22819         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
22820         (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
22821         (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
22822         (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
22823         (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
22824         (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
22825         (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
22826         (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
22827         (rolsi3_insn_uxtw): New pattern.
22828         * config/aarch64/iterators.md (SHIFT): Add rotate left.
22829         (SHIFT_no_rotate): Add new iterator.
22830         (SHIFT:shift): Print rotate left as ror.
22831         (is_rotl): Add test for left rotate.
22833 2022-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
22835         * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
22836         processing.  Add support for architectural extensions.
22837         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
22838         AARCH64_CPU_DEFAULT_FLAGS.
22839         (TARGET_CPU_NBITS): Remove.
22840         (TARGET_CPU_MASK): Remove.
22841         * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
22842         (get_tune_cpu): Assert CPU is always valid.
22843         (get_arch): Assert architecture is always valid.
22844         (aarch64_override_options): Cleanup CPU selection code and simplify logic.
22845         (aarch64_option_restore): Remove unnecessary checks on tune.
22847 2022-05-20  David Malcolm  <dmalcolm@redhat.com>
22849         * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
22850         "FINAL" and "OVERRIDE" with "final" and "override".
22851         * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
22852         * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
22853         * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
22854         * diagnostic-path.h: Likewise.
22855         * digraph.cc: Likewise.
22856         * gcc-rich-location.h: Likewise.
22857         * gimple-array-bounds.cc: Likewise.
22858         * gimple-loop-versioning.cc: Likewise.
22859         * gimple-range-cache.cc: Likewise.
22860         * gimple-range-cache.h: Likewise.
22861         * gimple-range-fold.cc: Likewise.
22862         * gimple-range-fold.h: Likewise.
22863         * gimple-range-tests.cc: Likewise.
22864         * gimple-range.h: Likewise.
22865         * gimple-ssa-evrp.cc: Likewise.
22866         * input.cc: Likewise.
22867         * json.h: Likewise.
22868         * read-rtl-function.cc: Likewise.
22869         * tree-complex.cc: Likewise.
22870         * tree-diagnostic-path.cc: Likewise.
22871         * tree-ssa-ccp.cc: Likewise.
22872         * tree-ssa-copy.cc: Likewise.
22873         * tree-vrp.cc: Likewise.
22874         * value-query.h: Likewise.
22875         * vr-values.h: Likewise.
22877 2022-05-20  Marcel Vollweiler  <marcel@codesourcery.com>
22879         * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
22880         target_memcpy_rect_async to omp_runtime_apis array.
22882 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
22884         * doc/sourcebuild.texi (Decimal floating point attributes): Document
22885         dfp_bid effective-target.
22887 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
22889         * config/aarch64/aarch64.cc
22890         (aarch64_split_128bit_move): Handle DFP modes.
22891         (aarch64_mode_valid_for_sched_fusion_p): Likewise.
22892         (aarch64_classify_address): Likewise.
22893         (aarch64_legitimize_address_displacement): Likewise.
22894         (aarch64_reinterpret_float_as_int): Likewise.
22895         (aarch64_float_const_zero_rtx_p): Likewise.
22896         (aarch64_can_const_movi_rtx_p): Likewise.
22897         (aarch64_anchor_offset): Likewise.
22898         (aarch64_secondary_reload): Likewise.
22899         (aarch64_rtx_costs): Likewise.
22900         (aarch64_legitimate_constant_p): Likewise.
22901         (aarch64_gimplify_va_arg_expr): Likewise.
22902         (aapcs_vfp_sub_candidate): Likewise.
22903         (aarch64_vfp_is_call_or_return_candidate): Likewise.
22904         (aarch64_output_scalar_simd_mov_immediate): Likewise.
22905         (aarch64_gen_adjusted_ldpstp): Likewise.
22906         (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
22907         * config/aarch64/aarch64.md
22908         (movsf_aarch64): Use SFD iterator and rename into
22909         mov<mode>_aarch64.
22910         (movdf_aarch64): Use DFD iterator and rename into
22911         mov<mode>_aarch64.
22912         (movtf_aarch64): Use TFD iterator and rename into
22913         mov<mode>_aarch64.
22914         (split pattern for move TF mode): Use TFD iterator.
22915         * config/aarch64/iterators.md
22916         (GPF_TF_F16_MOV): Add DFP modes.
22917         (SFD, DFD, TFD): New iterators.
22918         (GPF_TF): Add DFP modes.
22919         (TX, DX, DX2): Likewise.
22921 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
22923         * configure: Regenerate.
22925 2022-05-19  Roger Sayle  <roger@nextmovesoftware.com>
22927         PR middle-end/98865
22928         * expr.cc (expand_expr_real_2) [MULT_EXPR]:  Expand X*Y as X&Y
22929         when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
22930         likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
22932 2022-05-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
22934         * config/rs6000/rs6000-builtins.def: Rephrase
22935         to remove RS6000_BTC_SPECIAL from comment.
22936         * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
22937         RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
22938         RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
22939         RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
22940         RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
22941         RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
22942         RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
22943         RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
22944         RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
22945         RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
22946         RS6000_BTM_ALWAYS): Delete.
22948 2022-05-19  Richard Biener  <rguenther@suse.de>
22950         * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
22951         computation of the new value.
22953 2022-05-19  Richard Biener  <rguenther@suse.de>
22955         * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
22956         (add_to_value): Use get_expression_id.
22957         (bitmap_insert_into_set): Likewise.
22958         (bitmap_value_insert_into_set): Likewise.
22960 2022-05-19  David Malcolm  <dmalcolm@redhat.com>
22962         * doc/invoke.texi (-fanalyzer-checker=): Add
22963         -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
22964         the list of analyzer warnings disabled by
22965         -fanalyzer-checker=taint.
22967 2022-05-19  Jakub Jelinek  <jakub@redhat.com>
22969         PR debug/105630
22970         * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
22971         global vars without symtab node even when they have DECL_RTL
22972         set.
22974 2022-05-19  Jakub Jelinek  <jakub@redhat.com>
22976         PR c/105635
22977         * pointer-query.cc (gimple_parm_array_size): Return NULL if var
22978         doesn't have pointer or reference type.
22980 2022-05-18  Marek Polacek  <polacek@redhat.com>
22982         PR c/105131
22983         * doc/invoke.texi: Document -Wenum-int-mismatch.
22985 2022-05-18  Uros Bizjak  <ubizjak@gmail.com>
22987         * config/i386/gnu-user-common.h (defined): Only define
22988         TARGET_CAN_SPLIT_STACK for glibc targets.
22989         * config/i386/gnu.h (defined): Ditto.
22991 2022-05-18  Roger Sayle  <roger@nextmovesoftware.com>
22993         * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
22994         is wider than word_mode, a multiplication costs three word_mode
22995         multiplications and two word_mode additions.
22997 2022-05-18  Roger Sayle  <roger@nextmovesoftware.com>
22999         * config/i386/i386.md (define_split):  Split *andsi_1
23000         and *andn_si_ccno after reload with -Oz.
23002 2022-05-18  Frederik Harwath  <frederik@codesourcery.com>
23004         * graphite-scop-detection.cc (scop_detection::can_represent_loop):
23005         Output reason for failure to dump file.
23006         (scop_detection::harmful_loop_in_region): Likewise.
23007         (scop_detection::graphite_can_represent_expr): Likewise.
23008         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
23009         (scop_detection::stmt_simple_for_scop_p): Likewise.
23010         (print_sese_loop_numbers): New function.
23011         (scop_detection::add_scop): Use from here.
23013 2022-05-18  liuhongt  <hongtao.liu@intel.com>
23015         PR middle-end/103462
23016         * match.pd (bitwise_induction_p): New match.
23017         * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
23018         Declare.
23019         (analyze_and_compute_bitwise_induction_effect): New function.
23020         (enum bit_op_kind): New enum.
23021         (final_value_replacement_loop): Enhanced to handle bitwise
23022         induction.
23024 2022-05-18  Haochen Gui  <guihaoc@gcc.gnu.org>
23026         PR target/95737
23027         * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
23029 2022-05-18  liuhongt  <hongtao.liu@intel.com>
23031         PR target/104375
23032         * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
23033         define_insn.
23035 2022-05-18  liuhongt  <hongtao.liu@intel.com>
23037         PR target/104610
23038         * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
23039         for QImode when code is EQ or NE.
23040         * config/i386/i386.md (cbranchoi4): New expander.
23042 2022-05-18  Peter Bergner  <bergner@linux.ibm.com>
23043             Segher Boessenkool  <segher@kernel.crashing.org>
23045         PR target/105556
23046         * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
23047         mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
23048         mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
23049         mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
23050         Update other operands accordingly.
23052 2022-05-17  Marek Polacek  <polacek@redhat.com>
23054         * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
23056 2022-05-17  Pat Haugen  <pthaugen@linux.ibm.com>
23058         PR target/99685
23059         * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
23060         register count when not splitting IEEE 128-bit Complex.
23062 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
23064         * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
23065         target inside target if inner is reverse offload.
23067 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
23069         * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
23070         * config/nvptx/mkoffload.cc (process): Likewise.
23072 2022-05-17  Andrew MacLeod  <amacleod@redhat.com>
23074         * Makefile.in (OBJS): Add gimple-range-side-effect.o.
23075         * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
23076         (non_null_ref::~non_null_ref): Delete.
23077         (non_null_ref::set_nonnull): Delete.
23078         (non_null_ref::non_null_deref_p): Delete.
23079         (non_null_ref::process_name): Delete.
23080         (ranger_cache::ranger_cache): Initialize m_exit object.
23081         (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
23082         (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
23083         (ranger_cache::update_to_nonnull): Delete.
23084         (non_null_loadstore): Delete.
23085         (ranger_cache::block_apply_nonnull): Delete.
23086         (ranger_cache::apply_side_effects): New.
23087         * gimple-range-cache.h (class non_null_ref): Delete.
23088         (non_null_ref::adjust_range): Delete.
23089         (class ranger_cache): Adjust prototypes, add side effect manager.
23090         * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
23091         side effect manager for queries.
23092         (path_range_query::adjust_for_non_null_uses): Ditto.
23093         * gimple-range-path.h (class path_range_query): Delete non_null_ref.
23094         * gimple-range-side-effect.cc: New.
23095         * gimple-range-side-effect.h: New.
23096         * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
23097         (gimple_ranger::range_of_expr): Check def block for override value.
23098         (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
23099         (gimple_ranger::range_on_edge): Check for outgoing side-effects.
23100         (gimple_ranger::register_side_effects): Call apply_side_effects.
23101         (enable_ranger): Update contructor.
23102         * gimple-range.h (class gimple_ranger): Update prototype.
23103         (enable_ranger): Update prototype.
23104         * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
23106 2022-05-17  Giuliano Belinassi  <gbelinassi@suse.de>
23108         PR c++/105169
23109         * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
23110         * varasm.cc (switch_to_comdat_section): New
23111         (handle_vtv_comdat_section): Call switch_to_comdat_section.
23112         * varasm.h: Declare switch_to_comdat_section.
23114 2022-05-17  Richard Biener  <rguenther@suse.de>
23116         * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
23117         not clear bb->aux of the copied blocks.
23119 2022-05-17  Andrew MacLeod  <amacleod@redhat.com>
23121         PR tree-optimization/105458
23122         * value-relation.cc (path_oracle::register_relation): Merge, then check
23123         for equivalence.
23125 2022-05-17  Uroš Bizjak  <ubizjak@gmail.com>
23127         PR target/105624
23128         Revert:
23129         * config/i386/i386.md: Remove constraints when used with
23130         const_int_operand, const0_operand, const_1_operand, constm1_operand,
23131         const8_operand, const128_operand, const248_operand, const123_operand,
23132         const2367_operand, const1248_operand, const359_operand,
23133         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
23134         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
23135         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
23136         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
23137         const_0_to_255_mul_8_operand, const_1_to_31_operand,
23138         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
23139         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
23140         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
23141         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
23142         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
23143         const_24_to_27_operand and const_28_to_31_operand.
23144         * config/i386/mmx.md: Ditto.
23145         * config/i386/sse.md: Ditto.
23146         * config/i386/subst.md: Ditto.
23147         * config/i386/sync.md: Ditto.
23149 2022-05-17  Thomas Schwinge  <thomas@codesourcery.com>
23151         * diagnostic.cc: Don't advise to call 'abort' instead of
23152         'internal_error'.
23153         * system.h: Advise to call 'internal_error' instead of 'abort' or
23154         'fancy_abort'.
23156 2022-05-17  Frederik Harwath  <frederik@codesourcery.com>
23158         * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
23159         a reference to a variable which does not exist.
23160         * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
23161         in comment.
23163 2022-05-17  Frederik Harwath  <frederik@codesourcery.com>
23165         * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
23166         (isl_id_for_parameter): ... this new function name.
23167         (build_scop_context): Adjust function use.
23169 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
23171         PR target/105602
23172         * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
23173         * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
23175 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
23177         * tree-core.h (enum omp_clause_depend_kind): Add
23178         OMP_CLAUSE_DEPEND_INOUTSET.
23179         * tree-pretty-print.cc (dump_omp_clause): Handle
23180         OMP_CLAUSE_DEPEND_INOUTSET.
23181         * gimplify.cc (gimplify_omp_depend): Likewise.
23182         * omp-low.cc (lower_depend_clauses): Likewise.
23184 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
23186         PR target/105613
23187         * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
23188         andv4si3 only for EQ, for NE use iorv4si3 instead.
23190 2022-05-17  Richard Biener  <rguenther@suse.de>
23192         PR tree-optimization/105618
23193         * tree-ssa-sink.cc (statement_sink_location): For virtual
23194         PHI uses ignore those defining the used virtual operand.
23196 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
23198         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
23199         hanlde -> handle.  Fix up comment formatting.
23201 2022-05-17  liuhongt  <hongtao.liu@intel.com>
23203         PR target/105033
23204         * config/i386/sse.md (*vec_concatv4si): Extend to ..
23205         (*vec_concat<mode>): .. V16QI and V8HImode.
23206         (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
23207         (*vec_concatv8hi_permt2): Ditto.
23209 2022-05-17  liuhongt  <hongtao.liu@intel.com>
23211         PR tree-optimization/105591
23212         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
23213         vec_perm_expr index.
23215 2022-05-16  Jason Merrill  <jason@redhat.com>
23217         PR c/105492
23218         * attribs.cc (decl_attributes): Fix broken typedefs here.
23220 2022-05-16  David Malcolm  <dmalcolm@redhat.com>
23222         PR analyzer/105103
23223         * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
23224         * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
23225         -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
23226         -Wanalyzer-va-list-use-after-va-end.
23228 2022-05-16  Richard Biener  <rguenther@suse.de>
23230         * gimple-match.h (gimple_build): Move code_helper overloads ...
23231         * gimple-fold.h (gimple_build): ... here.
23232         (gimple_build): Transition to new worker API.  Provide
23233         overloads from sequence-based API.
23234         (gimple_convert): Likewise.
23235         (gimple_convert_to_ptrofftype): Likewise.
23236         (gimple_build_vector_from_val): Likewise.
23237         (gimple_build_vector): Likewise.
23238         (gimple_build_round_up): Likewise.
23239         * gimple-fold.cc (gimple_build_insert_seq): New helper.
23240         (gimple_build): Use it.  Transition combined_fn and code_helper
23241         API parts.
23242         (gimple_convert): Transition to new worker API.
23243         (gimple_convert_to_ptrofftype): Likewise.
23244         (gimple_build_vector_from_val): Likewise.
23245         (gimple_build_vector): Likewise.
23246         (gimple_build_round_up): Likewise.
23248 2022-05-16  Richard Biener  <rguenther@suse.de>
23250         * gimple-match.h (code_helper): Move class ...
23251         * tree.h (code_helper): ... here.
23253 2022-05-16  Martin Liska  <mliska@suse.cz>
23255         * opts-global.cc (write_langs): Add comment.
23257 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
23259         * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
23260         instead of a bitwise negation.
23261         <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
23263 2022-05-16  Martin Liska  <mliska@suse.cz>
23265         * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
23266         (decls_mismatched_attributes): Likewise.
23267         * builtins.cc (c_strlen): Likewise.
23268         * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
23269         * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
23270         * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
23271         (aarch64_init_simd_builtin_types): Likewise.
23272         (aarch64_init_builtin_rsqrt): Likewise.
23273         * config/aarch64/aarch64.cc (is_madd_op): Likewise.
23274         * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
23275         (arm_init_simd_builtin_types): Likewise.
23276         * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
23277         (c_prefix): Likewise.
23278         (main): Likewise.
23279         * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
23280         * config/darwin-c.cc (darwin_register_frameworks): Likewise.
23281         * config/gcn/mkoffload.cc (process_obj): Likewise.
23282         * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
23283         (fold_builtin_cpu): Likewise.
23284         * config/m32c/m32c.cc (PUSHM_N): Likewise.
23285         * config/nvptx/mkoffload.cc (process): Likewise.
23286         * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
23287         * config/s390/s390.cc (NR_C_MODES): Likewise.
23288         * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
23289         (create_insn_code_compression_table): Likewise.
23290         * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
23291         * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
23292         * dwarf2out.cc (ARRAY_SIZE): Likewise.
23293         * genhooks.cc (emit_documentation): Likewise.
23294         (emit_init_macros): Likewise.
23295         * gimple-ssa-sprintf.cc (format_floating): Likewise.
23296         * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
23297         * godump.cc (keyword_hash_init): Likewise.
23298         * hash-table.cc (hash_table_higher_prime_index): Likewise.
23299         * input.cc (for_each_line_table_case): Likewise.
23300         * ipa-free-lang-data.cc (free_lang_data): Likewise.
23301         * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
23302         * optc-save-gen.awk: Likewise.
23303         * spellcheck.cc (test_metric_conditions): Likewise.
23304         * tree-vect-slp-patterns.cc (sizeof): Likewise.
23305         (ARRAY_SIZE): Likewise.
23306         * tree.cc (build_common_tree_nodes): Likewise.
23308 2022-05-16  Martin Liska  <mliska@suse.cz>
23310         * opts-global.cc (write_langs): Allocate at least one byte.
23312 2022-05-16  Richard Biener  <rguenther@suse.de>
23314         * match.pd (A cmp B ? A : B -> min/max): New patterns
23315         carried over from fold_cond_expr_with_comparison.
23317 2022-05-16  liuhongt  <hongtao.liu@intel.com>
23319         PR target/105587
23320         * config/i386/i386-expand.cc
23321         (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
23322         d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
23324 2022-05-15  Uroš Bizjak  <ubizjak@gmail.com>
23326         * config/i386/i386.md: Remove constraints when used with
23327         const_int_operand, const0_operand, const_1_operand, constm1_operand,
23328         const8_operand, const128_operand, const248_operand, const123_operand,
23329         const2367_operand, const1248_operand, const359_operand,
23330         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
23331         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
23332         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
23333         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
23334         const_0_to_255_mul_8_operand, const_1_to_31_operand,
23335         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
23336         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
23337         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
23338         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
23339         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
23340         const_24_to_27_operand and const_28_to_31_operand.
23341         * config/i386/mmx.md: Ditto.
23342         * config/i386/sse.md: Ditto.
23343         * config/i386/subst.md: Ditto.
23344         * config/i386/sync.md: Ditto.
23346 2022-05-13  Roger Sayle  <roger@nextmovesoftware.com>
23347             Uroš Bizjak  <ubizjak@gmail.com>
23349         * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
23350         For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
23351         by a pshufd and pand.
23352         (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
23353         vector equality as a V2DImode vector comparison (see above),
23354         followed by a pshufd and pand.
23356 2022-05-13  Roger Sayle  <roger@nextmovesoftware.com>
23358         PR tree-optimization/83907
23359         * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
23360         for memset with an constant char value.
23361         (handle_store): Improved handling of stores with a first byte
23362         of zero, but not storing_all_zeros_p.
23364 2022-05-13  Philipp Tomsich  <philipp.tomsich@vrull.eu>
23365             Manolis Tsamis  <manolis.tsamis@vrull.eu>
23367         * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
23368         (CTZ_DEFINED_VALUE_AT_ZERO): Same.
23369         * doc/sourcebuild.texi: add documentation for RISC-V specific
23370         test target keywords
23372 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23374         PR tree-optimization/105597
23375         * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
23376         of the lhs and make sure it is not undefined.
23378 2022-05-13  Sebastian Pop  <spop@amazon.com>
23380         PR target/105162
23381         * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
23382         of str array.
23383         * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
23384         memmodel_from_int and handle MEMMODEL_SYNC_*.
23385         (DEF0): Add __aarch64_*_sync functions.
23387 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23389         * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
23390         enumerated values.
23391         * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
23392         * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
23393         new VREL enumerated values.
23394         (*::lhs_op2_relation): Ditto.
23395         (*::op1_op2_relation): Ditto.
23396         (*::fold_range): Use new VREL enumerated values.
23397         (minus_op1_op2_relation_effect): Ditto.
23398         (range_relational_tests): Ditto.
23399         * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
23400         (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
23401         relation_kind.
23402         (*_op1_op2_relation): Return relation_kind.
23403         (relop_early_resolve): Use VREL_UNDEFINED.
23404         * value-query.cc (range_query::query_relation): Use VREL_VARYING.
23405         * value-relation.cc (VREL_LAST): Change enumerated value.
23406         (vrel_range_assert): Delete.
23407         (print_relation): Remove range assert.
23408         (rr_negate_table): Adjust table to use new enumerated values..
23409         (relation_negate): Remove range assert.
23410         (rr_swap_table): Adjust.
23411         (relation_swap): Remove range assert.
23412         (rr_intersect_table): Adjust.
23413         (relation_intersect): Remove range assert.
23414         (rr_union_table): Adjust.
23415         (relation_union): Remove range assert.
23416         (rr_transitive_table): Adjust.
23417         (relation_transitive): Remove range assert.
23418         (equiv_oracle::query_relation): Use new VREL enumerated values.
23419         (equiv_oracle::register_relation): Ditto.
23420         (relation_oracle::register_stmt): Ditto.
23421         (dom_oracle::set_one_relation): Ditto.
23422         (dom_oracle::register_transitives): Ditto.
23423         (dom_oracle::query_relation): Ditto.
23424         (path_oracle::register_relation): Ditto.
23425         (path_oracle::query_relation): Ditto.
23426         * value-relation.h (enum relation_kind_t): New relation_kind.
23427         (*_op1_op2_relation): Adjust prototypes.
23429 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23431         * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
23432         * value-range.cc (irange::legacy_verbose_union_): Add return value.
23433         (irange::irange_single_pair_union): New.
23434         (irange::irange_union): Add return value.
23435         * value-range.h (class irange): Adjust prototypes.
23437 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23439         * value-range.cc (irange::legacy_verbose_intersect): Add return value.
23440         (irange::irange_contains_p): New.
23441         (irange::irange_intersect): Add return value.
23442         * value-range.h (class irange): Adjust prototypes.
23444 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23446         * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
23447         had_global value instead.
23449 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23451         PR tree-optimization/104547
23452         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
23453         the op1/op2 relation to the relation call.
23454         * range-op.cc (*::lhs_op1_relation): Add param.
23455         (*::lhs_op2_relation): Ditto.
23456         (operator_minus::lhs_op1_relation): New.
23457         (range_relational_tests): Add relation param.
23458         * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
23460 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23462         * gimple-range.cc (gimple_ranger::register_side_effects): First check
23463         if the DEF should be exported as a global.
23464         * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
23465         which will export globals.
23466         (execute_ranger_vrp): Remove call to export_global_ranges.
23468 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23470         * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
23472 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
23474         * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
23475         worlist truncated.
23476         (ranger_cache::entry_range): Add rfd_mode parameter.
23477         (ranger_cache::exit_range): Ditto.
23478         (ranger_cache::edge_range): New.  Incorporate from range_on_edge.
23479         (ranger_cache::range_of_expr): Adjust call to entry_range.
23480         (ranger_cache::range_on_edge): Split to edge_range and call.
23481         (ranger_cache::fill_block_cache): Always invoke range_from_dom.
23482         (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
23483         mutiple predecessors.
23484         (ranger_cache::update_to_nonnull): Adjust call to exit_range.
23485         * gimple-range-cache.h (ranger_cache): Add enum rfd_mode.  Adjust
23486         prototypes.
23488 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
23490         * gimple-harden-conditionals.cc: Include sbitmap.h.
23491         (pass_harden_conditional_branches::execute): Skip new blocks.
23492         (pass_harden_compares::execute): Likewise.
23494 2022-05-13  Richard Earnshaw  <rearnsha@arm.com>
23496         PR target/105463
23497         * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
23498         mve_memory_operand.
23499         (*movmisalign<mode>_mve_load): Likewise.
23500         * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
23501         form...
23502         (@movmisalign<mode>): ... thus.  Use generic predicates and then
23503         rework operands if they are not valid.  For MVE rework to a
23504         narrower element size if the alignment is not high enough.
23506 2022-05-13  Richard Earnshaw  <rearnsha@arm.com>
23508         * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
23509         when there is no write-back.  Fix use when strict is true.
23511 2022-05-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
23513         * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
23514         definition.
23516 2022-05-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
23518         * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
23519         extzvsi_internal): Rename from extv, extv_internal, extzv and
23520         extzv_internal, respectively.
23522 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
23524         * tree-sra.cc (sra_modify_assign): Check that scalar storage order
23525         is the same on the LHS and RHS before rewriting one with the model
23526         of the other.
23528 2022-05-13  Richard Biener  <rguenther@suse.de>
23530         * gimple-fold.cc (gimple_build): Adjust for new
23531         main API.
23532         * gimple-fold.h (gimple_build): New main APIs with
23533         iterator, insert direction and iterator update.
23534         (gimple_build): New forwarder template.
23535         (clear_padding_type_may_have_padding_p): Remove.
23536         (clear_type_padding_in_mask): Likewise.
23537         (arith_overflowed_p): Likewise.
23538         * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
23539         (clear_type_padding_in_mask): Likewise.
23540         (arith_overflowed_p): Likewise.
23541         * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
23542         (gimplify_build2): Likewise.
23543         (gimplify_build1): Likewise.
23544         * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
23545         compare stmt.
23546         * gengtype.cc (open_base_files): Re-order includes.
23547         * builtins.cc: Re-order gimple-fold.h include.
23548         * calls.cc: Likewise.
23549         * cgraphbuild.cc: Likewise.
23550         * cgraphunit.cc: Likewise.
23551         * config/rs6000/rs6000-builtin.cc: Likewise.
23552         * config/rs6000/rs6000-call.cc: Likewise.
23553         * config/rs6000/rs6000.cc: Likewise.
23554         * config/s390/s390.cc: Likewise.
23555         * expr.cc: Likewise.
23556         * fold-const.cc: Likewise.
23557         * function-tests.cc: Likewise.
23558         * gimple-match-head.cc: Likewise.
23559         * gimple-range-fold.cc: Likewise.
23560         * gimple-ssa-evrp-analyze.cc: Likewise.
23561         * gimple-ssa-evrp.cc: Likewise.
23562         * gimple-ssa-sprintf.cc: Likewise.
23563         * gimple-ssa-warn-access.cc: Likewise.
23564         * gimplify.cc: Likewise.
23565         * graphite-isl-ast-to-gimple.cc: Likewise.
23566         * ipa-cp.cc: Likewise.
23567         * ipa-devirt.cc: Likewise.
23568         * ipa-prop.cc: Likewise.
23569         * omp-low.cc: Likewise.
23570         * pointer-query.cc: Likewise.
23571         * range-op.cc: Likewise.
23572         * tree-cfg.cc: Likewise.
23573         * tree-if-conv.cc: Likewise.
23574         * tree-inline.cc: Likewise.
23575         * tree-object-size.cc: Likewise.
23576         * tree-ssa-ccp.cc: Likewise.
23577         * tree-ssa-dom.cc: Likewise.
23578         * tree-ssa-forwprop.cc: Likewise.
23579         * tree-ssa-ifcombine.cc: Likewise.
23580         * tree-ssa-loop-ivcanon.cc: Likewise.
23581         * tree-ssa-math-opts.cc: Likewise.
23582         * tree-ssa-pre.cc: Likewise.
23583         * tree-ssa-propagate.cc: Likewise.
23584         * tree-ssa-reassoc.cc: Likewise.
23585         * tree-ssa-sccvn.cc: Likewise.
23586         * tree-ssa-strlen.cc: Likewise.
23587         * tree-ssa.cc: Likewise.
23588         * value-pointer-equiv.cc: Likewise.
23589         * vr-values.cc: Likewise.
23591 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
23593         PR rtl-optimization/105455
23594         * gimple-harden-conditionals.cc (insert_check_and_trap): Set
23595         probabilities for newly-conditional edges.
23597 2022-05-13  liuhongt  <hongtao.liu@intel.com>
23599         PR tree-optimization/102583
23600         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
23601         contiguous stride in the VEC_PERM_EXPR.
23603 2022-05-12  Richard Biener  <rguenther@suse.de>
23605         PR rtl-optimization/105577
23606         * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
23607         edges before running fast DCE via df_analyze.
23609 2022-05-12  Richard Biener  <rguenther@suse.de>
23611         PR tree-optimization/105562
23612         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
23613         against all CLOBBER defs if there's not an obvious must-alias
23614         and we are not doing redundant store elimination.
23615         (vn_walk_cb_data::redundant_store_removal_p): New field.
23616         (vn_reference_lookup_pieces): Initialize it.
23617         (vn_reference_lookup): Add argument to specify if we are
23618         doing redundant store removal.
23619         (eliminate_dom_walker::eliminate_stmt): Specify we do.
23620         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
23622 2022-05-12  Haochen Jiang  <haochen.jiang@intel.com>
23624         PR target/104371
23625         * config/i386/sse.md (vi1avx2const): New define_mode_attr.
23626         (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
23627         New define_split pattern.
23629 2022-05-12  Jakub Jelinek  <jakub@redhat.com>
23631         * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
23632         if null_pointer_node.
23633         (gimplify_scan_omp_clauses): Likewise.
23634         * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
23635         as omp_all_memory.
23637 2022-05-11  Patrick Palka  <ppalka@redhat.com>
23639         * tree.h (TREE_VEC_BEGIN): Define.
23640         (TREE_VEC_END): Correct 'length' member access.
23641         (class tree_vec_range): Define.
23643 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
23645         * config/rs6000/rs6000.md: Use wa instead of <Fv>.
23647 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
23649         * config/rs6000/rs6000.md: Use d instead of <Ff>.
23651 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
23653         * config/rs6000/constraints.md (register_constraint "f"): Use
23654         RS6000_CONSTRAINT_d.
23655         * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
23656         RS6000_CONSTRAINT_f.
23657         (rs6000_init_hard_regno_mode_ok): Ditto.  Reorder and simplify a bit.
23658         * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
23659         RS6000_CONSTRAINT_d.
23661 2022-05-11  Richard Biener  <rguenther@suse.de>
23663         * gimple-fold.h (gimple_build): Use variadic template
23664         functions for the gimple_build API forwarders without
23665         location_t argument.
23667 2022-05-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
23669         PR middle-end/70090
23670         * asan.cc (initialize_sanitizer_builtins): Register
23671         __builtin_dynamic_object_size if necessary.
23673 2022-05-11  Richard Biener  <rguenther@suse.de>
23675         PR rtl-optimization/105559
23676         * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
23677         for non-debug insns.
23679 2022-05-11  Richard Biener  <rguenther@suse.de>
23681         * generic-match-head.cc: Include tree-eh.h.
23682         * match.pd ((cond ...) cmp X): New simplification inspired
23683         by fold_binary_op_with_conditional_arg.
23684         (eq/ne (cmp ...) true/false): Likewise.
23686 2022-05-11  Thomas Schwinge  <thomas@codesourcery.com>
23688         * doc/install.texi: Don't document '--with-hsa-runtime',
23689         '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
23691 2022-05-11  Martin Liska  <mliska@suse.cz>
23693         PR other/105527
23694         * doc/install.texi: Document the configure option --with-zstd.
23696 2022-05-11  Martin Liska  <mliska@suse.cz>
23698         * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
23699         compute index in cpu_features2.
23700         (set_cpu_feature): Likewise.
23701         * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
23702         loop for cpu_features2 and use NOP_EXPRs.
23704 2022-05-11  Richard Biener  <rguenther@suse.de>
23706         PR bootstrap/105551
23707         * opts.cc (finish_options): Also disable var-tracking if
23708         !DWARF2_DEBUGGING_INFO.
23710 2022-05-11  liuhongt  <hongtao.liu@intel.com>
23712         PR target/104915
23713         * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
23714         pre_reload define_insn_and_split.
23715         (*vec_setv2di_0_zero_extendhi_1): Ditto.
23716         (*vec_set<mode>_0_zero_extendsi): Ditto.
23717         (*vec_setv2di_0_zero_extendsi_1): Ditto.
23718         (ssewvecmode): New mode attr.
23719         (ssewvecmodelower): Ditto.
23720         (ssepackmodelower): Ditto.
23722 2022-05-11  Kewen Lin  <linkw@linux.ibm.com>
23724         * config/rs6000/constraints.md (register constraint v): Use
23725         rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
23727 2022-05-11  Martin Liska  <mliska@suse.cz>
23729         PR target/105355
23730         * config/riscv/riscv.opt: Remove Separate from
23731         -msmall-data-limit=.
23732         * optc-gen.awk: Report error for the described situation.
23733         * gcc.cc: Use Separate syntax.
23734         * opts.cc (gen_command_line_string): Change option name.
23736 2022-05-11  Haochen Gui  <guihaoc@gcc.gnu.org>
23738         PR target/105414
23739         * match.pd (minmax): Skip constant folding for fmin/fmax when both
23740         arguments are sNaN or one is sNaN and another is NaN.
23742 2022-05-10  Jakub Jelinek  <jakub@redhat.com>
23744         PR tree-optimization/105528
23745         * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
23746         set *gsi to gsi_for_stmt (ass_stmt).  Fix up function comment.
23748 2022-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
23750         * doc/md.texi (Defining Mode Iterators): Correct example replacement
23751         text.
23753 2022-05-10  Maciej W. Rozycki  <macro@embecosm.com>
23755         * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
23756         constants.
23757         (fmin<mode>3, fmax<mode>3): New insns.
23759 2022-05-10  Richard Biener  <rguenther@suse.de>
23761         * tree-if-conv.cc (fold_build_cond_expr): Use
23762         match-and-simplify to simplify the condition.
23763         (ifcvt_follow_ssa_use_edges): Remove.
23764         (predicate_scalar_phi): Use follow_all_ssa_edges.
23766 2022-05-10  Thomas Schwinge  <thomas@codesourcery.com>
23768         PR middle-end/100400
23769         * omp-oacc-kernels-decompose.cc
23770         (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
23771         call 'internal_error'.
23773 2022-05-10  Richard Biener  <rguenther@suse.de>
23775         PR middle-end/105537
23776         * toplev.cc (process_options): Move flag_var_tracking
23777         handling ...
23778         * opts.cc (finish_options): ... here.
23780 2022-05-10  Martin Liska  <mliska@suse.cz>
23782         * basic-block.h (struct basic_block_d): Use void *
23783         instead PTR.
23784         * cfgloop.h: Likewise.
23785         * cgraph.h: Likewise.
23786         * gengtype-state.cc (state_ident_by_name): Likewise.
23787         (record_type): Likewise.
23788         (read_state_already_seen_type): Likewise.
23789         * gengtype.cc (dump_type): Likewise.
23790         (input_file_by_name): Likewise.
23791         (main): Likewise.
23792         * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
23793         * ipa-utils.h (struct ipa_dfs_info): Likewise.
23794         * plugin.cc (htab_hash_plugin): Likewise.
23796 2022-05-10  Richard Biener  <rguenther@suse.de>
23798         * flags.h (dwarf_debuginfo_p): Add opts argument, guard
23799         API with !GENERATOR_FILE.
23800         * opts.cc (global_options): Poison.
23801         (global_options_set): Likewise.
23802         (finish_options): Refer to options via opts.
23804 2022-05-10  Uroš Bizjak  <ubizjak@gmail.com>
23805             Roger Sayle  <roger@nextmovesoftware.com>
23807         * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
23808         alternative when optimizing for size and the immediate operand is
23809         const_0_to_127_operand.
23810         (*andqi_2_maybe_si): Likewise.
23811         * config/i386/predicates.md (const_0_to_127_operand): New predicate.
23813 2022-05-10  Roger Sayle  <roger@nextmovesoftware.com>
23815         * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
23816         "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
23817         can't be negative.
23819 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
23821         PR target/105292
23822         * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
23823         true only for 8-byte vector modes.
23825 2022-05-10  Siddhesh Poyarekar  <siddhesh@gotplt.org>
23827         PR middle-end/70090
23828         * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
23829         (instrument_object_size): Get dynamic object size expression.
23831 2022-05-10  Jiufu Guo  <guojiufu@linux.ibm.com>
23833         PR preprocessor/101168
23834         * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
23835         Avoid empty identifier.
23837 2022-05-09  Qing Zhao  <qing.zhao@oracle.com>
23839         PR target/101891
23840         * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
23841         as a generic MMX mode instead of V4HImode.
23842         (zero_all_mm_registers): Use SET to zero instead of MOV for
23843         zeroing scratch registers.
23844         (ix86_zero_call_used_regs): Likewise.
23846 2022-05-09  liuhongt  <hongtao.liu@intel.com>
23848         PR target/105354
23849         * config/i386/i386-expand.cc
23850         (expand_vec_perm_pslldq_psrldq_por): New function.
23851         (ix86_expand_vec_perm_const_1): Try
23852         expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
23853         4/5-instruction sequence.
23855 2022-05-09  Martin Liška  <mliska@suse.cz>
23857         * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
23858         * system.h (STATIC_ASSERT): Define as static_assert for C++
23859         and fallback to array index in C.
23861 2022-05-09  Richard Biener  <rguenther@suse.de>
23863         PR tree-optimization/105517
23864         * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
23865         offset can be represented in the POINTER_PLUS_EXPR IL.
23866         (vn_reference_insert): Likewise.
23867         * poly-int.h (sext_hwi): Add poly version of sext_hwi.
23869 2022-05-09  Richard Biener  <rguenther@suse.de>
23871         * match.pd: Remove #if GIMPLE guards around ! using patterns.
23873 2022-05-09  liuhongt  <hongtao.liu@intel.com>
23875         PR target/105072
23876         * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
23877         New define_insn.
23878         (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
23879         define_insn_and_split.
23881 2022-05-09  Alex Coplan  <alex.coplan@arm.com>
23883         * cgraph.cc (cgraph_node::get_create): Don't dump if the current
23884         symtab state is PARSING.
23886 2022-05-09  Martin Liska  <mliska@suse.cz>
23888         * system.h (LIKELY): Define.
23889         (UNLIKELY): Likewise.
23890         * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
23891         macros.
23892         * dse.cc (set_position_unneeded): Likewise.
23893         (set_all_positions_unneeded): Likewise.
23894         (any_positions_needed_p): Likewise.
23895         (all_positions_needed_p): Likewise.
23896         * expmed.cc (flip_storage_order): Likewise.
23897         * genmatch.cc (dt_simplify::gen_1): Likewise.
23898         * ggc-common.cc (gt_pch_save): Likewise.
23899         * print-rtl.cc: Likewise.
23900         * rtl-iter.h (T>::array_type::~array_type): Likewise.
23901         (T>::next): Likewise.
23902         * rtl-ssa/internals.inl: Likewise.
23903         * rtl-ssa/member-fns.inl: Likewise.
23904         * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
23905         (rtx_properties::try_to_add_dest): Likewise.
23906         * rtlanal.h (growing_rtx_properties::repeat): Likewise.
23907         (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
23908         * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
23909         * sort.cc (likely): Likewise.
23910         (mergesort): Likewise.
23911         * wide-int.h (wi::eq_p): Likewise.
23912         (wi::ltu_p): Likewise.
23913         (wi::cmpu): Likewise.
23914         (wi::bit_and): Likewise.
23915         (wi::bit_and_not): Likewise.
23916         (wi::bit_or): Likewise.
23917         (wi::bit_or_not): Likewise.
23918         (wi::bit_xor): Likewise.
23919         (wi::add): Likewise.
23920         (wi::sub): Likewise.
23922 2022-05-09  Kito Cheng  <kito.cheng@sifive.com>
23924         * config/riscv/arch-canonicalize: Handle g correctly.
23926 2022-05-07  Marek Polacek  <polacek@redhat.com>
23928         PR c++/101833
23929         PR c++/47634
23930         * tree-core.h (struct attribute_spec): Update comment for HANDLER.
23932 2022-05-06  Jason Merrill  <jason@redhat.com>
23934         * diagnostic-color.cc: Add fnname and targs color entries.
23935         * doc/invoke.texi: Document them.
23937 2022-05-06  Jason Merrill  <jason@redhat.com>
23939         * vec.h (vec::iterate): Fix comment.
23941 2022-05-06   Michael Meissner  <meissner@linux.ibm.com>
23943         PR target/102059
23944         * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
23945         and -mpower10-fusion options for inlining purposes.
23947 2022-05-06  Christophe Lyon  <christophe.lyon@arm.com>
23949         * config/aarch64/iterators.md (GPF_TF_F16): Delete.
23951 2022-05-06  Marcel Vollweiler  <marcel@codesourcery.com>
23953         * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
23954         omp_runtime_apis array.
23956 2022-05-06  Hafiz Abid Qadeer  <abidh@codesourcery.com>
23958         * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
23959         (scan_sharing_clauses):  Check a restriction on allocate clause.
23961 2022-05-05  Sandra Loosemore  <sandra@codesourcery.com>
23963         * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
23964         and ORDERED clause conflict errors.  Add check for GRAINSIZE and
23965         NUM_TASKS on TASKLOOP.
23967 2022-05-05  Martin Liska  <mliska@suse.cz>
23969         * genautomata.cc (create_composed_state): Remove dead code.
23970         * graphite-poly.cc (print_pdrs): Likewise.
23971         * lto-wrapper.cc (run_gcc): Likewise.
23972         * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
23973         Likewise.
23975 2022-05-05  Martin Liska  <mliska@suse.cz>
23977         * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
23978         PROF_*.
23979         (gimple_gen_time_profiler): Likewise.
23981 2022-05-05  Martin Liska  <mliska@suse.cz>
23983         * value-prof.cc (stream_out_histogram_value): Remove sanity
23984         checking.
23986 2022-05-05  Richard Biener  <rguenther@suse.de>
23988         PR tree-optimization/104162
23989         * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
23990         &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
23991         becomes invariant.
23992         (vn_reference_insert): Likewise.
23994 2022-05-05  Richard Biener  <rguenther@suse.de>
23996         * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
23997         to real_value field.
23998         (tree_real_cst::value): Add real_value field.
23999         * tree.h (TREE_REAL_CST_PTR): Adjust.
24000         * tree.cc (build_real): Remove separate allocation.
24001         * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
24002         Likewise.
24004 2022-05-05  Richard Biener  <rguenther@suse.de>
24006         * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
24007         divisions with undefined overflow unconditionally.
24008         (pass_tree_ifcombine::execute): Rewrite stmts with undefined
24009         overflow to defined.
24011 2022-05-05  Richard Biener  <rguenther@suse.de>
24013         PR tree-optimization/105484
24014         * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
24015         whether the CFG changed.
24016         (gimple_expand_vec_exprs): When the CFG changed, clean it up.
24018 2022-05-05  Richard Biener  <rguenther@suse.de>
24020         PR tree-optimization/104595
24021         * tree-vect-patterns.cc (vect_recog_bool_pattern): For
24022         COND_EXPR do not fail if check_bool_pattern returns false.
24024 2022-05-04  Tobias Burnus  <tobias@codesourcery.com>
24026         * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
24027         item that is in an outer data-sharing clause.
24029 2022-05-04  Richard Biener  <rguenther@suse.de>
24031         PR tree-optimization/104658
24032         * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
24033         create VECTOR_BOOLEAN_TYPE_P extern defs.  Reset the vector
24034         type on nodes we promote.
24035         (vectorizable_bb_reduc_epilogue): Deal with externalized
24036         root.
24037         * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
24038         not allow VECTOR_BOOLEAN_TYPE_P extern defs.
24040 2022-05-04  Richard Biener  <rguenther@suse.de>
24042         PR tree-optimization/103116
24043         * tree-vect-stmts.cc (get_group_load_store_type): Handle the
24044         case we need peeling for gaps even though GROUP_GAP is zero.
24046 2022-05-04  Martin Liska  <mliska@suse.cz>
24048         * gengtype-state.cc (read_a_state_token): Remove dead code.
24049         * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
24051 2022-05-04  Richard Biener  <rguenther@suse.de>
24053         * gimplify.cc (gimplify_init_constructor): First gimplify,
24054         then simplify the result to a VECTOR_CST.
24056 2022-05-04  Jakub Jelinek  <jakub@redhat.com>
24058         * genconditions.cc (write_conditions): Append a { nullptr, -1 }
24059         element at the end of insn_conditions.
24060         (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
24061         ARRAY_SIZE (insn_conditions).
24063 2022-05-04  Christophe Lyon  <christophe.lyon@arm.com>
24065         PR target/104662
24066         * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
24067         vector of booleans and MVE is not enabled.
24069 2022-05-04  Richard Biener  <rguenther@suse.de>
24071         PR debug/105158
24072         * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
24073         Move debug stmts to the predecessor if moving to the
24074         destination is not possible.
24075         (remove_forwarder_block): Adjust.
24076         (remove_forwarder_block_with_phi): Likewise.
24078 2022-05-03  Roger Sayle  <roger@nextmovesoftware.com>
24080         PR tree-optimization/102950
24081         * range-op.cc (wi_optimize_signed_bitwise_op): New function to
24082         determine bounds of bitwise operations on signed types.
24083         (operator_bitwise_and::wi_fold): Call the above function.
24084         (operator_bitwise_or::wi_fold): Likewise.
24085         (operator_bitwise_xor::wi_fold): Likewise.  Additionally, the
24086         result can't be zero if the operands can't be equal.
24088 2022-05-03  Iain Sandoe  <iain@sandoe.co.uk>
24090         * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
24091         protocol class methods linker-visible.
24093 2022-05-03  Uroš Bizjak  <ubizjak@gmail.com>
24095         PR target/105079
24096         * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
24097         define_insn_and_split pattern.
24099 2022-05-03  Richard Biener  <rguenther@suse.de>
24101         PR middle-end/105083
24102         * tree-scalar-evolution.cc (scev_initialize): Verify we
24103         have appropriate loop state.
24104         * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
24105         loop init and finalization.
24107 2022-05-03  Richard Biener  <rguenther@suse.de>
24109         PR middle-end/105461
24110         * opts.cc (finish_options): Match the condition to
24111         disable flag_var_tracking to that of process_options.
24113 2022-05-03  Richard Biener  <rguenther@suse.de>
24115         * opts.cc: #undef OPTIONS_SET_P.
24116         (finish_options): Use opts_set instead of OPTIONS_SET_P.
24118 2022-05-03  Richard Biener  <rguenther@suse.de>
24120         PR tree-optimization/105394
24121         * tree-vect-generic.cc (expand_vector_condition): Adjust
24122         comp_width for non-integer mode masks as well.
24124 2022-05-03  Marcel Vollweiler  <marcel@codesourcery.com>
24126         * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
24127         omp_runtime_apis array.
24129 2022-05-02  Richard Biener  <rguenther@suse.de>
24131         * tree-scalar-evolution.cc (expression_expensive_p):
24132         Never consider mismatched calls as cheap.
24134 2022-05-02  Richard Biener  <rguenther@suse.de>
24136         PR tree-optimization/104240
24137         * tree-vect-slp.cc (op1_op0_map): New.
24138         (vect_get_operand_map): Handle compares.
24139         (vect_build_slp_tree_1): Support swapped operands for
24140         tcc_comparison.
24142 2022-05-02  Jakub Jelinek  <jakub@redhat.com>
24144         PR debug/105415
24145         * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
24146         if there is no symtab node for the VAR_DECL.
24148 2022-05-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24150         * gcov-io.cc (gcov_rewrite):  Clear the file error status.
24152 2022-05-02  Richard Biener  <rguenther@suse.de>
24154         PR tree-optimization/105437
24155         * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
24156         case where last_stmt alters control flow.
24158 2022-05-02  Richard Biener  <rguenther@suse.de>
24160         * dojump.cc (do_jump): Use CASE_CONVERT.
24161         * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
24163 2022-05-02  Jakub Jelinek  <jakub@redhat.com>
24165         * system.h: Include initializer_list.
24167 2022-05-01  Segher Boessenkool  <segher@kernel.crashing.org>
24169         * config/rs6000/constraints.md (Y constraint): Fix comment.
24171 2022-05-01  Aldy Hernandez  <aldyh@redhat.com>
24173         * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
24174         VR_RANGE before passing a piecewise range to set_range_info_raw.
24176 2022-04-30  Patrick Palka  <ppalka@redhat.com>
24178         * gengtype.cc (adjust_field_tree_exp): Remove.
24179         (adjust_field_type): Don't handle the "tree_exp" special attribute.
24180         * tree-core.h (struct tree_exp): Remove "special" and "desc"
24181         attributes.  Add "length" attribute.
24183 2022-04-29  Martin Jambor  <mjambor@suse.cz>
24185         PR ipa/100413
24186         * cgraph.cc (cgraph_node::remove): Release body of the node this
24187         is clone_of if appropriate.
24189 2022-04-29  Uroš Bizjak  <ubizjak@gmail.com>
24191         PR target/51954
24192         * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
24194 2022-04-29  Richard Biener  <rguenther@suse.de>
24196         * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
24197         (canonicalize_cond_expr_cond): Move here from gimple.cc,
24198         allow both COND_EXPR and GIMPLE_COND forms.
24199         * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
24200         * gimple.cc (canonicalize_cond_expr_cond): Remove here.
24201         * gimple.h (canonicalize_cond_expr_cond): Likewise.
24202         * gimple-loop-versioning.cc (loop_versioning::version_loop):
24203         Use is_gimple_condexpr_for_cond.
24204         * tree-parloops.cc (gen_parallel_loop): Likewise.
24205         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
24206         a proper cond expr after canonicalize_cond_expr_cond.
24207         Use is_gimple_condexpr_for_cond where appropriate.
24208         * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
24209         * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
24211 2022-04-29  Richard Biener  <rguenther@suse.de>
24213         * gimple-iterator.h (gsi_after_labels): Add overload for
24214         gimple_seq.
24215         (gsi_start_1): Rename to gsi_start and take a reference.
24216         (gsi_last_1): Likewise.
24217         * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
24218         * omp-low.cc (lower_rec_input_clauses): Likewise.
24219         (lower_omp_scan): Likewise.
24221 2022-04-29  Richard Biener  <rguenther@suse.de>
24223         PR tree-optimization/105431
24224         * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
24225         (powi_as_mults): Use absu_hwi.
24226         (gimple_expand_builtin_powi): Remove now pointless n != -n
24227         check.
24229 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
24231         * range-op.cc (empty_range_varying): Move to range-op.h.
24232         (range_true): Move to range.h.
24233         (range_false): Same.
24234         (range_true_and_false): Same.
24235         (enum bool_range_state): Move to range-op.h.
24236         (relop_early_resolve): Same.
24237         (operator_equal::op1_op2_relation): Abstract code to...
24238         (equal_op1_op2_relation): ...here.
24239         (operator_not_equal::op1_op2_relation): Abstract code to...
24240         (not_equal_op1_op2_relation): ...here.
24241         (operator_lt::op1_op2_relation): Abstract code to...
24242         (lt_op1_op2_relation): ...here.
24243         (operator_le::op1_op2_relation): Abstract code to...
24244         (le_op1_op2_relation): ...here.
24245         (operator_gt::op1_op2_relation): Abstract code to...
24246         (gt_op1_op2_relation): ...here.
24247         (operator_ge::op1_op2_relation): Abstract code to...
24248         (ge_op1_op2_relation): ...here.
24249         (class range_op_table): Move to range-op.h.
24250         * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
24251         (not_equal_op1_op2_relation): Same.
24252         (lt_op1_op2_relation): Same.
24253         (le_op1_op2_relation): Same.
24254         (gt_op1_op2_relation): Same.
24255         (ge_op1_op2_relation): Same.
24256         (enum bool_range_state): Same.
24257         (get_bool_state): Same.
24258         (empty_range_varying): Same.
24259         (relop_early_resolve): Same.
24260         (class range_op_table): Same.
24261         * range.h (range_true): Same.
24262         (range_false): Same.
24263         (range_true_and_false): Same.
24265 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
24267         * gimple-fold.cc (size_must_be_zero_p): Use reference
24268         instead of pointer
24269         * gimple-ssa-evrp-analyze.cc
24270         (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
24271         intersect to legacy_verbose_intersect.
24272         * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
24273         of pointer.
24274         * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
24275         instead of value_range_equiv.
24276         * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
24277         instead of pointer.
24278         (find_case_label_range): Same.
24279         * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
24280         (value_range_equiv::legacy_verbose_intersect): ...this.
24281         (value_range_equiv::union_): Rename to...
24282         (value_range_equiv::legacy_verbose_union_): ...this.
24283         * value-range-equiv.h (class value_range_equiv): Rename union and
24284         intersect to legacy_verbose_{intersect,union}.
24285         * value-range.cc (irange::union_): Rename to...
24286         (irange::legacy_verbose_union_): ...this.
24287         (irange::intersect): Rename to...
24288         (irange::legacy_verbose_intersect): ...this.
24289         * value-range.h (irange::union_): Rename union_ to
24290         legacy_verbose_union.
24291         (irange::intersect): Rename intersect to legacy_verbose_intersect.
24292         * vr-values.cc (vr_values::update_value_range): Same.
24293         (vr_values::extract_range_for_var_from_comparison_expr): Same.
24294         (vr_values::extract_range_from_cond_expr): Rename union_ to
24295         legacy_verbose_union.
24296         (vr_values::extract_range_from_phi_node): Same.
24298 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
24300         * gimple-ssa-evrp-analyze.cc
24301         (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
24302         that take a range.
24303         * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
24304         * ipa-prop.cc (ipcp_update_vr): Same.
24305         * tree-inline.cc (remap_ssa_name): Same.
24306         * tree-ssa-copy.cc (fini_copy_prop): Same.
24307         * tree-ssa-math-opts.cc (optimize_spaceship): Same.
24308         * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
24309         * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
24310         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
24311         * tree-ssa-strlen.cc (set_strlen_range): Same.
24312         (strlen_pass::handle_builtin_string_cmp): Same.
24313         * tree-ssanames.cc (set_range_info): Make static.
24314         (duplicate_ssa_name_range_info): Make static and add a new variant
24315         calling the static.
24316         * tree-ssanames.h (set_range_info): Remove version taking wide ints.
24317         (duplicate_ssa_name_range_info): Remove version taking a
24318         range_info_def and replace with a version taking SSA names.
24319         * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
24320         that take a range.
24321         (vect_do_peeling): Same.
24322         * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
24323         * vr-values.cc (simplify_truth_ops_using_ranges): Same.
24325 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
24327         * value-range.h (irange::irange): Use set_undefined.
24329 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
24331         * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
24332         irange::intersect (wide_int, wide_int).
24333         * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
24334         (adjust_imagpart_expr): Same.
24335         * value-range.h (irange::intersect (wide_int, wide_int)): Make
24336         private.
24338 2022-04-29  Richard Biener  <rguenther@suse.de>
24340         PR tree-optimization/104322
24341         * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
24343 2022-04-29  Richard Biener  <rguenther@suse.de>
24345         PR middle-end/105376
24346         * tree.cc (build_real): Special case dconst* arguments
24347         for decimal floating point types.
24349 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24351         * doc/gcov.texi (Profiling and Test Coverage in Freestanding
24352         Environments): New section.
24354 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24356         * doc/gcov-tool.texi: Document merge-stream subcommand.
24357         * doc/invoke.texi (fprofile-info-section): Mention merge-stream
24358         subcommand of gcov-tool.
24359         * gcov-tool.cc (gcov_profile_merge_stream): Declare.
24360         (print_merge_stream_usage_message): New.
24361         (merge_stream_usage): Likewise.
24362         (do_merge_stream): Likewise.
24363         (print_usage): Call print_merge_stream_usage_message().
24364         (main): Call do_merge_stream() to execute merge-stream subcommand.
24366 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24368         * gcov-io.cc (gcov_file_error): New enum.
24369         (gcov_var): Use gcov_file_error enum for the error member.
24370         (gcov_open): Use GCOV_FILE_NO_ERROR.
24371         (gcov_close): Use GCOV_FILE_WRITE_ERROR.
24372         (gcov_write): Likewise.
24373         (gcov_write_unsigned): Likewise.
24374         (gcov_write_string): Likewise.
24375         (gcov_read_bytes): Set error code if EOF is reached.
24376         (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
24378 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24380         * gcov-io.cc (GCOV_MODE_STDIN): Define.
24381         (gcov_position): For gcov-tool, return calculated position if file is
24382         stdin.
24383         (gcov_open):  For gcov-tool, use stdin if filename is NULL.
24384         (gcov_close): For gcov-tool, do not close stdin.
24385         (gcov_read_bytes): For gcov-tool, update position if file is stdin.
24386         (gcov_sync): For gcov-tool, discard input if file is stdin.
24388 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24390         * doc/invoke.texi (fprofile-info-section): Mention
24391         __gcov_filename_to_gcfn().  Use "freestanding" to match with C11
24392         standard language.  Fix minor example code issues.
24393         * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
24395 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24397         * gcov-io.cc (gcov_seek): Make it static.
24398         * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
24400 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24402         * gcov-tool.cc (gcov_do_dump): Add mode parameter.
24403         (gcov_output_files): Open files for reading and writing.
24405 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24407         * gcov-io.cc (gcov_open): Always use the mode parameter.
24408         * gcov-io.h (gcov_open): Declare it unconditionally.
24410 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24412         * gcov-tool.cc (gcov_profile_merge): Adjust return type.
24413         (profile_merge): Allow merging of directories which contain no profile
24414         files.
24416 2022-04-28  David Malcolm  <dmalcolm@redhat.com>
24418         * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
24419         fpath.txt output.
24421 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
24423         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
24424         temporary only if out overlaps compare_op, not when it overlaps
24425         op0 or op1.
24427 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
24429         PR lto/105399
24430         * cgraph.cc (cgraph_node::verify_node): Don't verify
24431         semantic_interposition flag against
24432         opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
24434 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
24436         PR target/105331
24437         * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
24438         temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
24439         of it.
24441 2022-04-28  Jonathan Wakely  <jwakely@redhat.com>
24443         * doc/install.texi (Configuration): Remove misleading text
24444         around LE PowerPC Linux multilibs.
24446 2022-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24448         PR d/103528
24449         * doc/install.texi (Tools/packages necessary for building GCC)
24450         (GDC): Document libphobos requirement.
24451         (Host/target specific installation notes for GCC, *-*-solaris2*):
24452         Document libphobos and GDC specifics.
24454 2022-04-28  Richard Biener  <rguenther@suse.de>
24456         PR tree-optimization/105219
24457         * tree-vect-loop.cc (vect_transform_loop): Disable
24458         special code narrowing the vectorized epilogue max
24459         iterations when peeling for alignment or gaps was in effect.
24461 2022-04-28  Xi Ruoyao  <xry111@mengyan1223.wang>
24463         * config/loongarch/loongarch.cc
24464         (loongarch_flatten_aggregate_field): Ignore empty fields for
24465         RECORD_TYPE.
24467 2022-04-27  Lulu Cheng  <chenglulu@loongson.cn>
24469         * config/loongarch/loongarch.md: Add fdiv define_expand template,
24470         then generate floating-point division and floating-point reciprocal
24471         instructions.
24473 2022-04-27  Lulu Cheng  <chenglulu@loongson.cn>
24475         * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
24476         to PLV instruction templates.
24478 2022-04-27  Richard Biener  <rguenther@suse.de>
24480         PR middle-end/104492
24481         * gimple-ssa-warn-access.cc
24482         (pass_waccess::warn_invalid_pointer): Exclude equality compare
24483         diagnostics for all kind of invalidations.
24484         (pass_waccess::check_dangling_uses): Fix post-dominator query.
24485         (pass_waccess::check_pointer_uses): Likewise.
24487 2022-04-27  Andreas Krebbel  <krebbel@linux.ibm.com>
24489         PR target/102024
24490         * config/s390/s390-protos.h (s390_function_arg_vector): Remove
24491         prototype.
24492         * config/s390/s390.cc (s390_single_field_struct_p): New function.
24493         (s390_function_arg_vector): Invoke s390_single_field_struct_p.
24494         (s390_function_arg_float): Likewise.
24496 2022-04-27  Jakub Jelinek  <jakub@redhat.com>
24498         PR sanitizer/105396
24499         * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
24500         where offset is bigger than off but smaller than m_prev_offset + 32
24501         bits by pushing one or more 0 bytes.  Sink the
24502         m_shadow_bytes.safe_push (value); flush_if_full (); statements from
24503         all cases to the end of the function.
24505 2022-04-27  Kewen Lin  <linkw@linux.ibm.com>
24507         PR target/105271
24508         * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
24509         stanza.
24511 2022-04-26  Thomas Schwinge  <thomas@codesourcery.com>
24513         * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
24514         data-share memory exhausted" error more verbose.
24516 2022-04-26  Martin Liska  <mliska@suse.cz>
24518         PR lto/105364
24519         * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
24520         (run_gcc): Parse OPT_fdiagnostics_urls_.
24521         (main): Initialize global_dc.
24523 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
24525         PR rtl-optimization/105314
24526         * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
24527         operand is equal to if_info->x, instead use the non-zero operand
24528         as one of the operands of AND with if_info->x as target.
24530 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
24532         PR tree-optimization/105374
24533         * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
24534         !fold_convertible_p rather than assuming fold_convert must succeed.
24536 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
24538         PR target/105367
24539         * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
24540         el_mode == DFmode ? double_type_node : float_type_node instead of
24541         TREE_TYPE (type_in) as first arguments to mathfn_built_in.
24543 2022-04-25  David Malcolm  <dmalcolm@redhat.com>
24545         PR analyzer/104308
24546         * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
24547         the location of new_stmt in all places that don't already set it,
24548         whether explicitly, or via a call to gsi_replace.
24550 2022-04-25  Paul A. Clarke  <pc@us.ibm.com>
24552         * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
24554 2022-04-25  Andrew MacLeod  <amacleod@redhat.com>
24556         PR tree-optimization/105276
24557         * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
24558         existing global range with calculated value.
24560 2022-04-25  Richard Biener  <rguenther@suse.de>
24562         PR tree-optimization/105368
24563         * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
24565 2022-04-25  Richard Biener  <rguenther@suse.de>
24567         PR tree-optimization/100810
24568         * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
24569         (find_ssa_undef): New function.
24570         (add_candidate_1): Avoid adding derived candidates with
24571         undefined SSA names and mark the original ones.
24572         (determine_group_iv_cost_generic): Reject rewriting
24573         uses with a different IV when that involves undefined SSA names.
24575 2022-04-25  Steven G. Kargl  <kargl@gcc.gnu.org>
24577         PR target/89125
24578         * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
24579         bsd_libc_has_function.
24580         * targhooks.cc (bsd_libc_has_function): New function.
24581         Expand the supported math functions to inclue C99 libm.
24582         * targhooks.h (bsd_libc_has_function): New Prototype.
24584 2022-04-25  Richard Biener  <rguenther@suse.de>
24586         PR rtl-optimization/105231
24587         * combine.cc (distribute_notes): Assert that a REG_EH_REGION
24588         with landing pad > 0 is from i3.  Put any REG_EH_REGION note
24589         on i3 or drop it if the insn can not trap.
24590         (try_combine): Ensure that we can merge REG_EH_REGION notes
24591         with non-call exceptions.  Ensure we are not splitting a
24592         trapping part of an insn with non-call exceptions when there
24593         is any REG_EH_REGION note to preserve.
24595 2022-04-25  Hongyu Wang  <hongyu.wang@intel.com>
24597         PR target/105339
24598         * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
24599         Add parentheses for parameters and djust format.
24600         (_mm512_mask_scalef_round_pd): Ditto.
24601         (_mm512_maskz_scalef_round_pd): Ditto.
24602         (_mm512_scalef_round_ps): Ditto.
24603         (_mm512_mask_scalef_round_ps): Ditto.
24604         (_mm512_maskz_scalef_round_ps): Ditto.
24605         (_mm_scalef_round_sd): Use _mm_undefined_pd.
24606         (_mm_scalef_round_ss): Use _mm_undefined_ps.
24607         (_mm_mask_scalef_round_sd): New macro.
24608         (_mm_mask_scalef_round_ss): Ditto.
24609         (_mm_maskz_scalef_round_sd): Ditto.
24610         (_mm_maskz_scalef_round_ss): Ditto.
24612 2022-04-23  Jakub Jelinek  <jakub@redhat.com>
24614         PR target/105338
24615         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
24616         op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
24617         cases.
24619 2022-04-22  Segher Boessenkool  <segher@kernel.crashing.org>
24621         PR target/105334
24622         * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
24623         (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
24624         (pack<mode>_hard for FMOVE128): ... this...
24625         (pack<mode>_soft for FMOVE128): ... and this.
24627 2022-04-22  Paul A. Clarke  <pc@us.ibm.com>
24629         * doc/extend.texi: Correct "This" to "These".
24631 2022-04-22  Jakub Jelinek  <jakub@redhat.com>
24633         PR rtl-optimization/105333
24634         * rtlanal.cc (replace_rtx): Use simplify_subreg or
24635         simplify_unary_operation if CONST_SCALAR_INT_P rather than just
24636         CONST_INT_P.
24638 2022-04-21  Segher Boessenkool  <segher@kernel.crashing.org>
24640         PR target/103197
24641         PR target/102146
24642         * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
24643         the "Z" alternatives in {l,st}{f,xs}iwzx.
24644         (zero_extendhi<mode>2 for EXTHI): Ditto.
24645         (zero_extendsi<mode>2 for EXTSI): Ditto.
24646         (*movsi_internal1): Ditto.
24647         (*mov<mode>_internal1 for QHI): Ditto.
24648         (movsd_hardfloat): Ditto.
24650 2022-04-21  Martin Liska  <mliska@suse.cz>
24652         * configure.ac: Enable compressed debug sections for mold
24653         linker.
24654         * configure: Regenerate.
24656 2022-04-21  Jakub Jelinek  <jakub@redhat.com>
24658         PR debug/105203
24659         * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
24660         on DEBUG_INSNs.
24662 2022-04-20  Richard Biener  <rguenther@suse.de>
24664         PR tree-optimization/104912
24665         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
24666         the cost model check to a separate BB to make sure it is
24667         checked first and not combined with other version checks.
24669 2022-04-20  Richard Biener  <rguenther@suse.de>
24671         PR tree-optimization/105312
24672         * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
24673         VCOND and VCONDU for EQ and NE.
24675 2022-04-20  Jan Hubicka  <hubicka@ucw.cz>
24677         PR ipa/103818
24678         * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
24679         poly_offset_int to avoid overflow.
24680         (modref_access_node::update2): likewise.
24682 2022-04-20  Jakub Jelinek  <jakub@redhat.com>
24684         PR ipa/105306
24685         * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
24686         to opt_for_fn (decl, flag_semantic_interposition).
24687         * cgraphclones.cc (cgraph_node::create_clone): Copy over
24688         semantic_interposition flag.
24690 2022-04-19  Sergei Trofimovich  <siarheit@google.com>
24692         PR gcov-profile/105282
24693         * value-prof.cc (stream_out_histogram_value): Allow negative counts
24694         on HIST_TYPE_INDIR_CALL.
24696 2022-04-19  Jakub Jelinek  <jakub@redhat.com>
24698         PR target/105257
24699         * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
24700         use gen_raw_REG instead of gen_rtx_REG and copy over also
24701         ORIGINAL_REGNO.  Use return 0; instead of /* fallthrough */.
24703 2022-04-19  Richard Biener  <rguenther@suse.de>
24705         PR tree-optimization/104010
24706         PR tree-optimization/103941
24707         * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
24708         we run into stmts in patterns continue walking those
24709         for uses outside of the vectorized region instead of
24710         marking the lane live.
24712 2022-04-18  Hans-Peter Nilsson  <hp@axis.com>
24714         * doc/install.texi <CRIS>: Remove references to removed websites and
24715         adjust for cris-*-elf being the only remaining toolchain.
24717 2022-04-18  Hans-Peter Nilsson  <hp@axis.com>
24719         * doc/invoke.texi <CRIS>: Remove references to options for removed
24720         subtarget cris-axis-linux-gnu and tweak wording accordingly.
24722 2022-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
24724         * doc/install.texi (Specific): Adjust mingw-w64 download link.
24726 2022-04-15  Hongyu Wang  <hongyu.wang@intel.com>
24728         * config/i386/smmintrin.h: Correct target pragma from sse4.1
24729         and sse4.2 to crc32 for crc32 intrinsics.
24731 2022-04-14  Indu Bhagat  <indu.bhagat@oracle.com>
24733         PR debug/105089
24734         * ctfc.cc (ctf_dvd_ignore_insert): New function.
24735         (ctf_dvd_ignore_lookup): Likewise.
24736         (ctf_add_variable): Keep track of non-defining decl DIEs.
24737         (new_ctf_container): Initialize the new hash-table.
24738         (ctfc_delete_container): Empty hash-table.
24739         * ctfc.h (struct ctf_container): Add new hash-table.
24740         (ctf_dvd_ignore_lookup): New declaration.
24741         (ctf_add_variable): Add additional argument.
24742         * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
24743         record for non-defining decl for which a defining decl exists
24744         in the same TU.
24745         (ctf_preprocess): Defer updating the number of global objts
24746         until here.
24747         (output_ctf_header): Use ctfc_vars_list_count as some CTF
24748         variables may not make it to the final output.
24749         (output_ctf_vars): Likewise.
24750         * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
24751         if this is known to be a non-defining decl DIE.
24753 2022-04-14  Indu Bhagat  <indu.bhagat@oracle.com>
24755         * ctfc.h (struct ctf_container): Introduce a new member.
24756         * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
24757         variable.
24759 2022-04-14  Jakub Jelinek  <jakub@redhat.com>
24761         PR target/105247
24762         * simplify-rtx.cc (simplify_const_binary_operation): For shifts
24763         or rotates by VOIDmode constant integer shift count use word_mode
24764         for the operand if int_mode is narrower than word.
24766 2022-04-14  Robin Dapp  <rdapp@linux.ibm.com>
24768         * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
24769         (s390_get_unit_mask): Likewise.
24770         (s390_is_fpd): Likewise.
24771         (s390_is_fxd): Likewise.
24772         * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
24773         * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
24774         Add z16.
24775         (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
24776         Likewise.
24777         * config/s390/3931.md: New file.
24779 2022-04-13  Richard Sandiford  <richard.sandiford@arm.com>
24781         PR tree-optimization/105254
24782         * config/aarch64/aarch64.cc
24783         (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
24784         loop_vec_info as argument.  Restrict the unroll factor to values
24785         that divide the VF.
24786         (aarch64_vector_costs::finish_cost): Update call accordingly.
24788 2022-04-13  Richard Biener  <rguenther@suse.de>
24790         PR tree-optimization/105263
24791         * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
24792         negates in multiplication chains with DFP.
24794 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
24796         PR middle-end/105253
24797         * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
24798         use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
24799         comparisons or tree_nop_conversion_p checks.
24801 2022-04-13  Hongyu Wang  <hongyu.wang@intel.com>
24803         PR target/103069
24804         * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
24805         Add missing set to target_val at pause label.
24807 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
24809         PR target/105234
24810         * attribs.cc (decl_attributes): Don't set
24811         DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
24812         NULL.
24814 2022-04-13  Richard Biener  <rguenther@suse.de>
24816         PR tree-optimization/105250
24817         * fold-const.cc (fold_convertible_p): Revert
24818         r12-7979-geaaf77dd85c333, instead check for size equality
24819         of the vector types involved.
24821 2022-04-13  Richard Biener  <rguenther@suse.de>
24823         Revert:
24824         2022-04-13  Richard Biener  <rguenther@suse.de>
24826         PR tree-optimization/104912
24827         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
24828         the cost model check to a separate BB to make sure it is
24829         checked first and not combined with other version checks.
24831 2022-04-13  Richard Biener  <rguenther@suse.de>
24833         PR tree-optimization/104912
24834         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
24835         the cost model check to a separate BB to make sure it is
24836         checked first and not combined with other version checks.
24838 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
24840         * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
24842 2022-04-12  Antoni Boucher  <bouanto@zoho.com>
24844         PR jit/104072
24845         * reginfo.cc: New functions (clear_global_regs_cache,
24846         reginfo_cc_finalize) to avoid an issue where compiling the same
24847         code multiple times gives an error about assigning the same
24848         register to 2 global variables.
24849         * rtl.h: New function (reginfo_cc_finalize).
24850         * toplev.cc: Call it.
24852 2022-04-12  Antoni Boucher  <bouanto@zoho.com>
24854         PR jit/104071
24855         * toplev.cc: Call the new function tree_cc_finalize in
24856         toplev::finalize.
24857         * tree.cc: New functions (clear_nonstandard_integer_type_cache
24858         and tree_cc_finalize) to clear the cache of non-standard integer
24859         types to avoid having issues with some optimizations of
24860         bitcast where the SSA_NAME will have a size of a cached
24861         integer type that should have been invalidated, causing a
24862         comparison of integer constant to fail.
24863         * tree.h: New function (tree_cc_finalize).
24865 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
24867         PR target/97348
24868         * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
24869         * config/nvptx/nvptx.opt (misa): Adjust comment.
24871 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
24873         Revert:
24874         2022-03-03  Tom de Vries  <tdevries@suse.de>
24876         * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
24878 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
24880         Revert:
24881         2022-03-31  Tom de Vries  <tdevries@suse.de>
24883         * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
24885 2022-04-12  Richard Biener  <rguenther@suse.de>
24887         PR ipa/104303
24888         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
24889         include local escaped memory as obviously necessary stores.
24891 2022-04-12  Richard Biener  <rguenther@suse.de>
24893         PR tree-optimization/105235
24894         * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
24895         return whether the CFG changed.
24896         (execute_cse_sincos_1): Adjust.
24898 2022-04-12  Przemyslaw Wirkus  <Przemyslaw.Wirkus@arm.com>
24900         PR target/104144
24901         * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
24902         (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
24903         (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
24904         (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
24905         (MULTILIB_REUSE): Remove remap rules for Armv9-a.
24906         * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
24907         (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
24909 2022-04-12  Richard Biener  <rguenther@suse.de>
24911         PR tree-optimization/105232
24912         * tree.cc (component_ref_size): Bail out for too large
24913         or non-constant sizes.
24915 2022-04-12  Richard Biener  <rguenther@suse.de>
24917         PR tree-optimization/105226
24918         * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
24919         we can split the exit of an outer loop we choose to version.
24921 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
24923         * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
24924         ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
24925         ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
24926         ix86_emit_swdivsf, ix86_emit_swsqrtsf,
24927         ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
24928         Formatting fix.
24929         * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
24931 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
24933         PR target/105214
24934         * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
24935         do_pending_stack_adjust.
24937 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
24939         PR rtl-optimization/105211
24940         * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
24941         fails for TREE_TYPE (arg), retry it with
24942         TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
24943         fails, emit call normally.
24945 2022-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>
24947         * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
24948         * config.gcc: Add z16 as march/mtune switch.
24949         * config/s390/driver-native.cc (s390_host_detect_local_cpu):
24950         Recognize z16 with -march=native.
24951         * config/s390/s390-opts.h (enum processor_type): Rename
24952         PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
24953         * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
24954         (PROCESSOR_3931_Z16): ... throughout the file.
24955         (s390_processor processor_table): Add z16 as cpu string.
24956         * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
24957         PF_Z16.
24958         (TARGET_CPU_ARCH14): Rename to ...
24959         (TARGET_CPU_Z16): ... this.
24960         (TARGET_CPU_ARCH14_P): Rename to ...
24961         (TARGET_CPU_Z16_P): ... this.
24962         (TARGET_ARCH14): Rename to ...
24963         (TARGET_Z16): ... this.
24964         (TARGET_ARCH14_P): Rename to ...
24965         (TARGET_Z16_P): ... this.
24966         * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
24967         check TARGET_Z16 instead of TARGET_ARCH14.
24968         * config/s390/s390.opt: Add z16 to processor_type.
24969         * doc/invoke.texi: Document z16 and arch14.
24971 2022-04-12  chenglulu  <chenglulu@loongson.cn>
24973         * config/loongarch/loongarch.cc: Fix bug for
24974         tmpdir-g++.dg-struct-layout-1/t033.
24976 2022-04-11  Peter Bergner  <bergner@linux.ibm.com>
24978         PR target/104894
24979         * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
24980         to longcall functions.
24982 2022-04-11  Jason Merrill  <jason@redhat.com>
24984         * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
24986 2022-04-11  Segher Boessenkool  <segher@kernel.crashing.org>
24988         PR target/105213
24989         PR target/103623
24990         * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
24992 2022-04-11  Jakub Jelinek  <jakub@redhat.com>
24994         PR tree-optimization/105218
24995         * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
24996         more than one predecessor or phi's bb more than 2 predecessors,
24997         reset phi result uses instead of adding a debug temp.
24999 2022-04-11  Kito Cheng  <kito.cheng@sifive.com>
25001         PR target/104853
25002         * config.gcc: Pass -misa-spec to arch-canonicalize and
25003         multilib-generator.
25004         * config/riscv/arch-canonicalize: Adding -misa-spec option.
25005         (SUPPORTED_ISA_SPEC): New.
25006         (arch_canonicalize): New argument `isa_spec`.
25007         Handle multiple ISA spec versions.
25008         * config/riscv/multilib-generator: Adding -misa-spec option.
25010 2022-04-11  Kito Cheng  <kito.cheng@sifive.com>
25012         * config/riscv/arch-canonicalize: Add TODO item.
25013         (IMPLIED_EXT): Sync.
25014         (arch_canonicalize): Checking until no change.
25016 2022-04-11  Tamar Christina  <tamar.christina@arm.com>
25018         PR target/105197
25019         * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
25020         not masked.
25022 2022-04-11  Jason Merrill  <jason@redhat.com>
25024         PR c++/100370
25025         * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
25026         deref == -1.
25028 2022-04-11  Jakub Jelinek  <jakub@redhat.com>
25030         PR tree-optimization/104639
25031         * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
25032         (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
25033         into x != cst3.
25035 2022-04-11  Jeff Law  <jeffreyalaw@gmail.com>
25037         * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
25038         sign bit of the source ends up in CC.
25040 2022-04-09  Jan Hubicka  <hubicka@ucw.cz>
25042         PR ipa/103376
25043         * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
25044         flag.
25046 2022-04-09  Jan Hubicka  <hubicka@ucw.cz>
25048         * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
25049         nondeterministic and side_effects flags.
25051 2022-04-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
25053         PR target/105157
25054         * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
25055         * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
25056         (TARGET_CPU_MASK): Likewise.
25057         (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
25058         * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
25059         (aarch64_get_arch): Likewise.
25060         (aarch64_override_options): Use TARGET_CPU_NBITS.
25062 2022-04-08  Richard Biener  <rguenther@suse.de>
25064         PR tree-optimization/105198
25065         * tree-predcom.cc (find_looparound_phi): Check whether
25066         the found memory location of the entry value is clobbered
25067         inbetween the value we want to use and loop entry.
25069 2022-04-08  Jakub Jelinek  <jakub@redhat.com>
25071         PR tree-optimization/105189
25072         * fold-const.cc (make_range_step): Fix up handling of
25073         (unsigned) x +[low, -] ranges for signed x if low fits into
25074         typeof (x).
25076 2022-04-08  Richard Biener  <rguenther@suse.de>
25078         PR tree-optimization/105175
25079         * tree-vect-stmts.cc (vectorizable_operation): Suppress
25080         -Wvector-operation-performance if using emulated vectors.
25081         * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
25082         -Wvector-operation-performance when suppressed.
25083         (expand_vector_parallel): Likewise.
25084         (expand_vector_comparison): Likewise.
25085         (expand_vector_condition): Likewise.
25086         (lower_vec_perm): Likewise.
25087         (expand_vector_conversion): Likewise.
25089 2022-04-07  Tamar Christina  <tamar.christina@arm.com>
25091         PR target/104409
25092         * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
25093         (aarch64_general_init_builtins): Move LS64 code.
25094         * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
25095         arm_acle.h
25096         * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
25097         * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
25099 2022-04-07  Richard Biener  <rguenther@suse.de>
25100             Jan Hubicka  <hubicka@ucw.cz>
25102         PR ipa/104303
25103         * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
25104         ref_may_alias_global_p, ref_may_alias_global_p,
25105         stmt_may_clobber_global_p, pt_solution_includes_global): Add
25106         bool parameters indicating whether escaped locals should be
25107         considered global.
25108         * tree-ssa-structalias.cc (pt_solution_includes_global):
25109         When the new escaped_nonlocal_p flag is true also consider
25110         pt->vars_contains_escaped.
25111         * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
25112         Pass down new escaped_nonlocal_p flag.
25113         (ref_may_alias_global_p): Likewise.
25114         (stmt_may_clobber_global_p): Likewise.
25115         (ref_may_alias_global_p_1): Likewise.  For decls also
25116         query the escaped solution if true.
25117         (ref_may_access_global_memory_p): Remove.
25118         (modref_may_conflict): Use ref_may_alias_global_p with
25119         escaped locals considered global.
25120         (ref_maybe_used_by_stmt_p): Adjust.
25121         * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
25122         Likewise.
25123         * tree-ssa-dse.cc (dse_classify_store): Likewise.
25124         * trans-mem.cc (thread_private_new_memory): Likewise, but
25125         consider escaped locals global.
25126         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
25128 2022-04-07  Richard Biener  <rguenther@suse.de>
25130         PR tree-optimization/105185
25131         * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
25132         modref query again.
25134 2022-04-07  Tamar Christina  <tamar.christina@arm.com>
25136         PR target/104049
25137         * config/aarch64/aarch64-simd.md
25138         (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
25139         (reduc_plus_scal_<mode>): ... This.
25140         (reduc_plus_scal_v4sf): Moved.
25141         (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
25142         (reduc_plus_scal_v2si): ... This.
25144 2022-04-07  Jakub Jelinek  <jakub@redhat.com>
25146         PR tree-optimization/102586
25147         * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
25148         langhook.
25149         * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
25150         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
25151         * gimple-fold.cc (clear_padding_type): Use ftype instead of
25152         TREE_TYPE (field) some more.  For artificial FIELD_DECLs without
25153         name try the lang_hooks.types.classtype_as_base langhook and
25154         if it returns non-NULL, use that instead of ftype for recursive call.
25156 2022-04-07  Jakub Jelinek  <jakub@redhat.com>
25158         PR tree-optimization/105150
25159         * tree.cc (tree_builtin_call_types_compatible_p): New function.
25160         (get_call_combined_fn): Use it.
25162 2022-04-07  Richard Biener  <rguenther@suse.de>
25164         PR middle-end/105165
25165         * tree-complex.cc (expand_complex_asm): Sorry for asm goto
25166         _Complex outputs.
25168 2022-04-07  liuhongt  <hongtao.liu@intel.com>
25170         * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
25171         Removed.
25172         (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
25173         for mask_applied.
25174         (<code><mode>3<mask_name>): Ditto.
25175         (*<code><mode>3<mask_name>): Ditto.
25176         (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
25177         real instruction.
25178         (VFB_512): Ditto.
25179         (VFB): Ditto.
25181 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
25183         PR rtl-optimization/104985
25184         * combine.cc (struct undo): Add where.regno member.
25185         (do_SUBST_MODE): Rename to ...
25186         (subst_mode): ... this.  Change first argument from rtx * into int,
25187         operate on regno_reg_rtx[regno] and save regno into where.regno.
25188         (SUBST_MODE): Remove.
25189         (try_combine): Use subst_mode instead of SUBST_MODE, change first
25190         argument from regno_reg_rtx[whatever] to whatever.  For UNDO_MODE, use
25191         regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
25192         (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
25193         instead of *undo->where.r.
25194         (simplify_set): Use subst_mode instead of SUBST_MODE, change first
25195         argument from regno_reg_rtx[whatever] to whatever.
25197 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
25199         PR target/105069
25200         * config/sh/sh.opt (mdiv=): Add Save.
25202 2022-04-06  Martin Liska  <mliska@suse.cz>
25204         PR driver/105096
25205         * common.opt: Document properly based on what it does.
25206         * gcc.cc (display_help): Unify with what we have in common.opt.
25207         * opts.cc (common_handle_option): Do not print undocumented
25208         options.
25210 2022-04-06  Xi Ruoyao  <xry111@mengyan1223.wang>
25212         * config/mips/mips.cc (mips_fpr_return_fields): Ignore
25213         cxx17_empty_base_field_p fields and set an indicator.
25214         (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
25215         (mips_function_value_1): Inform psABI change about C++17 empty
25216         bases.
25218 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
25220         PR tree-optimization/105150
25221         * gimple.cc (gimple_builtin_call_types_compatible_p): Use
25222         builtin_decl_explicit here...
25223         (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
25224         here.
25226 2022-04-06  Richard Biener  <rguenther@suse.de>
25228         PR tree-optimization/105173
25229         * tree-ssa-reassoc.cc (find_insert_point): Get extra
25230         insert_before output argument and compute it.
25231         (insert_stmt_before_use): Adjust.
25232         (rewrite_expr_tree): Likewise.
25234 2022-04-06  Richard Biener  <rguenther@suse.de>
25236         PR ipa/105166
25237         * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
25238         out for non-pointer arguments.
25240 2022-04-06  Richard Biener  <rguenther@suse.de>
25242         PR tree-optimization/105163
25243         * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
25244         negated abnormals.
25246 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
25248         PR tree-optimization/105150
25249         * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
25250         For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
25251         preferrably on builtin_decl_explicit decl rather than fndecl.
25252         * tree-ssa-strlen.cc (valid_builtin_call): Don't call
25253         gimple_builtin_call_types_compatible_p here.
25255 2022-04-06  Richard Sandiford  <richard.sandiford@arm.com>
25257         PR tree-optimization/103761
25258         * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
25259         the ncopies parameter with an slp_node parameter.  Calculate the
25260         number of vectors based on it and vectype.  Rename lambda to
25261         group_memory_nvectors.
25262         (vectorizable_store, vectorizable_load): Update calls accordingly.
25264 2022-04-06  Martin Liska  <mliska@suse.cz>
25266         * doc/invoke.texi: Document it.
25268 2022-04-06  Richard Biener  <rguenther@suse.de>
25270         PR tree-optimization/105148
25271         * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
25272         2 and 3 of ARRAY_REFs.
25274 2022-04-06  Roger Sayle  <roger@nextmovesoftware.com>
25276         * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
25277         (*andnottf3): Replace with...
25278         (*andnot<mode>3): New define_insn using ANDNOT_MODE.
25280 2022-04-06  Richard Biener  <rguenther@suse.de>
25282         PR tree-optimization/105142
25283         * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
25284         basic-block parameter.
25285         (maybe_fold_or_comparisons): Likewise.
25286         * gimple-fold.cc (follow_outer_ssa_edges): New.
25287         (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
25288         when an outer condition basic-block is specified.
25289         (and_comparisons_1, and_var_with_comparison,
25290         and_var_with_comparison_1, or_comparisons_1,
25291         or_var_with_comparison, or_var_with_comparison_1): Receive and pass
25292         down the outer condition basic-block.
25293         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
25294         basic-block of the outer condition.
25296 2022-04-06  Kewen Lin  <linkw@linux.ibm.com>
25298         PR target/105002
25299         * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
25300         comparison codes UNLT/UNLE/UNGT/UNGE.
25302 2022-04-05  David Malcolm  <dmalcolm@redhat.com>
25304         * doc/extend.texi (Common Function Attributes): Document that
25305         'access' does not imply 'nonnull'.
25307 2022-04-05  Uroš Bizjak  <ubizjak@gmail.com>
25309         PR target/105139
25310         * config/i386/mmx.md (*movv2qi_internal):
25311         Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
25313 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
25315         * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
25316         define_expand and turn operands 0 and 1 from REGs to MEMs.
25317         (*aarch64_cpymemdi): New pattern.
25318         (aarch64_setmemdi): Turn into a define_expand and turn operand 0
25319         from a REG to a MEM.
25320         (*aarch64_setmemdi): New pattern.
25321         * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
25322         copy_to_mode_reg on all three registers.  Replace the original
25323         MEM addresses rather than creating wild reads and writes.
25324         (aarch64_expand_setmem_mops): Likewise for the size and for the
25325         destination memory and address.
25327 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
25329         PR target/103147
25330         * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
25331         * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
25332         from aarch64_simd_switcher.
25333         * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
25334         New variable.
25335         (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
25336         (register_tuple_type): Add more asserts.  Expect the alignment
25337         of the structure to be subject to flag_pack_struct and
25338         maximum_field_alignment.  Set aarch64_simd_tuple_modes.
25339         (aarch64_simd_switcher::aarch64_simd_switcher): New function.
25340         (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
25341         (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
25342         (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
25343         while calling aarch64_init_simd_builtins.
25344         * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
25345         (sve_switcher::~sve_switcher): Remove code now performed by
25346         aarch64_simd_switcher.
25348 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
25350         PR target/104897
25351         * config/aarch64/aarch64-sve-builtins.cc
25352         (function_resolver::infer_vector_or_tuple_type): Use error_n
25353         for "%d vectors" messages.
25355 2022-04-05  Chung-Lin Tang  <cltang@codesourcery.com>
25357         * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
25358         argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
25359         current clause.
25361 2022-04-05  Richard Biener  <rguenther@suse.de>
25363         PR c/105151
25364         * passes.def (pass_walloca): Move early instance into
25365         pass_build_ssa_passes to make SSA form available.
25367 2022-04-05  liuhongt  <hongtao.liu@intel.com>
25369         PR target/101908
25370         * config/i386/i386.cc (ix86_split_stlf_stall_load): New
25371         function
25372         (ix86_reorg): Call ix86_split_stlf_stall_load.
25373         * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
25374         param.
25376 2022-04-05  Alexandre Oliva  <oliva@adacore.com>
25378         * targhooks.cc (default_zero_call_used_regs): Attempt to group
25379         regs that the target refuses to use in their natural modes.
25380         (zcur_select_mode_rtx): New.
25381         * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
25382         (hard_regno_max_nregs): Define.
25383         * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
25385 2022-04-04  Alex Coplan  <alex.coplan@arm.com>
25387         * doc/match-and-simplify.texi: Fix typos.
25389 2022-04-04  Jakub Jelinek  <jakub@redhat.com>
25391         PR target/105144
25392         * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
25393         only if configured with --enable-maintainer-mode, otherwise compare
25394         tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
25395         if they differ, emit a message and fail.
25397 2022-04-04  Jakub Jelinek  <jakub@redhat.com>
25399         PR target/105144
25400         * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
25401         * config/aarch64/aarch64-tune.md: Regenerated.
25403 2022-04-04  Richard Biener  <rguenther@suse.de>
25405         PR tree-optimization/105132
25406         * tree-vect-stmts.cc (vectorizable_operation): Check that
25407         the input vectors have the same number of elements.
25409 2022-04-04  Richard Biener  <rguenther@suse.de>
25411         PR middle-end/105140
25412         * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
25414 2022-04-03  Jeff Law  <jeffreyalaw@gmail.com>
25416         PR target/104987
25417         * config/iq2000/iq2000.md (bbi): New attribute,  default to no.
25418         (delay slot descripts): Use different delay slot description when
25419         the insn as the "bbi" attribute.
25420         (bbi, bbin patterns): Set the bbi attribute to yes.
25422 2022-04-03  Jakub Jelinek  <jakub@redhat.com>
25424         PR target/105123
25425         * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
25426         using word as target for expand_simple_binop when doing ASHIFT and
25427         IOR.
25429 2022-04-02  Xi Ruoyao  <xry111@mengyan1223.wang>
25431         * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
25432         NULL before dereferencing it.
25434 2022-04-01  Qing Zhao  <qing.zhao@oracle.com>
25436         * config/i386/i386.cc (zero_all_st_registers): Return the value of
25437         num_of_st.
25438         (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
25439         the return value of zero_all_st_registers.
25440         * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
25441         * function.cc (gen_call_used_regs_seq): Add an assertion.
25442         * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
25444 2022-04-01  Xi Ruoyao  <xry111@mengyan1223.wang>
25446         PR target/102024
25447         * config/mips/mips.cc (mips_function_arg): Ignore zero-width
25448         fields, and inform if it causes a psABI change.
25450 2022-04-01  Xi Ruoyao  <xry111@mengyan1223.wang>
25452         PR target/102024
25453         * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
25454         zero-width bit-fields and set up an indicator.
25455         (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
25456         (mips_function_value_1): Diagnose when the presense of a C++
25457         zero-width bit-field changes function returning in GCC 12.
25459 2022-04-01  Jakub Jelinek  <jakub@redhat.com>
25461         PR tree-optimization/104645
25462         * tree-ssa-phiopt.cc (value_replacement): If assign has
25463         CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
25464         statement with constant evaluation.
25466 2022-04-01  YunQiang Su  <yunqiang.su@cipunited.com>
25468         * config/mips/mips.cc (mips_expand_prologue):
25469         IPL is 8bit for MCU ASE.
25471 2022-03-31  Bill Schmidt  <wschmidt@linux.ibm.com>
25473         PR target/104004
25474         * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
25475         (MTFSB0): Likewise.
25476         (MTFSB1): Likewise.
25477         (SET_FPSCR_RN): Likewise.
25478         (SET_FPSCR_DRN): Mark nosoft and no32bit.
25480 2022-03-31  Thomas Schwinge  <thomas@codesourcery.com>
25482         * doc/options.texi (Option file format): Clarifications around
25483         option definition records' help texts.
25485 2022-03-31  Thomas Schwinge  <thomas@codesourcery.com>
25487         * optc-gen.awk <END>: Fix "Multiple different help strings" error
25488         diagnostic.
25490 2022-03-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
25492         * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
25493         determine_suggested_unroll_factor and m_has_avg.
25494         (determine_suggested_unroll_factor): New function.
25495         (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
25496         to set m_nosve_pattern.
25497         (aarch64_vector_costs::finish_costs): Use
25498         determine_suggested_unroll_factor.
25499         * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
25500         * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
25502 2022-03-31  Martin Jambor  <mjambor@suse.cz>
25504         PR ipa/103083
25505         * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
25506         (ipa_get_jf_ancestor_keep_null): New function.
25507         * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
25508         ancestor function.
25509         (compute_complex_assign_jump_func): Pass false to keep_null
25510         parameter of ipa_set_ancestor_jf.
25511         (compute_complex_ancestor_jump_func): Pass true to keep_null
25512         parameter of ipa_set_ancestor_jf.
25513         (update_jump_functions_after_inlining): Carry over keep_null from the
25514         original ancestor jump-function or merge them.
25515         (ipa_write_jump_function): Stream keep_null flag.
25516         (ipa_read_jump_function): Likewise.
25517         (ipa_print_node_jump_functions_for_edge): Print the new flag.
25518         * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const.  New
25519         member function known_nonzero_p.
25520         (ipcp_bits_lattice::known_nonzero_p): New.
25521         (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
25522         observe it.
25523         (ipcp_bits_lattice::meet_with): Likewise.
25524         (propagate_bits_across_jump_function): Simplify.  Pass true in
25525         drop_all_ones when it is necessary.
25526         (propagate_aggs_across_jump_function): Take care of keep_null
25527         flag.
25528         (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
25529         jump functions.
25531 2022-03-31  Martin Jambor  <mjambor@suse.cz>
25533         PR ipa/102513
25534         * ipa-cp.cc (decide_whether_version_node): Skip scalar values
25535         which do not fit the known value_range.
25537 2022-03-31  Martin Jambor  <mjambor@suse.cz>
25539         PR ipa/103171
25540         * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
25541         always when an ADDR_EXPR constant is known to reach a load because
25542         of inlining, not just when removing an ADDR reference.
25544 2022-03-31  Richard Biener  <rguenther@suse.de>
25546         PR tree-optimization/105109
25547         * tree-ssa.cc (execute_update_addresses_taken): Suppress
25548         diagnostics on the load of the other complex component.
25550 2022-03-31  Tom de Vries  <tdevries@suse.de>
25552         * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
25554 2022-03-31  Richard Biener  <rguenther@suse.de>
25556         PR rtl-optimization/105091
25557         * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
25558         bases.
25560 2022-03-31  Richard Biener  <rguenther@suse.de>
25562         Revert:
25563         2021-09-13  Richard Earnshaw  <rearnsha@arm.com>
25565         PR target/102125
25566         * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
25567         memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
25569 2022-03-31  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25571         * gcov-io.cc (gcov_read_string): Reword documentation comment.
25573 2022-03-30  Bill Schmidt  <wschmidt@linux.ibm.com>
25575         * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
25576         stanza.
25577         (NEG_V4SF): Likewise.
25578         (NEG_V4SI): Likewise.
25579         (NEG_V8HI): Likewise.
25580         (NEG_V2DF): Move to [vsx] stanza.
25581         (NEG_V2DI): Likewise.
25583 2022-03-30  Vladimir N. Makarov  <vmakarov@redhat.com>
25585         PR middle-end/105032
25586         * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
25588 2022-03-30  Tom de Vries  <tdevries@suse.de>
25589             Tobias Burnus  <tobias@codesourcery.com>
25591         * doc/invoke.texi (march): Document __PTX_SM__.
25592         (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
25593         __PTX_ISA_VERSION_MINOR__.
25595 2022-03-30  Jakub Jelinek  <jakub@redhat.com>
25597         PR sanitizer/105093
25598         * ubsan.cc (instrument_object_size): If t is equal to inner and
25599         is a decl other than global var, punt.  When emitting call to
25600         UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
25602 2022-03-30  Jakub Jelinek  <jakub@redhat.com>
25604         PR tree-optimization/105094
25605         * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
25606         bitsize <= 0 rather than just == 0.
25608 2022-03-30  Tom de Vries  <tdevries@suse.de>
25610         * doc/invoke.texi (misa, mptx): Update.
25611         (march, march-map): Add.
25613 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
25615         * opt-functions.awk (n_args): New function.
25616         (lang_enabled_by): Merge function into...
25617         * optc-gen.awk <END>: ... sole user here.
25618         Improve diagnostics.
25620 2022-03-29  Marek Polacek  <polacek@redhat.com>
25621             Jakub Jelinek  <jakub@redhat.com>
25623         PR middle-end/103597
25624         * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
25625         into labels.  Maybe set prev to the statement preceding UNUSED_LABEL_P.
25626         (gimplify_cond_expr): Set UNUSED_LABEL_P.
25627         * tree.h (UNUSED_LABEL_P): New.
25629 2022-03-29   Michael Meissner  <meissner@linux.ibm.com>
25631         * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
25632         be any VSX register.
25634 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
25636         PR target/102024
25637         * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
25638         zero-sized bit-fields.  Detect cases where a warning may be needed.
25639         (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
25640         zero-sized bit-field has caused parameter passing to change.
25642 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
25644         PR target/102024
25645         * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
25646         bit-fields.  Detect cases where a warning may be needed.
25647         (aapcs_vfp_is_call_or_return_candidate): Emit a note if
25648         a zero-sized bit-field has caused parameter passing to change.
25650 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
25652         PR target/96882
25653         * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
25654         ARM_PCS_AAPCS_LOCAL.
25656 2022-03-29  Tom de Vries  <tdevries@suse.de>
25658         PR target/104857
25659         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
25660         __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
25661         * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
25662         * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
25664 2022-03-29  Tom de Vries  <tdevries@suse.de>
25666         * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
25667         is ignored.
25669 2022-03-29  Tom de Vries  <tdevries@suse.de>
25671         PR target/104714
25672         * config/nvptx/nvptx.opt (march-map=*): Add aliases.
25674 2022-03-29  Jan Hubicka  <hubicka@ucw.cz>
25676         * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
25677         TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
25678         * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
25679         (TARGET_USE_GATHER_4PARTS): New macro.
25680         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
25681         (X86_TUNE_USE_GATHER_4PARTS): New tune
25683 2022-03-29  Tom de Vries  <tdevries@suse.de>
25685         * config/nvptx/nvptx.opt (march): Add alias of misa.
25687 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
25688             Lulu Cheng  <chenglulu@loongson.cn>
25690         * doc/install.texi: Add LoongArch options section.
25691         * doc/invoke.texi: Add LoongArch options section.
25692         * doc/md.texi: Add LoongArch options section.
25694 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
25695             Lulu Cheng  <chenglulu@loongson.cn>
25697         * config/loongarch/loongarch-c.cc
25699 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
25700             Lulu Cheng  <chenglulu@loongson.cn>
25702         * config/loongarch/larchintrin.h: New file.
25703         * config/loongarch/loongarch-builtins.cc: New file.
25705 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
25706             Lulu Cheng  <chenglulu@loongson.cn>
25708         * config/host-linux.cc: Add LoongArch support.
25709         * config/loongarch/loongarch-protos.h: New file.
25710         * config/loongarch/loongarch-tune.h: Likewise.
25711         * config/loongarch/loongarch.cc: Likewise.
25712         * config/loongarch/loongarch.h: Likewise.
25714 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
25715             Lulu Cheng  <chenglulu@loongson.cn>
25717         * config/loongarch/constraints.md: New file.
25718         * config/loongarch/generic.md: New file.
25719         * config/loongarch/la464.md: New file.
25720         * config/loongarch/loongarch-ftypes.def: New file.
25721         * config/loongarch/loongarch-modes.def: New file.
25722         * config/loongarch/loongarch.md: New file.
25723         * config/loongarch/predicates.md: New file.
25724         * config/loongarch/sync.md: New file.
25726 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
25727             Lulu Cheng  <chenglulu@loongson.cn>
25729         * configure: Regenerate file.
25731 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
25732             Lulu Cheng  <chenglulu@loongson.cn>
25734         * common/config/loongarch/loongarch-common.cc: New file.
25735         * config/loongarch/genopts/genstr.sh: New file.
25736         * config/loongarch/genopts/loongarch-strings: New file.
25737         * config/loongarch/genopts/loongarch.opt.in: New file.
25738         * config/loongarch/loongarch-str.h: New file.
25739         * config/loongarch/gnu-user.h: New file.
25740         * config/loongarch/linux.h: New file.
25741         * config/loongarch/loongarch-cpu.cc: New file.
25742         * config/loongarch/loongarch-cpu.h: New file.
25743         * config/loongarch/loongarch-def.c: New file.
25744         * config/loongarch/loongarch-def.h: New file.
25745         * config/loongarch/loongarch-driver.cc: New file.
25746         * config/loongarch/loongarch-driver.h: New file.
25747         * config/loongarch/loongarch-opts.cc: New file.
25748         * config/loongarch/loongarch-opts.h: New file.
25749         * config/loongarch/loongarch.opt: New file.
25750         * config/loongarch/t-linux: New file.
25751         * config/loongarch/t-loongarch: New file.
25752         * config.gcc: Add LoongArch support.
25753         * configure.ac: Add LoongArch support.
25755 2022-03-29  Thomas Schwinge  <thomas@codesourcery.com>
25757         * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
25758         typo.
25760 2022-03-29  Richard Biener  <rguenther@suse.de>
25762         PR tree-optimization/105080
25763         * tree-ssa-strlen.cc (printf_strlen_execute): Always init
25764         loops and SCEV.
25766 2022-03-28  Indu Bhagat  <indu.bhagat@oracle.com>
25768         * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
25769         (output_ctf_vars): Likewise.
25771 2022-03-28  Jason Merrill  <jason@redhat.com>
25773         PR c++/59426
25774         * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
25776 2022-03-28  H.J. Lu  <hjl.tools@gmail.com>
25778         PR target/105068
25779         * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
25780         "Yw" in clobber.
25782 2022-03-28  Tom de Vries  <tdevries@suse.de>
25784         PR target/104818
25785         * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
25786         * config/nvptx/nvptx-gen.opt: Regenerate.
25787         * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
25788         * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
25789         gen-opt.sh.
25791 2022-03-28  David Malcolm  <dmalcolm@redhat.com>
25793         PR analyzer/104308
25794         * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
25795         to loads then stores, set the location of the new load stmt.
25797 2022-03-28  Richard Biener  <rguenther@suse.de>
25799         PR tree-optimization/105070
25800         * tree-switch-conversion.h
25801         (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
25802         argument.
25803         * tree-switch-conversion.cc
25804         (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
25805         cond with location.
25806         (bit_test_cluster::emit): Annotate all generated expressions
25807         with location.
25809 2022-03-28  Andre Vieira  <andre.simoesdiasvieira@arm.com>
25811         * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
25813 2022-03-28  liuhongt  <hongtao.liu@intel.com>
25815         PR target/105066
25816         * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
25817         alternative 4 from sse4_noavx to noavx.
25819 2022-03-28  Jakub Jelinek  <jakub@redhat.com>
25821         PR tree-optimization/105056
25822         * tree-predcom.cc (component::component): Initialize also comp_step.
25824 2022-03-27  H.J. Lu  <hjl.tools@gmail.com>
25826         PR target/105068
25827         * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
25828         "Yw".
25830 2022-03-26  Roger Sayle  <roger@nextmovesoftware.com>
25832         PR middle-end/104885
25833         * calls.cc (mark_stack_region_used): Check that the region
25834         is within the allocated size of stack_usage_map.
25836 2022-03-26  Jakub Jelinek  <jakub@redhat.com>
25838         PR rtl-optimization/103775
25839         * recog.cc (check_invalid_inc_dec): New function.
25840         (insn_invalid_p): Return 1 if REG_INC operand overlaps
25841         any stored REGs.
25843 2022-03-26  H.J. Lu  <hjl.tools@gmail.com>
25845         PR target/105058
25846         * config/i386/sse.md (loadiwkey): Replace "v" with "x".
25847         (aes<aesklvariant>u8): Likewise.
25849 2022-03-26  H.J. Lu  <hjl.tools@gmail.com>
25851         PR target/105052
25852         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
25853         Replace "Yv" with "x".
25854         (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
25855         (ssse3_psign<mode>3): Likewise.
25857 2022-03-26  Hans-Peter Nilsson  <hp@axis.com>
25859         * reload.cc (find_reloads): Align comment with code where
25860         considering the intersection of register classes then tweaking the
25861         regclass for the current alternative or rejecting it.
25863 2022-03-25  Christophe Lyon  <christohe.lyon@arm.com>
25865         PR target/104882
25866         Revert
25867         2021-06-11  Christophe Lyon  <christophe.lyon@linaro.org>
25869         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
25870         (mve_vec_unpack<US>_hi_<mode>): Delete.
25871         (@mve_vec_pack_trunc_lo_<mode>): Delete.
25872         (mve_vmovntq_<supf><mode>): Remove '@' prefix.
25873         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
25874         from vec-common.md.
25875         (vec_unpack<US>_lo_<mode>): Likewise.
25876         (vec_pack_trunc_<mode>): Rename from
25877         neon_quad_vec_pack_trunc_<mode>.
25878         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
25879         (vec_unpack<US>_lo_<mode>): Delete.
25880         (vec_pack_trunc_<mode>): Delete.
25882 2022-03-25  Vladimir N. Makarov  <vmakarov@redhat.com>
25884         PR middle-end/104971
25885         * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
25886         regs to clear remove_p flag.
25888 2022-03-25  Richard Biener  <rguenther@suse.de>
25890         PR tree-optimization/105053
25891         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
25892         the correct live-out stmt for a reduction chain.
25894 2022-03-25  Richard Biener  <rguenther@suse.de>
25896         PR middle-end/105049
25897         * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
25898         CONSTRUCTOR first elements.
25900 2022-03-25  Tobias Burnus  <tobias@codesourcery.com>
25902         PR analyzer/103533
25903         * doc/invoke.texi (Static Analyzer Options): Move
25904         @ignore block after @gccoptlist's '}' for 'make pdf'.
25906 2022-03-25  David Malcolm  <dmalcolm@redhat.com>
25908         PR analyzer/104954
25909         * doc/invoke.texi (Static Analyzer Options): Add
25910         -fdump-analyzer-untracked.
25912 2022-03-25  Avinash Sonawane  <rootkea@gmail.com>
25914         PR analyzer/103533
25915         * doc/invoke.texi: Document that enabling taint analyzer
25916         checker disables some warnings from `-fanalyzer`.
25918 2022-03-24  Alexandre Oliva  <oliva@adacore.com>
25920         PR debug/104564
25921         * gimple-harden-conditionals.cc (detach_value): Keep temps
25922         anonymous.
25924 2022-03-24  Alexandre Oliva  <oliva@adacore.com>
25926         PR middle-end/104975
25927         * gimple-harden-conditionals.cc
25928         (pass_harden_compares::execute): Force split in case of
25929         multiple edges.
25931 2022-03-24  Jakub Jelinek  <jakub@redhat.com>
25933         PR c++/105035
25934         * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
25935         field0 or field1 is not a FIELD_DECL, return false.
25937 2022-03-24  Richard Biener  <rguenther@suse.de>
25939         * tree-predcom.cc (chain::chain): Add CTOR.
25940         (component::component): Likewise.
25941         (pcom_worker::release_chain): Use delete.
25942         (release_components): Likewise.
25943         (pcom_worker::filter_suitable_components): Likewise.
25944         (pcom_worker::split_data_refs_to_components): Use new.
25945         (make_invariant_chain): Likewise.
25946         (make_rooted_chain): Likewise.
25947         (pcom_worker::combine_chains): Likewise.
25948         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
25949         Make sure to release previously constructed scalar_results.
25950         * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
25951         for vec_offsets.
25952         * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
25953         Release m_flag_set_edges.
25955 2022-03-24  Siddhesh Poyarekar  <siddhesh@gotplt.org>
25957         PR tree-optimization/104970
25958         * tree-object-size.cc (parm_object_size): Restrict size
25959         computation scenarios to explicit access attributes.
25961 2022-03-24  Kewen Lin  <linkw@linux.ibm.com>
25963         PR target/104967
25964         * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
25965         function types.
25967 2022-03-23  Richard Biener  <rguenther@suse.de>
25969         PR target/102125
25970         * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
25971         use of movmisalign when either the source or destination
25972         decl is properly aligned.
25974 2022-03-23  Richard Biener  <rguenther@suse.de>
25976         PR rtl-optimization/105028
25977         * ira-color.cc (form_threads_from_copies): Remove unnecessary
25978         copying of the sorted_copies tail.
25980 2022-03-23  Martin Liska  <mliska@suse.cz>
25982         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
25983         Use %qs in format.
25984         * config/rs6000/rs6000.cc (rs6000_option_override_internal):
25985         Reword the error message.
25987 2022-03-23  liuhongt  <hongtao.liu@intel.com>
25989         PR target/104976
25990         * config/i386/sse.md (ssePSmodelower): New.
25991         (*avx_cmp<mode>3_ltint_not): Force_reg operand before
25992         lowpart_subreg to avoid NULL_RTX.
25993         (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
25994         <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
25995         fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
25996         <avx512>_<complexopname>_<mode>_mask<round_name>,
25997         avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
25998         avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
25999         avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
26000         avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
26001         float<floatunssuffix><mode>v4hf2,
26002         float<floatunssuffix>v2div2hf2,
26003         fix<fixunssuffix>_truncv4hf<mode>2,
26004         fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
26005         extendv2hfv2df2,
26006         trunc<mode>v4hf2,truncv2dfv2hf2,
26007         *avx512bw_permvar_truncv16siv16hi_1,
26008         *avx512bw_permvar_truncv16siv16hi_1_hf,
26009         *avx512f_permvar_truncv8siv8hi_1,
26010         *avx512f_permvar_truncv8siv8hi_1_hf,
26011         *avx512f_vpermvar_truncv8div8si_1,
26012         *avx512f_permvar_truncv32hiv32qi_1,
26013         *avx512f_permvar_truncv16hiv16qi_1,
26014         *avx512f_permvar_truncv4div4si_1,
26015         *avx512f_pshufb_truncv8hiv8qi_1,
26016         *avx512f_pshufb_truncv4siv4hi_1,
26017         *avx512f_pshufd_truncv2div2si_1,
26018         sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
26019         ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
26021 2022-03-22  Tom de Vries  <tdevries@suse.de>
26023         PR target/104925
26024         * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
26025         Use % as register prefix.
26027 2022-03-22  Tom de Vries  <tdevries@suse.de>
26029         * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
26030         (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
26031         mexperimental.
26033 2022-03-22  Tom de Vries  <tdevries@suse.de>
26035         * config/nvptx/nvptx.opt (mexperimental): New option.
26037 2022-03-22  Tom de Vries  <tdevries@suse.de>
26039         PR target/104957
26040         * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
26041         * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
26042         for alias.
26043         (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
26044         (nvptx_asm_output_def_from_decls): New function.
26045         * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
26046         gcc_unreachable ().
26047         (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
26048         nvptx_asm_output_def_from_decls.
26049         * config/nvptx/nvptx.opt (malias): New opt.
26051 2022-03-22  Tom de Vries  <tdevries@suse.de>
26053         PR target/104916
26054         PR target/104783
26055         * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
26056         sync (or uniform warp check for mptx < 6.0).
26058 2022-03-22  Richard Biener  <rguenther@suse.de>
26060         PR tree-optimization/105012
26061         * tree-if-conv.cc (ifcvt_local_dce): Only call
26062         dse_classify_store when we have a VDEF.
26064 2022-03-22  Martin Liska  <mliska@suse.cz>
26066         PR target/104902
26067         * config/nvptx/nvptx.cc (handle_ptx_version_option):
26068         Fix option wrapping in an error message.
26070 2022-03-22  Martin Liska  <mliska@suse.cz>
26072         PR target/104903
26073         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
26074         Wrap const keyword.
26076 2022-03-22  Martin Liska  <mliska@suse.cz>
26078         * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
26079         name.
26081 2022-03-22  Martin Liska  <mliska@suse.cz>
26083         PR target/104898
26084         * config/rs6000/rs6000.cc (rs6000_option_override_internal):
26085         Use %qs instead of (%qs).
26087 2022-03-22  Martin Liska  <mliska@suse.cz>
26089         PR target/104898
26090         * config/i386/i386-options.cc (ix86_option_override_internal):
26091         Use '%qs' instead of '(%qs)'.
26093 2022-03-22  Martin Liska  <mliska@suse.cz>
26095         PR target/104898
26096         * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
26097         Use 'qs' and remove usage '(%qs)'.
26098         (aarch64_handle_attr_cpu): Likewise.
26099         (aarch64_handle_attr_tune): Likewise.
26100         (aarch64_handle_attr_isa_flags): Likewise.
26102 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
26103             Andre Vieira  <andre.simoesdiasvieira@arm.com>
26105         * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
26106         struct.
26107         (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
26108         cost.
26109         (neoverse512tvb_tunings): Likewise.
26111 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
26112             Andre Vieira  <andre.simoesdiasvieira@arm.com>
26114         * config/aarch64/aarch64.cc (demeter_addrcost_table,
26115         demeter_regmove_cost, demeter_advsimd_vector_cost,
26116         demeter_sve_vector_cost, demeter_scalar_issue_info,
26117         demeter_advsimd_issue_info, demeter_sve_issue_info,
26118         demeter_vec_issue_info, demeter_vector_cost,
26119         demeter_tunings): New tuning structs.
26120         (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
26121         tuning.
26122         * config/aarch64/aarch64-cores.def: Add entry for demeter.
26123         * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
26125 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
26126             Andre Vieira  <andre.simoesdiasvieira@arm.com>
26128         * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
26129         (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
26130         * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
26131         tunings to use cpu_memmov_cost struct.
26133 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
26134             Andre Vieira  <andre.simoesdiasvieira@arm.com>
26136         * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
26137         neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
26138         neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
26139         neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
26140         neoversen2_vec_issue_info, neoversen2_tunings): New structs.
26141         (neoversen2_tunings): Use new structs and update tuning flags.
26142         (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
26143         tuning.
26145 2022-03-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
26147         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
26148         bit.
26150 2022-03-22  liuhongt  <hongtao.liu@intel.com>
26152         PR target/104982
26153         * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
26154         following splitter to reversed condition.
26156 2022-03-22  Jakub Jelinek  <jakub@redhat.com>
26158         PR rtl-optimization/104989
26159         * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
26160         sorry for passing too large argument, instead set sibcall_failure
26161         for pass == 0, or a new normal_failure flag otherwise.  If
26162         normal_failure is set, don't assert all stack has been deallocated
26163         at the end and throw away the whole insn sequence.
26165 2022-03-22  Qian Jianhua  <qianjh@cn.fujitsu.com>
26167         * print-tree.cc: Change array length
26169 2022-03-22  Hongyu Wang  <hongyu.wang@intel.com>
26171         PR target/104978
26172         * config/i386/sse.md
26173         (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
26174         Use avx512f_movsf_mask instead of vmovaps or vblend, and
26175         force_reg before lowpart_subreg.
26176         (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
26178 2022-03-21  H.J. Lu  <hjl.tools@gmail.com>
26180         PR target/105000
26181         * common/config/i386/i386-common.cc
26182         (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
26183         OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
26185 2022-03-21  H.J. Lu  <hjl.tools@gmail.com>
26187         PR target/104998
26188         * common/config/i386/cpuinfo.h (get_available_features): Pass
26189         0x19 to __cpuid for bit_AESKLE.  Enable FEATURE_AESKLE only if
26190         bit_AESKLE is set.
26192 2022-03-21  Richard Sandiford  <richard.sandiford@arm.com>
26194         PR middle-end/104869
26195         * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
26196         (clobber_group::next_clobber): Likewise.
26197         (def_lookup::prev_def): Rename to...
26198         (def_lookup::last_def_of_prev_group): ...this.
26199         (def_lookup::next_def): Rename to...
26200         (def_lookup::first_def_of_next_group): ...this.
26201         (def_lookup::matching_or_prev_def): Rename to...
26202         (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
26203         (def_lookup::matching_or_next_def): Rename to...
26204         (def_lookup::matching_set_or_first_def_of_next_group): ...this.
26205         (def_lookup::prev_def): New function, taking the lookup insn as
26206         argument.
26207         (def_lookup::next_def): Likewise.
26208         * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
26209         (def_lookup::last_def_of_prev_group): ...this.
26210         (def_lookup::next_def): Rename to...
26211         (def_lookup::first_def_of_next_group): ...this.
26212         (def_lookup::matching_or_prev_def): Rename to...
26213         (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
26214         (def_lookup::matching_or_next_def): Rename to...
26215         (def_lookup::matching_set_or_first_def_of_next_group): ...this.
26216         * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
26217         above renaming.
26218         * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
26219         (clobber_group::next_clobber): Likewise.
26220         (def_lookup::prev_def): Likewise.
26221         (def_lookup::next_def): Likewise.
26222         (function_info::make_use_available): Pass the lookup insn to
26223         def_lookup::prev_def and def_lookup::next_def.
26225 2022-03-21  Martin Liska  <mliska@suse.cz>
26227         * doc/invoke.texi: Document min-pagesize parameter.
26229 2022-03-21  Richard Biener  <rguenther@suse.de>
26231         * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
26232         we are estimating niter of loop.
26234 2022-03-21  Kito Cheng  <kito.cheng@sifive.com>
26236         * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
26237         Update flag name and mask name.
26238         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
26239         misc macro for vector extensions.
26240         * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
26241         (MASK_VECTOR_ELEN_32): ... this.
26242         (MASK_VECTOR_EEW_64): Rename to ...
26243         (MASK_VECTOR_ELEN_64): ... this.
26244         (MASK_VECTOR_EEW_FP_32): Rename to ...
26245         (MASK_VECTOR_ELEN_FP_32): ... this.
26246         (MASK_VECTOR_EEW_FP_64): Rename to ...
26247         (MASK_VECTOR_ELEN_FP_64): ... this.
26248         (TARGET_VECTOR_ELEN_32): New.
26249         (TARGET_VECTOR_ELEN_64): Ditto.
26250         (TARGET_VECTOR_ELEN_FP_32): Ditto.
26251         (TARGET_VECTOR_ELEN_FP_64): Ditto.
26252         (TARGET_MIN_VLEN): Ditto.
26253         * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
26254         (riscv_vector_elen_flags): ... this.
26256 2022-03-21  Hongyu Wang  <hongyu.wang@intel.com>
26258         PR target/104977
26259         * config/i386/sse.md
26260         (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
26261         Correct round operand for intel dialect.
26263 2022-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>
26265         * diagnostic.cc (diagnostic_cc_tests): Rename to...
26266         (c_diagnostic_cc_tests): ...this.
26267         * opt-problem.cc (opt_problem_cc_tests): Rename to...
26268         (c_opt_problem_cc_tests): ...this.
26269         * selftest-run-tests.cc (selftest::run_tests): No longer run
26270         opt_problem_cc_tests or diagnostic_cc_tests.
26271         * selftest.h (diagnostic_cc_tests): Remove declaration.
26272         (opt_problem_cc_tests): Likewise.
26274 2022-03-19  Marc Nieper-Wißkirchen  <marc@nieper-wisskirchen.de>
26276         PR jit/63854
26277         * hash-traits.h (struct typed_const_free_remove): New.
26278         (struct free_string_hash): New.
26279         * pass_manager.h: Use free_string_hash.
26280         * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
26281         (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
26283 2022-03-19  Jakub Jelinek  <jakub@redhat.com>
26285         PR middle-end/104971
26286         * config/i386/i386-expand.cc
26287         (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
26288         don't push/pop anything and just return const0_rtx.
26290 2022-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
26292         PR rtl-optimization/104961
26293         * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
26295 2022-03-18  Jason Merrill  <jason@redhat.com>
26297         * tree.h (IDENTIFIER_LENGTH): Add comment.
26299 2022-03-18  Jakub Jelinek  <jakub@redhat.com>
26301         PR middle-end/99578
26302         PR middle-end/100680
26303         PR tree-optimization/100834
26304         * params.opt (--param=min-pagesize=): New parameter.
26305         * pointer-query.cc
26306         (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
26307         (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
26308         of zero for pointer constants equal or larger than min-pagesize.
26310 2022-03-18  Tom de Vries  <tdevries@suse.de>
26312         * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
26313         Set gfor location only when dealing with a OMP_TASKLOOP.
26315 2022-03-18  Tom de Vries  <tdevries@suse.de>
26317         * gimplify.cc (gimplify_omp_for): Set taskloop location.
26319 2022-03-18  Tom de Vries  <tdevries@suse.de>
26321         PR target/104952
26322         * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
26323         is executed unconditionally.
26325 2022-03-18  liuhongt  <hongtao.liu@intel.com>
26327         PR target/104974
26328         * config/i386/i386.md (*movhi_internal): Set attr type from HI
26329         to HF for alternative 12 under TARGET_AVX512FP16.
26331 2022-03-18  Cui,Lili  <lili.cui@intel.com>
26333         PR target/104963
26334         * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
26335         * doc/invoke.texi: Update documents for Intel sapphirerapids.
26337 2022-03-17  Roger Sayle  <roger@nextmovesoftware.com>
26339         PR target/86722
26340         PR tree-optimization/90356
26341         * config/i386/i386.md (*movtf_internal): Don't guard
26342         standard_sse_constant_p clause by optimize_function_for_size_p.
26343         (*movdf_internal): Likewise.
26344         (*movsf_internal): Likewise.
26346 2022-03-17  Andrew MacLeod  <amacleod@redhat.com>
26348         PR tree-optimization/102943
26349         * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
26350         dominators and apply intermediary outgoing edge ranges.
26352 2022-03-17  Richard Biener  <rguenther@suse.de>
26354         PR tree-optimization/104960
26355         * passes.def: Add pass parameter to pass_sink_code, mark
26356         last one to unsplit edges.
26357         * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
26358         (pass_sink_code::execute): Always execute TODO_cleanup_cfg
26359         when we need to unsplit edges.
26361 2022-03-17  Jakub Jelinek  <jakub@redhat.com>
26363         PR middle-end/103984
26364         * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
26365         TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
26366         and asan unpoisioning, then append the temporary sequence and
26367         finally the TARGET_EXPR_CLEANUP clobbers.
26369 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
26371         * config/i386/sse.md: Delete corrupt character/typo.
26373 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
26375         PR target/94680
26376         * config/i386/sse.md (sse2_movq128): New define_expand to
26377         preserve previous named instruction.
26378         (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
26379         generalized to VI8F_128 (both V2DI and V2DF).
26381 2022-03-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
26383         PR tree-optimization/104941
26384         * tree-object-size.cc (size_for_offset): Make useless conversion
26385         check lighter and assign result of fold_convert to OFFSET.
26387 2022-03-16  H.J. Lu  <hjl.tools@gmail.com>
26389         PR target/104890
26390         * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
26391         pushing target("general-regs-only").
26393 2022-03-16  Kito Cheng  <kito.cheng@sifive.com>
26395         * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
26396         Add version info for zk, zks and zkn.
26398 2022-03-16  LiaoShihua  <shihua@iscas.ac.cn>
26400         * common/config/riscv/riscv-common.cc
26401         (riscv_combine_info): New.
26402         (riscv_subset_list::handle_combine_ext): Combine back into zk to
26403         maintain the canonical order in isa strings.
26404         (riscv_subset_list::parse): Ditto.
26405         * config/riscv/riscv-subset.h (handle_combine_ext): New.
26407 2022-03-16  Richard Biener  <rguenther@suse.de>
26409         PR tree-optimization/102008
26410         * passes.def: Move the added code sinking pass before the
26411         preceeding phiopt pass.
26413 2022-03-16  Patrick Palka  <ppalka@redhat.com>
26415         PR c++/96780
26416         * doc/invoke.texi (C++ Dialect Options): Document
26417         -ffold-simple-inlines.
26419 2022-03-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
26421         PR tree-optimization/104942
26422         * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
26424 2022-03-16  Jakub Jelinek  <jakub@redhat.com>
26426         PR target/104910
26427         * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
26428         imm rtx.
26430 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
26431             Richard Biener  <rguenther@suse.de>
26433         * gimple-match-head.cc (single_use): Implement inline using a
26434         single loop.
26436 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
26438         * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
26439         instead of HONOR_NANS.
26440         (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
26441         this can't trap/signal.
26443 2022-03-16  liuhongt  <hongtao.liu@intel.com>
26445         PR target/104946
26446         * config/i386/i386-builtin.def (BDESC): Add
26447         CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
26448         * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
26449         __builtin_ia32_blendvpd w/o sse4.2
26451 2022-03-15  Peter Bergner  <bergner@linux.ibm.com>
26453         PR target/104923
26454         * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
26455         acceptable MEM addresses.
26457 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
26459         PR target/91229
26460         * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
26461         riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
26462         to warning calls.
26464 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
26466         PR target/104890
26467         * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
26468         instead of general-regs-only.
26470 2022-03-15  Roger Sayle  <roger@nextmovesoftware.com>
26471             Marc Glisse  <marc.glisse@inria.fr>
26472             Richard Biener  <rguenther@suse.de>
26474         PR tree-optimization/101895
26475         * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
26476         (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
26478 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
26480         PR rtl-optimization/104814
26481         * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
26482         end with onlyjump_p.  Assume BB_END (test_bb) is always non-NULL.
26484 2022-03-15  Martin Sebor  <msebor@redhat.com>
26486         PR middle-end/104436
26487         * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
26488         Check for warning suppression.  Avoid by-value arguments transformed
26489         into by-transparent-reference.
26491 2022-03-14  Roger Sayle  <roger@nextmovesoftware.com>
26492             Uroš Bizjak  <ubizjak@gmail.com>
26494         * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
26495         transformation when *zero_extend<mode>si2 is not available.
26497 2022-03-14  Xi Ruoyao  <xry111@mengyan1223.wang>
26499         * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
26500         * config/mips/mips.cc (mips_option_override): Make
26501         -fsanitize=address imply -fasynchronous-unwind-tables.  This is
26502         needed by libasan for stack backtrace on MIPS.
26503         (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
26505 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
26507         PR debug/104778
26508         * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
26509         SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
26510         call simplified the first operand into VOIDmode constant.
26512 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
26514         PR tree-optimization/102586
26515         * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
26516         argument type should be pointer to trivially-copyable type unless it
26517         is address of a variable or parameter.
26519 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
26521         PR target/99754
26522         * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
26523         first   rather than last element of the vector, use __m32_u to do
26524         a really unaligned load, use just 0 instead of (int)0.
26525         (_mm_loadu_si16): Put loaded value into first rather than last
26526         element of the vector, use __m16_u to do a really unaligned load,
26527         use just 0 instead of (short)0.
26529 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
26531         PR other/104899
26532         * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
26533         in diagnostic message - cannott -> cannot.  Use %< and %> around
26534         names of attribute.  Avoid too long line.
26535         * range-op.cc (operator_logical_and::op1_range): Fix up a typo
26536         in comment - cannott -> cannot.  Use 2 spaces after . instead of one.
26538 2022-03-14  liuhongt  <hongtao.liu@intel.com>
26540         PR target/104666
26541         * config/i386/i386-expand.cc
26542         (ix86_check_builtin_isa_match): New func.
26543         (ix86_expand_builtin): Move code to
26544         ix86_check_builtin_isa_match and call it.
26545         * config/i386/i386-protos.h
26546         (ix86_check_builtin_isa_match): Declare.
26547         * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
26548         builtin into gimple when isa mismatches.
26550 2022-03-13  Tobias Burnus  <tobias@codesourcery.com>
26552         * doc/invoke.texi: Fix typos.
26553         * doc/tm.texi.in: Remove duplicated word.
26554         * doc/tm.texi: Regenerate.
26556 2022-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
26558         PR target/104829
26559         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
26560         "ppc" and "ppc64" based on rs6000_cpu.
26562 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
26564         PR middle-end/100280
26565         PR middle-end/104892
26566         * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
26567         Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
26569 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
26571         PR middle-end/100280
26572         PR middle-end/104086
26573         * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
26574         Mark variables used in 'present' clauses as addressable.
26575         * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
26576         handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
26578 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
26580         PR other/65095
26581         * tree-core.h (user_omp_claus_code_name): Declare function.
26582         * tree.cc (user_omp_clause_code_name): New function.
26584 2022-03-12  Roger Sayle  <roger@nextmovesoftware.com>
26586         PR middle-end/98420
26587         * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
26588         (the defaut) or -fno-signed-zeros.
26590 2022-03-12   Michael Meissner  <meissner@linux.ibm.com>
26592         PR target/104868
26593         * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
26594         moving from a GPR register to an Altivec register.
26596 2022-03-11  Roger Sayle  <roger@nextmovesoftware.com>
26598         PR tree-optimization/98335
26599         * config/i386/i386.md (peephole2): Eliminate redundant insv.
26600         Combine movl followed by movb.  Transform xorl followed by
26601         a suitable movb or movw into the equivalent movz[bw]l.
26603 2022-03-11  Roger Sayle  <roger@nextmovesoftware.com>
26604             Richard Biener  <rguenther@suse.de>
26606         PR tree-optimization/98335
26607         * builtins.cc (get_object_alignment_2): Export.
26608         * builtins.h (get_object_alignment_2): Likewise.
26609         * tree-ssa-alias.cc (ao_ref_alignment): New.
26610         * tree-ssa-alias.h (ao_ref_alignment): Declare.
26611         * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
26612         to align head/tail, writing more bytes but using fewer store insns.
26614 2022-03-11  Richard Biener  <rguenther@suse.de>
26616         PR tree-optimization/104880
26617         * tree-ssa.cc (execute_update_address_taken): Remember if we
26618         optimistically made something not addressable and
26619         prepare to undo it.
26621 2022-03-11  Richard Biener  <rguenther@suse.de>
26623         PR target/104762
26624         * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
26625         cost the first lane of SSE pieces as inserts for vec_construct.
26627 2022-03-10  Roger Sayle  <roger@nextmovesoftware.com>
26629         PR c++/84964
26630         * calls.cc (expand_call): Ignore stack adjustments after sorry.
26632 2022-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
26634         PR target/103074
26635         * lra-constraints.cc (split_reg): Set up
26636         check_and_force_assignment_correctness_p when splitting hard
26637         register live range.
26639 2022-03-10  Martin Jambor  <mjambor@suse.cz>
26641         PR ipa/104813
26642         * ipa-cp.cc (create_specialized_node): Move removal of
26643         self-recursive calls from callers vector before refrence
26644         adjustments.
26646 2022-03-10  Richard Biener  <rguenther@suse.de>
26648         PR tree-optimization/102943
26649         * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
26650         Make a bitmap_head.
26651         (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
26652         to tree view.
26653         (sbr_sparse_bitmap::set_bb_range): Adjust.
26654         (sbr_sparse_bitmap::get_bb_range): Likewise.
26656 2022-03-10  Richard Biener  <rguenther@suse.de>
26658         PR tree-optimization/102943
26659         * tree-ssa-dom.cc (back_propagate_equivalences): Only
26660         populate the dominance bitmap if fast queries are not
26661         available.  Use a tree view bitmap.
26662         (record_temporary_equivalences): Cache the dominance bitmap
26663         across all equivalences on the edge.
26665 2022-03-10  Tom de Vries  <tdevries@suse.de>
26667         PR target/104840
26668         * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
26669         of false,true.
26671 2022-03-10  Tom de Vries  <tdevries@suse.de>
26673         PR target/104783
26674         * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
26675         (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
26676         (nvptx_get_unisimt_outside_simt_predicate): New function.
26677         (predicate_insn): New function, factored out of ...
26678         (nvptx_reorg_uniform_simt): ... here.  Predicate all emitted insns.
26679         * config/nvptx/nvptx.h (struct machine_function): Add
26680         unisimt_outside_simt_predicate field.
26681         * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
26682         (define_insn "nvptx_uniform_warp_check"): Make predicable.
26684 2022-03-10  Tom de Vries  <tdevries@suse.de>
26686         * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
26687         result.
26689 2022-03-10  Tom de Vries  <tdevries@suse.de>
26691         PR target/104815
26692         * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
26693         modifier.
26694         * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
26696 2022-03-10  Tom de Vries  <tdevries@suse.de>
26698         * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
26699         Emit atom.and.b64 instead of atom.b64.and.
26701 2022-03-10  Tom de Vries  <tdevries@suse.de>
26703         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
26704         (MULTILIB_OPTIONS): ... here.
26706 2022-03-10  Tom de Vries  <tdevries@suse.de>
26708         PR target/104758
26709         * config/nvptx/nvptx.opt (misa): Set default to sm_30.
26710         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
26712 2022-03-10  Thomas Schwinge  <thomas@codesourcery.com>
26714         PR middle-end/90115
26715         PR middle-end/102330
26716         PR middle-end/104774
26717         * omp-low.cc (oacc_privatization_candidate_p)
26718         (oacc_privatization_scan_clause_chain)
26719         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
26720         Analyze 'lookup_decl'-translated DECL.
26722 2022-03-10  Jakub Jelinek  <jakub@redhat.com>
26724         PR target/99708
26725         * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
26726         RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
26727         (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
26728         * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
26729         "**NULL**" if type_node is NULL first.  Handle
26730         ieee128_float_type_node.
26731         (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
26732         and ptr_ibm128_float_type_node.  Set ibm128_float_type_node and
26733         ieee128_float_type_node to NULL rather than long_double_type_node if
26734         they aren't supported.  Do support __ibm128 even if
26735         !TARGET_FLOAT128_TYPE when long double is double double.
26736         (rs6000_expand_builtin): Error if bif_is_ibm128 and
26737         !ibm128_float_type_node.  Remap RS6000_BIF_{,UN}PACK_IF to
26738         RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
26739         for it.
26740         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
26741         __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
26742         (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
26743         Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
26744         Formatting fix.
26745         * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
26746         (struct attrinfo): Add isibm128 member.
26747         (TYPE_MAP_SIZE): Remove.
26748         (type_map): Use [] instead of [TYPE_MAP_SIZE].  For "if" use
26749         ibm128_float_type_node only if it is non-NULL, otherwise fall back
26750         to long_double_type_node.  Remove "pif" entry.
26751         (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
26752         (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
26753         (write_type_node): Use sizeof type_map / sizeof type_map[0]
26754         instead of TYPE_MAP_SIZE.
26755         (write_bif_static_init): Handle isibm128.
26756         * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
26757         (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
26758         attribute.
26760 2022-03-09  Richard Biener  <rguenther@suse.de>
26762         * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
26763         with non-decl operand, avoiding a copy.
26765 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
26767         PR target/104781
26768         * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
26770 2022-03-09  Richard Biener  <rguenther@suse.de>
26772         PR middle-end/104786
26773         * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
26774         for VLAs without an upper size bound.
26776 2022-03-09  Xi Ruoyao  <xry111@mengyan1223.wang>
26778         PR tree-optimization/104851
26779         * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
26780         error.
26782 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
26784         PR c/104711
26785         * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
26786         is enabled by it only for C++11 to C++17 rather than for C++03 or
26787         later.
26788         (-Wshift-negative-value): Similarly (except here we stated
26789         that it is enabled for C++11 or later).
26791 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
26793         PR rtl-optimization/104839
26794         * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
26795         Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
26796         (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
26797         instead of incorrect 0 in SUBREG_PROMOTED_SET.
26799 2022-03-09  Xi Ruoyao  <xry111@mengyan1223.wang>
26801         PR target/104842
26802         * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
26803         value before adding an offset.
26805 2022-03-08  Christophe Lyon  <christophe.lyon@arm.com>
26807         * config/arm/arm-builtins.cc
26808         (arm_binop_none_none_unone_qualifiers): Delete.
26809         (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
26811 2022-03-08  Iain Sandoe  <iain@sandoe.co.uk>
26813         PR translation/104552
26814         * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
26815         the PCH out of memory error message punctuation and wording.
26817 2022-03-08  Marek Polacek  <polacek@redhat.com>
26819         PR rtl-optimization/104777
26820         * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
26821         ASM_OPERANDS_LABEL_VEC has at least one element.
26823 2022-03-08  H.J. Lu  <hjl.tools@gmail.com>
26825         PR target/104781
26826         * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
26827         stack realignment or regparm nested function with EH return.
26829 2022-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
26831         PR target/104790
26832         * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
26833         * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
26834         register for non widening loads or narrowing stores.
26836 2022-03-08  Eric Gallager  <egallager@gcc.gnu.org>
26838         PR translation/104552
26839         * params.opt: Fix typo.
26841 2022-03-08  Richard Biener  <rguenther@suse.de>
26843         PR tree-optimization/84201
26844         * params.opt (-param=vect-induction-float): Add.
26845         * doc/invoke.texi (vect-induction-float): Document.
26846         * tree-vect-loop.cc (vectorizable_induction): Honor
26847         param_vect_induction_float.
26849 2022-03-08  Martin Jambor  <mjambor@suse.cz>
26851         PR translation/104552
26852         * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
26853         "that" in the description.
26855 2022-03-08  Richard Biener  <rguenther@suse.de>
26857         PR tree-optimization/104825
26858         * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
26859         guard modref get_ao_ref on a pointer typed argument.
26861 2022-03-08  liuhongt  <hongtao.liu@intel.com>
26863         * config/i386/sse.md (*vec_dupv4si): Disable memory operand
26864         for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
26866 2022-03-07  Jonathan Wakely  <jwakely@redhat.com>
26868         * doc/invoke.texi (C++ Modules): Remove anachronism.
26870 2022-03-07  Martin Liska  <mliska@suse.cz>
26872         PR middle-end/104381
26873         * opts.cc (finish_options): If debug info is disabled
26874         (debug_info_level) and -fvar-tracking is unset, disable it.
26876 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
26878         * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
26879         * config/riscv/riscv.cc: Likewise.
26880         * config/darwin.h: Likewise.
26881         * config/i386/i386.cc: Likewise.
26882         * config/aarch64/thunderx3t110.md: Likewise.
26883         * config/aarch64/fractional-cost.h: Likewise.
26884         * config/vax/vax.cc: Likewise.
26885         * config/rs6000/pcrel-opt.md: Likewise.
26886         * config/rs6000/predicates.md: Likewise.
26887         * ctfc.h: Likewise.
26888         * tree-ssa-uninit.cc: Likewise.
26889         * value-relation.h: Likewise.
26890         * gimple-range-gori.cc: Likewise.
26891         * ipa-polymorphic-call.cc: Likewise.
26892         * pointer-query.cc: Likewise.
26893         * ipa-sra.cc: Likewise.
26894         * internal-fn.cc: Likewise.
26895         * varasm.cc: Likewise.
26896         * gimple-ssa-warn-access.cc: Likewise.
26898 2022-03-07  Martin Liska  <mliska@suse.cz>
26900         PR target/104794
26901         * config/arm/arm.cc (arm_option_override_internal): Add missing
26902         space.
26904 2022-03-07  Richard Biener  <rguenther@suse.de>
26906         PR tree-optimization/104782
26907         * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
26908         Re-instantiate r10-5979 fix, add comment.
26910 2022-03-07  Martin Liska  <mliska@suse.cz>
26912         PR target/104797
26913         * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
26914         parenthesis from built-in name.
26916 2022-03-07  Martin Liska  <mliska@suse.cz>
26918         PR target/104794
26919         * config/arm/arm.cc (arm_option_override_internal): Fix quoting
26920         of options in error messages.
26921         (arm_option_reconfigure_globals): Likewise.
26923 2022-03-07  Martin Liska  <mliska@suse.cz>
26925         PR target/104794
26926         * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
26927         message.  Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
26928         have only range [0,32].
26930 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
26932         PR target/104775
26933         * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
26934         S constraint instead of T in the last alternative.
26936 2022-03-07  Martin Liska  <mliska@suse.cz>
26938         * plugin.cc (default_plugin_dir_name): Remove <dir> from error
26939         message.
26941 2022-03-07  Martin Liska  <mliska@suse.cz>
26943         PR translation/90148
26944         * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
26945         quote to a proper place.
26946         * plugin.cc (default_plugin_dir_name): Likewise.
26948 2022-03-07  Martin Liska  <mliska@suse.cz>
26950         PR target/99297
26951         * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
26952         string.
26954 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
26956         PR target/104779
26957         * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
26958         define_expand pattern.  Rename define_insn to ...
26959         (*avx512dq_mul<mode>3<mask_name>): ... this.
26960         (<code><mode>3_mask): New any_logic define_expand pattern.
26961         (<mask_codefor><code><mode>3<mask_name>): Rename to ...
26962         (*<code><mode>3<mask_name>): ... this.
26964 2022-03-05  Jakub Jelinek  <jakub@redhat.com>
26966         * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
26967         visited bitmap and its use.  Also punt on EDGE_ABNORMAL edges.
26969 2022-03-05  Roger Sayle  <roger@nextmovesoftware.com>
26970             Uroš Bizjak  <ubizjak@gmail.com>
26972         PR testsuite/104732
26973         * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
26974         Include DI mode unconditionally.
26975         (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
26976         i.e. always split on !TARGET_64BIT.
26977         (*<any_or>di3_doubleword): Likewise.
26978         (*one_cmpldi2_doubleword): Likewise.
26979         (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
26980         (<any_or><mode>3 expander): Likewise.
26981         (one_cmpl<mode>2 expander): Likewise.
26983 2022-03-05   Michael Meissner  <meissner@linux.ibm.com>
26985         PR target/104698
26986         * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
26987         (mtvsrdd_diti_w1): Delete.
26988         (extendditi2): Convert from define_expand to
26989         define_insn_and_split.  Replace with code to deal with both GPR
26990         registers and with altivec registers.
26992 2022-03-04  Segher Boessenkool  <segher@kernel.crashing.org>
26994         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
26995         bit.  Handle most older CPUs.
26997 2022-03-04  Iain Sandoe  <iain@sandoe.co.uk>
26999         * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
27000         avoid a mismatch with DECL_MD_FUNCTION_CODE().
27002 2022-03-04  Iain Sandoe  <iain@sandoe.co.uk>
27004         PR target/104117
27005         * config/rs6000/darwin.md (@machopic_high_<mode>): New.
27006         (@machopic_low_<mode>): New.
27007         * config/rs6000/predicates.md (macho_pic_address): New.
27008         * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
27009         apply the TLS processing to Darwin.
27010         * lra-constraints.cc (process_address_1): Revert the changes
27011         in r12-7209.
27013 2022-03-04  Peter Bergner  <bergner@linux.ibm.com>
27015         PR target/87496
27016         PR target/104208
27017         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
27018         ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
27019         -mlong-double-128.
27020         Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
27021         from here...
27022         * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
27023         ... to here.
27025 2022-03-04  Jakub Jelinek  <jakub@redhat.com>
27027         PR middle-end/104529
27028         * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
27029         on automatic objects which will be runtime initialized.
27031 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
27033         PR middle-end/100280
27034         PR middle-end/104132
27035         PR middle-end/104133
27036         * omp-low.cc (task_shared_vars): Rename to
27037         'make_addressable_vars'.  Adjust all users.
27038         (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
27039         'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
27041 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
27043         PR middle-end/100280
27044         * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
27045         * tree-core.h: Document it.
27046         * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
27047         'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
27048         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
27049         Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
27050         'TREE_ADDRESSABLE'.
27052 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
27054         PR middle-end/100280
27055         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
27056         Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
27057         '[...]' declared in block made addressable".
27059 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
27061         PR middle-end/100400
27062         PR middle-end/103836
27063         PR middle-end/104061
27064         * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
27065         Catch 'GIMPLE_DEBUG'.
27067 2022-03-04  Jakub Jelinek  <jakub@redhat.com>
27069         PR c/104627
27070         * tree.cc (warn_deprecated_use): For types prefer to use node
27071         and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
27072         NULL.
27074 2022-03-04  H.J. Lu  <hjl.tools@gmail.com>
27076         PR target/104704
27077         * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
27078         a pseudo register.
27080 2022-03-03  Martin Sebor  <msebor@redhat.com>
27082         PR middle-end/104761
27083         * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
27084         mark_dfs_back_edges.
27086 2022-03-03  Martin Liska  <mliska@suse.cz>
27088         * configure.ac: Use linker plug-in by default.
27089         * configure: Regenerate.
27091 2022-03-03  Martin Liska  <mliska@suse.cz>
27093         * configure.ac: Now ld.mold support LTO plugin API, use it.
27094         * configure: Regenerate.
27096 2022-03-03  Tom de Vries  <tdevries@suse.de>
27098         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
27100 2022-03-03  Tom de Vries  <tdevries@suse.de>
27102         PR target/104758
27103         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
27105 2022-03-03  Tom de Vries  <tdevries@suse.de>
27107         * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
27109 2022-03-03  Jakub Jelinek  <jakub@redhat.com>
27111         PR middle-end/104757
27112         * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
27113         gimplify_omp_for.
27114         (gimplify_expr) <case OMP_SIMD>: Temporarily disable
27115         gimplify_ctxp->into_ssa around call to gimplify_omp_for.
27117 2022-03-03  Jakub Jelinek  <jakub@redhat.com>
27119         PR middle-end/104558
27120         * calls.cc (store_one_arg): When not calling emit_push_insn
27121         because size_rtx is const0_rtx, call at least anti_adjust_stack
27122         on arg->locate.alignment_pad if !argblock and the alignment might
27123         be non-zero.
27125 2022-03-02  Alexandre Oliva  <oliva@adacore.com>
27127         * lra-constraints.cc (undo_optional_reloads): Recognize and
27128         drop insns of multi-word move sequences, tolerate removal
27129         iteration on an already-removed clobber, and refuse to
27130         substitute original pseudos into clobbers.
27132 2022-03-02  Qing Zhao  <qing.zhao@oracle.com>
27134         PR middle-end/102276
27135         * common.opt (-Wtrivial-auto-var-init): New option.
27136         * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
27137         (-ftrivial-auto-var-init): Update option;
27138         * gimplify.cc (emit_warn_switch_unreachable): New function.
27139         (warn_switch_unreachable_r): Rename to ...
27140         (warn_switch_unreachable_and_auto_init_r): This.
27141         (maybe_warn_switch_unreachable): Rename to ...
27142         (maybe_warn_switch_unreachable_and_auto_init): This.
27143         (gimplify_switch_expr): Update calls to renamed function.
27145 2022-03-02  Richard Biener  <rguenther@suse.de>
27147         PR rtl-optimization/104686
27148         * ira-color.cc (object_conflicts_with_allocno_p): New function
27149         using a bitvector test instead of iterating when possible.
27150         (allocnos_conflict_p): Choose the best allocno to iterate over
27151         object conflicts.
27152         (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
27153         last.
27155 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
27157         * cfg.cc (dump_edge_info): Dump goto_locus if present.
27159 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
27161         PR rtl-optimization/104589
27162         * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
27163         INSN_LOCATION comparison with goto_locus.
27165 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
27167         * tree-ssa-strlen.cc (strlen_pass::handle_assign,
27168         strlen_pass::before_dom_children): Comment spelling fixes.
27170 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
27172         * ipa-modref-tree.cc (modref_access_node::contains,
27173         modref_access_node::closer_pair_p, modref_access_node::insert,
27174         modref_access_node::insert_kill): Comment spelling fixes.
27175         * ipa-modref.cc: Likewise.
27176         (modref_summary::finalize, ignore_nondeterminism_p,
27177         class modref_access_analysis,
27178         modref_access_analysis::set_side_effects,
27179         modref_access_analysis::set_nondeterministic,
27180         modref_access_analysis::record_global_memory_load,
27181         modref_access_analysis::propagate, modref_access_analysis::analyze,
27182         struct escape_point, class modref_lattice, modref_lattice::merge,
27183         modref_lattice::merge_deref, class modref_eaf_analysis,
27184         modref_eaf_analysis::merge_call_lhs_flags,
27185         modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
27186         modref_eaf_analysis::record_escape_points, remap_kills,
27187         update_escape_summary, remove_useless_summaries,
27188         ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
27189         Likewise.
27190         * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
27191         Likewise.
27192         * ipa-modref-tree.h (enum modref_special_parms,
27193         struct modref_access_node): Likewise.
27195 2022-03-01  Jakub Jelinek  <jakub@redhat.com>
27197         PR tree-optimization/104715
27198         * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
27199         unnecessarily test if ptr is a SSA_NAME, it has to be.  Only push lhs
27200         of a call if gimple_call_return_arg is equal to ptr, not just when it
27201         is non-NULL.
27203 2022-03-01  Jakub Jelinek  <jakub@redhat.com>
27205         * gimple-ssa-warn-access.cc (warn_string_no_nul,
27206         maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
27207         matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
27208         pass_waccess::check_alloca, pass_waccess::check_strcat,
27209         memmodel_to_uhwi, fntype_argno_type,
27210         pass_waccess::maybe_check_access_sizes,
27211         pass_waccess::check_call_access,
27212         pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
27213         Comment spelling fixes.
27215 2022-03-01  Richard Biener  <rguenther@suse.de>
27217         PR tree-optimization/104716
27218         * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
27219         Check if we can copy the loop.
27221 2022-03-01  H.J. Lu  <hjl.tools@gmail.com>
27223         PR middle-end/104721
27224         * cfgexpand.cc (expand_gimple_basic_block): Clear
27225         currently_expanding_gimple_stmt when returning inside the loop.
27227 2022-03-01  Martin Liska  <mliska@suse.cz>
27229         PR ipa/104533
27230         * multiple_target.cc (get_attr_len): Move to tree.c.
27231         (expand_target_clones): Remove single value checking.
27232         * tree.cc (get_target_clone_attr_len): New fn.
27233         * tree.h (get_target_clone_attr_len): Likewise.
27235 2022-03-01  Martin Liska  <mliska@suse.cz>
27237         PR gcov-profile/104677
27238         * doc/invoke.texi: Document more .gcda file name generation.
27240 2022-03-01  Tom de Vries  <tdevries@suse.de>
27242         PR target/102429
27243         * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
27244         * config/nvptx/nvptx.md
27245         (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
27246         New predicate.
27247         (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
27248         Use nvptx_register_or_complex_di_df_register_operand.
27250 2022-03-01  Tom de Vries  <tdevries@suse.de>
27252         * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
27253         * config/nvptx/gen-copyright.sh: New file.
27254         * config/nvptx/gen-h.sh: New file.
27255         * config/nvptx/gen-opt.sh: New file.
27256         * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
27257         (TARGET_SM75, TARGET_SM80): Move ...
27258         * config/nvptx/nvptx-gen.h: ... here.  New file, generate.
27259         * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
27260         * config/nvptx/nvptx-gen.opt: ... here.  New file, generate.
27261         * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
27262         ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
27264 2022-03-01  Tom de Vries  <tdevries@suse.de>
27266         * config/nvptx/gen-omp-device-properties.sh: New file.
27267         * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
27269 2022-03-01  Tom de Vries  <tdevries@suse.de>
27271         * config/nvptx/nvptx-sm.def: New file.
27272         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
27273         * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
27274         * config/nvptx/nvptx.cc (sm_version_to_string)
27275         (nvptx_omp_device_kind_arch_isa): Same.
27277 2022-03-01  Robin Dapp  <rdapp@linux.ibm.com>
27279         PR rtl-optimization/104154
27280         * config/arc/arc.cc (gen_compare_reg):  Return the CC-mode
27281         comparison ifcvt passed us.
27283 2022-03-01  Hongyu Wang  <hongyu.wang@intel.com>
27285         PR target/104664
27286         * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
27287         Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
27289 2022-02-28  Roger Sayle  <roger@nextmovesoftware.com>
27291         PR tree-optimization/91384
27292         * config/i386/i386.md (peephole2): Eliminate final testl insn
27293         from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
27294         transforming using *negsi_2 for the negation.
27296 2022-02-28  Roger Sayle  <roger@nextmovesoftware.com>
27297             Eric Botcazou  <ebotcazou@adacore.com>
27299         PR middle-end/80270
27300         * expmed.cc (extract_integral_bit_field): If OP0 is a hard
27301         register, copy it to a pseudo before calling simplify_gen_subreg.
27303 2022-02-28  Vladimir N. Makarov  <vmakarov@redhat.com>
27305         PR rtl-optimization/104637
27306         * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
27307         as possible on one subpass.
27309 2022-02-28  Qing Zhao  <qing.zhao@oracle.com>
27311         PR middle-end/104550
27312         * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
27313         created uses.
27315 2022-02-28  Martin Liska  <mliska@suse.cz>
27317         PR ipa/104648
27318         * main.cc (main): Use flag_checking instead of CHECKING_P
27319         and run toplev::finalize only if there is not error seen.
27321 2022-02-28  Richard Biener  <rguenther@suse.de>
27323         * tree-ssa-pre.cc (compute_avail): Revert part of last change.
27325 2022-02-28  Richard Biener  <rguenther@suse.de>
27327         PR tree-optimization/104700
27328         * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
27329         into ...
27330         (find_or_generate_expression): ... here, simplifying code.
27332 2022-02-28  Tom de Vries  <tdevries@suse.de>
27334         * config/nvptx/nvptx-opts.h (enum ptx_version): Add
27335         PTX_VERSION_default.
27336         * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
27337         PTX_VERSION_default.
27338         * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
27340 2022-02-28  Richard Biener  <rguenther@suse.de>
27342         PR rtl-optimization/104686
27343         * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
27344         skipping bits that are zero.
27345         (ira_object_conflict_iter_cond): Likewise.
27347 2022-02-28  Hongyu Wang  <hongyu.wang@intel.com>
27349         * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
27350         (_mm512_ternarylogic_epi64): Truncate imm to unsigned
27351         char to avoid error when using ~enum as parameter.
27352         (_mm512_mask_ternarylogic_epi64): Likewise.
27353         (_mm512_maskz_ternarylogic_epi64): Likewise.
27354         (_mm512_ternarylogic_epi32): Likewise.
27355         (_mm512_mask_ternarylogic_epi32): Likewise.
27356         (_mm512_maskz_ternarylogic_epi32): Likewise.
27357         * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
27358         Adjust imm param type to unsigned char.
27359         (_mm256_mask_ternarylogic_epi64): Likewise.
27360         (_mm256_maskz_ternarylogic_epi64): Likewise.
27361         (_mm256_ternarylogic_epi32): Likewise.
27362         (_mm256_mask_ternarylogic_epi32): Likewise.
27363         (_mm256_maskz_ternarylogic_epi32): Likewise.
27364         (_mm_ternarylogic_epi64): Likewise.
27365         (_mm_mask_ternarylogic_epi64): Likewise.
27366         (_mm_maskz_ternarylogic_epi64): Likewise.
27367         (_mm_ternarylogic_epi32): Likewise.
27368         (_mm_mask_ternarylogic_epi32): Likewise.
27369         (_mm_maskz_ternarylogic_epi32): Likewise.
27371 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
27372             Marc Glisse  <marc.glisse@inria.fr>
27374         PR tree-optimization/104675
27375         * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
27376         Restrict simplifications to INTEGRAL_TYPE_P.
27378 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
27380         PR target/104681
27381         * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
27383 2022-02-25  Claudiu Zissulescu  <claziss@synopsys.com>
27385         * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
27386         comparison is not valid.
27387         * config/arc/arc.md (movsicc): Fail if comparison is not valid.
27388         (movdicc): Likewise.
27389         (movsfcc): Likewise.
27390         (movdfcc): Likewise.
27392 2022-02-25  Richard Biener  <rguenther@suse.de>
27394         PR tree-optimization/103037
27395         * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
27396         (vn_nary_length_from_stmt): Likewise.
27397         (init_vn_nary_op_from_stmt): Likewise.
27398         (vn_nary_op_compute_hash): Likewise.
27399         * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
27400         (vn_nary_length_from_stmt): Likewise.
27401         (init_vn_nary_op_from_stmt): Likewise.
27402         (vn_nary_op_compute_hash): Likewise.
27403         * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
27404         (get_or_alloc_expr_for_nary): Pass in the value-id to use,
27405         (re-)compute the hash value and if the expression is not
27406         found allocate it from pre_expr_obstack.
27407         (phi_translate_1): Do not insert the NARY found in the
27408         VN tables but build a PRE expression from the valueized
27409         NARY with the value-id we eventually found.
27410         (find_or_generate_expression): Assert we have an entry
27411         for constant values.
27412         (compute_avail): Insert not valueized expressions into
27413         EXP_GEN using the value-id from the VN tables.
27414         (init_pre): Allocate pre_expr_obstack.
27415         (fini_pre): Free pre_expr_obstack.
27417 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
27419         PR target/104674
27420         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
27421         * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
27422         SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
27424 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
27426         * warning-control.cc (get_nowarn_spec): Comment spelling fix.
27428 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
27430         PR middle-end/104679
27431         * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
27433 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
27435         PR tree-optimization/104675
27436         * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
27437         COMPLEX_TYPE.
27439 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
27441         PR target/104121
27442         PR target/103302
27443         * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
27445 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
27447         PR middle-end/104540
27448         * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
27449         dw_cfi_cfa_loc.
27451 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
27453         PR tree-optimization/103856
27454         * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
27455         eh edge to be requested through an extra parameter.
27456         (pass_harden_compares::execute): Copy PHI args in the EH dest
27457         block for the new EH edge added for the inverted compare.
27459 2022-02-24  Palmer Dabbelt  <palmer@rivosinc.com>
27461         * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
27462         of position independence that -mcmodel=medany affords.
27464 2022-02-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
27466         PR target/104656
27467         * configure.ac: --disable-gcov if targetting bpf-*.
27468         * configure: Regenerate.
27470 2022-02-24  Richard Biener  <rguenther@suse.de>
27472         PR tree-optimization/104676
27473         * tree-loop-distribution.cc (loop_distribution::execute):
27474         Do a full scev_reset.
27476 2022-02-24  Jakub Jelinek  <jakub@redhat.com>
27478         PR tree-optimization/104601
27479         * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
27480         non-SSA_NAME lhs value number vdef to itself instead of e.g. the
27481         vuse value number.
27483 2022-02-24  Tom de Vries  <tdevries@suse.de>
27484             Tobias Burnus  <tobias@codesourcery.com>
27486         * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
27487         sm_70, sm_75 and sm_80.
27488         * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
27490 2022-02-24  Tom de Vries  <tdevries@suse.de>
27492         * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
27493         "rotrsi3"): New define_insn.
27495 2022-02-24  Tom de Vries  <tdevries@suse.de>
27497         * config/nvptx/nvptx.cc (gen_comment): Use
27498         DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
27500 2022-02-24  liuhongt  <hongtao.liu@intel.com>
27502         * config/i386/sse.md (<code>v1ti3): Add suffix and replace
27503         isa attr of alternative 2 from avx to avx512vl.
27505 2022-02-23  Richard Biener  <rguenther@suse.de>
27506             Jakub Jelinek  <jakub@redhat.com>
27508         PR tree-optimization/104644
27509         * doc/match-and-simplify.texi: Amend ! documentation.
27510         * genmatch.cc (expr::gen_transform): Code-generate ! support
27511         for GENERIC.
27512         (parser::parse_expr): Allow ! for GENERIC.
27513         * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
27514         bswap.
27516 2022-02-23  Richard Biener  <rguenther@suse.de>
27518         PR tree-optimization/101636
27519         * tree-vect-slp.cc (vect_print_slp_tree): Dump the
27520         vector type of the node.
27521         (vect_slp_analyze_operations): Make sure the CTOR
27522         is vectorized with an expected type.
27523         (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
27525 2022-02-23  Jakub Jelinek  <jakub@redhat.com>
27527         PR c/104633
27528         * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
27529         Don't warn about calls to corresponding builtin from extern inline
27530         gnu_inline wrappers.
27532 2022-02-23  Roger Sayle  <roger@nextmovesoftware.com>
27534         PR target/104489
27535         * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
27537 2022-02-23  Christophe Lyon  <christophe.lyon@arm.com>
27539         PR target/100757
27540         PR target/101325
27541         * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
27542         typo.
27544 2022-02-23  Cui,Lili  <lili.cui@intel.com>
27546         * doc/invoke.texi: Update documents for Intel architectures.
27548 2022-02-22  Roger Sayle  <roger@nextmovesoftware.com>
27550         * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
27551         bootstrap.
27553 2022-02-22  Thomas Schwinge  <thomas@codesourcery.com>
27555         * omp-low.cc (omp_build_component_ref): Move function...
27556         * omp-general.cc (omp_build_component_ref): ... here.  Remove
27557         'static'.
27558         * omp-general.h (omp_build_component_ref): Declare function.
27559         * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
27560         function.
27561         (build_receiver_ref, build_sender_ref): Call
27562         'omp_build_component_ref' instead.
27564 2022-02-22  Thomas Schwinge  <thomas@codesourcery.com>
27566         * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
27567         simplify.  Adjust all users.
27569 2022-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
27571         PR target/88134
27572         * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
27573         atomic_update_decl): Add GTY markup.
27575 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27577         * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
27579 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27581         PR target/100757
27582         PR target/101325
27583         * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
27584         predicate.
27585         (CX_BINARY_UNONE_QUALIFIERS): Likewise.
27586         (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
27587         (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
27588         (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
27589         (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
27590         * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
27591         * config/arm/mve.md: Use VxBI instead of HI.
27593 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27595         PR target/100757
27596         PR target/101325
27597         * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
27598         qualifier.
27599         (STRSBU_P_QUALIFIERS): Likewise.
27600         (LDRGBS_Z_QUALIFIERS): Likewise.
27601         (LDRGBU_Z_QUALIFIERS): Likewise.
27602         (LDRGBWBXU_Z_QUALIFIERS): Likewise.
27603         (LDRGBWBS_Z_QUALIFIERS): Likewise.
27604         (LDRGBWBU_Z_QUALIFIERS): Likewise.
27605         (STRSBWBS_P_QUALIFIERS): Likewise.
27606         (STRSBWBU_P_QUALIFIERS): Likewise.
27607         * config/arm/mve.md: Use VxBI instead of HI.
27609 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27611         PR target/100757
27612         PR target/101325
27613         * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
27614         (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
27615         (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
27616         (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
27617         (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
27618         (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
27619         (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
27620         (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
27621         (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
27622         (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
27623         (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
27624         (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
27625         (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
27626         (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
27627         (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
27628         (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
27629         (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
27630         (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
27631         (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
27632         (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
27633         (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
27634         (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
27635         (STRS_P_QUALIFIERS): Use predicate qualifier.
27636         (STRU_P_QUALIFIERS): Likewise.
27637         (STRSU_P_QUALIFIERS): Likewise.
27638         (STRSS_P_QUALIFIERS): Likewise.
27639         (LDRGS_Z_QUALIFIERS): Likewise.
27640         (LDRGU_Z_QUALIFIERS): Likewise.
27641         (LDRS_Z_QUALIFIERS): Likewise.
27642         (LDRU_Z_QUALIFIERS): Likewise.
27643         (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
27644         (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
27645         (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
27646         (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
27647         * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
27648         * config/arm/mve.md: Use MVE_VPRED instead of HI.
27650 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27652         PR target/100757
27653         PR target/101325
27654         * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
27655         Delete.
27656         (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
27657         (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
27658         (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
27659         * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
27660         predicated qualifiers.
27661         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
27662         (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
27664 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27666         PR target/100757
27667         * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
27668         (arm_expand_vector_compare): Update prototype.
27669         * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
27670         (arm_vector_mode_supported_p): Add support for VxBI modes.
27671         (arm_expand_vector_compare): Remove useless generation of vpsel.
27672         (arm_expand_vcond): Fix select operands.
27673         (arm_get_mask_mode): New.
27674         * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
27675         (vec_cmpu<mode><MVE_vpred>): New.
27676         (vcond_mask_<mode><MVE_vpred>): New.
27677         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
27678         (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
27679         * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
27680         (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
27681         and disable for MVE.
27682         * doc/sourcebuild.texi (arm_mve): Document new effective-target.
27684 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27686         PR target/100757
27687         PR target/101325
27688         * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
27689         (BINOP_PRED_NONE_NONE_QUALIFIERS)
27690         (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
27691         (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
27692         * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
27693         * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
27694         modes.
27695         (arm_mode_to_pred_mode): New.
27696         (arm_expand_vector_compare): Use the right VxBI mode instead of
27697         HI.
27698         (arm_expand_vcond): Likewise.
27699         (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
27700         (mve_bool_vec_to_const): New.
27701         (neon_make_constant): Call mve_bool_vec_to_const when needed.
27702         * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
27703         (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
27704         (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
27705         (vpselq_s, vpselq_f): Use new predicated qualifiers.
27706         * config/arm/constraints.md (DB): New.
27707         * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
27708         (MVE_VPRED, MVE_vpred): New attribute iterators.
27709         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
27710         (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
27711         (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
27712         (@mve_vpselq_<supf>v2di): Define separately.
27713         (mov<mode>): New expander for VxBI modes.
27714         * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
27715         MVE_7_HI iterator and add support for DB constraint.
27717 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27718             Richard Sandiford  <richard.sandiford@arm.com>
27720         PR target/100757
27721         PR target/101325
27722         * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
27723         VNx2BI): Update definition.
27724         * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
27725         simd types.
27726         (arm_init_builtin): Map predicate vectors arguments to HImode.
27727         (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
27728         rtx. Move return value to HImode rtx.
27729         * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
27730         * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
27731         * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
27732         Pred2x8_t,Pred4x4_t): New.
27733         * emit-rtl.cc (init_emit_once): Handle all boolean modes.
27734         * genmodes.cc (mode_data): Add boolean field.
27735         (blank_mode): Initialize it.
27736         (make_complex_modes): Fix handling of boolean modes.
27737         (make_vector_modes): Likewise.
27738         (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
27739         (make_vector_bool_mode): Likewise.
27740         (BOOL_MODE): New.
27741         (make_bool_mode): New.
27742         (emit_insn_modes_h): Fix generation of boolean modes.
27743         (emit_class_narrowest_mode): Likewise.
27744         * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
27745         parameter.  Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
27746         define BImode.
27747         * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
27748         Fix handling of constm1_rtx for VECTOR_BOOL.
27749         * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
27750         (native_decode_vector_rtx): Likewise.
27751         (test_vector_ops_duplicate): Skip vec_merge test
27752         with vectors of booleans.
27753         * varasm.cc (output_constant_pool_2): Likewise.
27755 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27757         * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
27758         for operand 1.
27760 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27762         * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
27764 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
27766         * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
27767         (REG_CLASS_NAMES): Likewise.
27768         (REG_CLASS_CONTENTS): Likewise.
27769         (CLASS_MAX_NREGS): Handle VPR.
27770         * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
27772 2022-02-22  Tobias Burnus  <tobias@codesourcery.com>
27773             Tom de Vries  <tdevries@suse.de>
27775         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
27776         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
27777         Likewise.
27778         * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
27780 2022-02-22  Tobias Burnus  <tobias@codesourcery.com>
27781             Tom de Vries  <tdevries@suse.de>
27783         * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
27784         * doc/invoke.texi (-mptx): Update for new values and defaults.
27786 2022-02-22  Tom de Vries  <tdevries@suse.de>
27788         * config/nvptx/nvptx.cc (gen_comment): New function.
27789         (workaround_uninit_method_1, workaround_uninit_method_2)
27790         (workaround_uninit_method_3): : Use gen_comment.
27791         * config/nvptx/nvptx.opt (mptx-comment): New option.
27793 2022-02-22  Richard Biener  <rguenther@suse.de>
27795         * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
27796         for a splat.
27798 2022-02-22  Roger Sayle  <roger@nextmovesoftware.com>
27799             Richard Biener  <rguenther@suse.de>
27801         * fold-const.cc (ctor_single_nonzero_element): New function to
27802         return the single non-zero element of a (vector) constructor.
27803         * fold-const.h (ctor_single_nonzero_element): Prototype here.
27804         * match.pd (reduc (constructor@0)): Simplify reductions of a
27805         constructor containing a single non-zero element.
27806         (reduc (@0 op VECTOR_CST) ->  (reduc @0) op CONST): Simplify
27807         reductions of vector operations of the same operator with
27808         constant vector operands.
27810 2022-02-22  Jakub Jelinek  <jakub@redhat.com>
27812         PR tree-optimization/104604
27813         * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
27814         Only check if gimple_assign_rhs1 is COMPLEX_CST if
27815         gimple_assign_rhs_code is COMPLEX_CST.
27817 2022-02-22  Jakub Jelinek  <jakub@redhat.com>
27819         PR target/104612
27820         * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
27821         on input operands before calling lowpart_subreg on it.  For output
27822         operand, use a vmode pseudo as destination and then move its lowpart
27823         subreg into operands[0] if lowpart_subreg fails on dest.
27824         (ix86_expand_xorsign): Likewise.
27826 2022-02-22  Richard Biener  <rguenther@suse.de>
27828         PR tree-optimization/104582
27829         PR target/99881
27830         * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
27831         Cost GPR to vector register moves for integer vector construction.
27833 2022-02-22  Richard Biener  <rguenther@suse.de>
27835         PR tree-optimization/104582
27836         * tree-vectorizer.h (stmt_info_for_cost::node): New field.
27837         (vector_costs::add_stmt_cost): Add SLP node parameter.
27838         (dump_stmt_cost): Likewise.
27839         (add_stmt_cost): Likewise, new overload and adjust.
27840         (add_stmt_costs): Adjust.
27841         (record_stmt_cost): New overload.
27842         * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
27843         (vector_costs::add_stmt_cost): Adjust.
27844         * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
27845         Adjust.
27846         * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
27847         the SLP node for costing.
27848         (vectorizable_slp_permutation): Likewise.
27849         * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
27850         new overloads.
27851         * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
27852         Adjust.
27853         * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
27854         Adjust.
27855         * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
27856         Adjust.
27857         (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
27859 2022-02-22  Richard Biener  <rguenther@suse.de>
27861         PR tree-optimization/104582
27862         * tree-vectorizer.h (add_stmt_cost): New overload.
27863         (record_stmt_cost): Likewise.
27864         * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
27865         Use add_stmt_costs.
27866         (vect_get_known_peeling_cost): Use new overloads.
27867         (vect_estimate_min_profitable_iters): Likewise.  Consistently
27868         use scalar_stmt for costing versioning checks.
27869         * tree-vect-stmts.cc (record_stmt_cost): New overload.
27871 2022-02-22  Hongyu Wang  <hongyu.wang@intel.com>
27873         PR target/103069
27874         * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
27875         Split atomic fetch and loop part.
27876         (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
27877         * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
27878         prototype.
27879         * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
27880         expander under TARGET_RELAX_CMPXCHG_LOOP.
27881         (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
27883 2022-02-21  Dan Li  <ashimida@linux.alibaba.com>
27885         * config/aarch64/aarch64.cc (SLOT_REQUIRED):
27886         Change wb_candidate[12] to wb_push_candidate[12].
27887         (aarch64_layout_frame): Likewise, and
27888         change callee_adjust when scs is enabled.
27889         (aarch64_save_callee_saves):
27890         Change wb_candidate[12] to wb_push_candidate[12].
27891         (aarch64_restore_callee_saves):
27892         Change wb_candidate[12] to wb_pop_candidate[12].
27893         (aarch64_get_separate_components):
27894         Change wb_candidate[12] to wb_push_candidate[12].
27895         (aarch64_expand_prologue): Push x30 onto SCS before it's
27896         pushed onto stack.
27897         (aarch64_expand_epilogue): Pop x30 frome SCS, while
27898         preventing it from being popped from the regular stack again.
27899         (aarch64_override_options_internal): Add SCS compile option check.
27900         (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
27901         * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
27902         wb_pop_candidate[12], and rename wb_candidate[12] to
27903         wb_push_candidate[12].
27904         * config/aarch64/aarch64.md (scs_push): New template.
27905         (scs_pop): Likewise.
27906         * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
27907         * doc/tm.texi: Regenerate.
27908         * doc/tm.texi.in: Add hook have_shadow_call_stack.
27909         * flag-types.h (enum sanitize_code):
27910         Add SANITIZE_SHADOW_CALL_STACK.
27911         * opts.cc (parse_sanitizer_options): Add shadow-call-stack
27912         and exclude SANITIZE_SHADOW_CALL_STACK.
27913         * target.def: New hook.
27914         * toplev.cc (process_options): Add SCS compile option check.
27915         * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
27917 2022-02-21  Tom de Vries  <tdevries@suse.de>
27919         PR target/104440
27920         * config/nvptx/nvptx.cc (workaround_uninit_method_1)
27921         (workaround_uninit_method_2, workaround_uninit_method_3)
27922         (workaround_uninit): New function.
27923         (nvptx_reorg): Use workaround_uninit.
27924         * config/nvptx/nvptx.opt (minit-regs): New option.
27926 2022-02-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
27928         PR rtl-optimization/104498
27929         * alias.cc (compare_base_symbol_refs): Correct distance computation
27930         when swapping x and y.
27932 2022-02-21  Andrew Pinski  <apinski@marvell.com>
27934         PR c/104506
27935         * tree-ssa.cc (tree_ssa_useless_type_conversion):
27936         Check the inner type before calling useless_type_conversion_p.
27938 2022-02-19  Tom de Vries  <tdevries@suse.de>
27940         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
27941         * config/nvptx/nvptx.md
27942         (define_insn "nvptx_atomic_store<mode>"): Rename to ...
27943         (define_insn "nvptx_atomic_store_sm70<mode>"): This.
27944         (define_insn "nvptx_atomic_store<mode>"): New define_insn.
27945         (define_expand "atomic_store<mode>"): Handle rename.  Use
27946         nvptx_atomic_store instead of atomic_exchange.
27948 2022-02-19  Tom de Vries  <tdevries@suse.de>
27950         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
27951         insns with atomic attribute.  Assert that all handled insns are
27952         PARALLELs.
27953         * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
27954         Set atomic attribute to false.
27956 2022-02-19  Tom de Vries  <tdevries@suse.de>
27958         * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
27959         type to bool.
27960         (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
27961         nvptx_warpsync, if necessary.
27963 2022-02-19  Jakub Jelinek  <jakub@redhat.com>
27965         PR sanitizer/102656
27966         * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
27967         known to be within bounds, treat it like automatic variables.
27968         If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
27969         current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
27970         it addressable.
27972 2022-02-18  Pat Haugen  <pthaugen@linux.ibm.com>
27974         * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
27975         (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
27976         mpower10-fusion-logical-add, mpower10-fusion-add-logical,
27977         mpower10-fusion-2add, mpower10-fusion-2store): Remove.
27978         * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
27979         OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
27980         * config/rs6000/rs6000.cc (rs6000_option_override_internal,
27981         power10_sched_reorder): Likewise.
27982         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
27983         gen_addadd): Likewise
27984         * config/rs6000/fusion.md: Regenerate.
27986 2022-02-18  Jakub Jelinek  <jakub@redhat.com>
27988         PR target/104257
27989         PR target/104598
27990         * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
27991         rather than __posix_memalign.
27993 2022-02-18  Richard Biener  <rguenther@suse.de>
27995         PR target/104581
27996         * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
27997         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
27998         of calling ix86_avx_u128_mode_source which would eventually
27999         have returned AVX_U128_ANY in some very special case.
28001 2022-02-18  Richard Biener  <rguenther@suse.de>
28003         PR tree-optimization/96881
28004         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
28005         CLOBBER handling.
28006         (control_parents_preserved_p): New function.
28007         (eliminate_unnecessary_stmts): Check that we preserved control
28008         parents before retaining a CLOBBER.
28009         (perform_tree_ssa_dce): Pass down aggressive flag
28010         to eliminate_unnecessary_stmts.
28012 2022-02-17  Jason Merrill  <jason@redhat.com>
28014         * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
28015         on TYPE_MAIN_VARIANT.
28017 2022-02-17  Paul A. Clarke  <pc@us.ibm.com>
28019         PR target/104257
28020         * config/rs6000/bmi2intrin.h: Uglify local variables.
28021         * config/rs6000/emmintrin.h: Likewise.
28022         * config/rs6000/mm_malloc.h: Likewise.
28023         * config/rs6000/mmintrin.h: Likewise.
28024         * config/rs6000/pmmintrin.h: Likewise.
28025         * config/rs6000/smmintrin.h: Likewise.
28026         * config/rs6000/tmmintrin.h: Likewise.
28027         * config/rs6000/xmmintrin.h: Likewise.
28029 2022-02-17  Robin Dapp  <rdapp@linux.ibm.com>
28031         PR target/104335
28032         * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
28033         if the expected comparison's first operand is of mode MODE_CC.
28035 2022-02-17  Vladimir N. Makarov  <vmakarov@redhat.com>
28037         PR rtl-optimization/104447
28038         * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
28039         hard reg set by lra_no_alloc_regs.
28041 2022-02-17  liuhongt  <hongtao.liu@intel.com>
28043         PR tree-optimization/104551
28044         PR tree-optimization/103771
28045         * match.pd (cond_expr_convert_p): Add types_match check when
28046         convert is extension.
28047         * tree-vect-patterns.cc
28048         (gimple_cond_expr_convert_p): Adjust comments.
28049         (vect_recog_cond_expr_convert_pattern): Ditto.
28051 2022-02-17  Jakub Jelinek  <jakub@redhat.com>
28053         PR debug/104557
28054         * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
28055         if expr has VOIDmode.
28057 2022-02-17  liuhongt  <hongtao.liu@intel.com>
28059         * config/i386/cpuid.h (bit_MPX): Removed.
28060         (bit_BNDREGS): Ditto.
28061         (bit_BNDCSR): Ditto.
28063 2022-02-17  Michael Meissner  <meissner@the-meissners.org>
28065         PR target/99708
28066         * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
28067         __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
28068         Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
28069         is created.
28071 2022-02-16  Andrew MacLeod  <amacleod@redhat.com>
28073         * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
28074         range_compatible_p instead of direct type comparison.
28076 2022-02-16  Jakub Jelinek  <jakub@redhat.com>
28078         PR rtl-optimization/104544
28079         * combine.cc (try_combine): When looking for insn whose links
28080         should be updated from i3 to i2, don't stop on debug insns, instead
28081         skip over them.
28083 2022-02-16  Richard Sandiford  <richard.sandiford@arm.com>
28085         PR target/100056
28086         * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
28087         * config/aarch64/aarch64.md: Extend the PR100056 patterns
28088         to handle plus in the same way as ior, if the operands have
28089         no set bits in common.
28091 2022-02-15  Andrew MacLeod  <amacleod@redhat.com>
28093         PR tree-optimization/104526
28094         * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
28095         new routine.
28096         * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
28097         of dependency chain if there isn't one.
28098         (gori_compute::condexpr_adjust): New.
28099         * gimple-range-gori.h (class gori_compute): New prototype.
28101 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
28103         PR target/100874
28104         * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
28105         Declare.
28106         * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
28107         * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
28109 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
28111         * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
28112         (vect_scalar_ops_slice_hash): Likewise.
28113         (vect_scalar_ops_slice::op): New function.
28114         * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
28115         (vect_scalar_ops_slice_hash::hash): Likewise.
28116         (vect_scalar_ops_slice_hash::equal): Likewise.
28117         (vect_prologue_cost_for_slp): Check for duplicate vectors.
28118         * config/aarch64/aarch64.cc
28119         (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
28120         (aarch64_aligned_constant_offset_p): New function.
28121         (aarch64_stp_sequence_cost): Likewise.
28122         (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
28123         (aarch64_vector_costs::finish_cost): Likewise.
28125 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
28127         * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
28128         use after free.
28130 2022-02-15  Richard Biener  <rguenther@suse.de>
28132         PR tree-optimization/104543
28133         * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
28134         come after the inner loop.
28136 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
28138         PR target/104536
28139         * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
28140         cannot instead of can%'t in diagnostics.  Formatting fixes.
28142 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
28144         PR middle-end/104522
28145         * fold-const.h (native_interpret_real): Declare.
28146         * fold-const.cc (native_interpret_real): No longer static.  Don't
28147         perform MODE_COMPOSITE_P verification here.
28148         (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
28149         for all modes.
28150         * gimple-fold.cc (clear_padding_type): Call native_interpret_real
28151         instead of native_interpret_expr.
28152         * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
28153         and comparison verification for all FLOAT_MODE_P modes, not just
28154         MODE_COMPOSITE_P.
28156 2022-02-15  Richard Biener  <rguenther@suse.de>
28158         PR tree-optimization/104519
28159         * fold-const.cc (multiple_of_p): Remove never true condition.
28160         * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
28161         the appropriate types for determining whether the difference
28162         of final and base is a multiple of the step.
28164 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
28166         PR debug/104517
28167         * omp-low.cc (task_cpyfns): New variable.
28168         (delete_omp_context): Don't call finalize_task_copyfn from here.
28169         (create_task_copyfn): Push task_stmt into task_cpyfns.
28170         (execute_lower_omp): Call finalize_task_copyfn here on entries from
28171         task_cpyfns vector and release the vector.
28173 2022-02-14  Martin Sebor  <msebor@redhat.com>
28175         PR middle-end/104355
28176         * doc/invoke.texi (-Warray-bounds): Update documentation.
28178 2022-02-14  Michael Meissner  <meissner@the-meissners.org>
28180         PR target/104253
28181         * config/rs6000/rs6000.cc (init_float128_ibm): Update the
28182         conversion functions used to convert IFmode types.
28184 2022-02-14  Andrew Stubbs  <ams@codesourcery.com>
28186         * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
28188 2022-02-14  Richard Biener  <rguenther@suse.de>
28190         PR tree-optimization/104528
28191         * tree-ssa.h (find_released_ssa_name): Declare.
28192         * tree-ssa.cc (find_released_ssa_name): Export.
28193         * cfgloop.cc (verify_loop_structure): Look for released
28194         SSA names in loops nb_iterations.
28195         * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
28196         estimates.
28198 2022-02-14  Richard Biener  <rguenther@suse.de>
28200         PR tree-optimization/104511
28201         * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
28202         touching DFP <-> FP conversions.
28204 2022-02-14  Richard Biener  <rguenther@suse.de>
28206         PR middle-end/104497
28207         * gimplify.cc (gimplify_compound_lval): Make sure the
28208         base is a non-register if needed and possible.
28210 2022-02-13  liuhongt  <hongtao.liu@intel.com>
28212         PR target/103771
28213         * match.pd (cond_expr_convert_p): New match.
28214         * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
28215         (vect_recog_cond_expr_convert_pattern): New.
28217 2022-02-12  Jakub Jelinek  <jakub@redhat.com>
28219         PR sanitizer/104449
28220         * asan.cc: Include tree-eh.h.
28221         (handle_builtin_alloca): Handle the case when __builtin_alloca or
28222         __builtin_alloca_with_align can throw.
28224 2022-02-12  Jakub Jelinek  <jakub@redhat.com>
28226         PR target/104502
28227         * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
28228         and AVX512VL isn't available, move operands[1] to operands[0] first.
28230 2022-02-12  Uroš Bizjak  <ubizjak@gmail.com>
28232         PR target/79754
28233         * config/i386/i386.cc (type_natural_mode):
28234         Skip decimal float vector modes.
28236 2022-02-11  Iain Sandoe  <iain@sandoe.co.uk>
28237             Vladimir Makarov  <vmakarov@redhat.com>
28239         PR target/104117
28240         * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
28241         Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
28242         emitting PIC code.
28243         (legitimate_lo_sum_address_p): Likewise.
28244         * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
28245         load from an invalid lo_sum address.
28247 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
28249         PR tree-optimization/104499
28250         * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
28251         of convert.
28253 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
28255         * tree.cc (build_common_builtin_nodes): Fix up formatting in
28256         __builtin_clear_padding decl creation.
28257         * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
28258         for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
28259         argument rather than in 3rd argument.
28260         (gimplify_call_expr): Likewise.  Fix up comment formatting.
28261         * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
28262         2 arguments instead of 3, take for_auto_init from the value
28263         of 2nd argument.
28265 2022-02-11  Vladimir N. Makarov  <vmakarov@redhat.com>
28267         PR rtl-optimization/104400
28268         * lra-constraints.cc (process_alt_operands): Don't make union of
28269         this_alternative_exclude_start_hard_regs when reg class in insn
28270         alternative covers other reg classes in the same alternative.
28272 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
28274         PR middle-end/104446
28275         * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
28276         operands.
28278 2022-02-11  Richard Biener  <rguenther@suse.de>
28280         PR middle-end/104496
28281         * internal-fn.cc (vectorized_internal_fn_supported_p):
28282         Bail out for integer mode vector types.
28284 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
28286         PR rtl-optimization/104459
28287         * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
28288         moving DEBUG_INSNs between bbs.
28290 2022-02-11  liuhongt  <hongtao.liu@intel.com>
28292         PR tree-optimization/104479
28293         * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
28294         for the dest of uncond_op.
28296 2022-02-11  Tom de Vries  <tdevries@suse.de>
28298         PR target/104456
28299         * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
28300         insn.
28302 2022-02-10  Qing Zhao  <qing.zhao@oracle.com>
28304         PR middle-end/100775
28305         * function.cc (gen_call_used_regs_seq): Call
28306         df_update_exit_block_uses when updating df.
28308 2022-02-10  Uroš Bizjak  <ubizjak@gmail.com>
28310         PR target/104469
28311         * config/i386/sse.md (vec_unpacks_float_lo_v4si):
28312         Change operand 1 constraint to register_operand.
28314 2022-02-10  Richard Biener  <rguenther@suse.de>
28316         PR tree-optimization/104373
28317         * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
28318         walk kind.
28319         * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
28320         walk kind as argument.
28321         (run_rpo_vn): Adjust.
28322         (pass_fre::execute): Likewise.
28323         * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
28324         blocks not reachable.
28325         (execute_late_warn_uninitialized): Mark all edges as
28326         executable.
28327         (execute_early_warn_uninitialized): Use VN to compute
28328         executable edges.
28329         (pass_data_early_warn_uninitialized): Enable a dump file,
28330         change dump name to warn_uninit.
28332 2022-02-10  Richard Biener  <rguenther@suse.de>
28334         PR middle-end/104467
28335         * match.pd (vector extract simplification): Multiply the
28336         number of CTOR elements with the number of element elements.
28338 2022-02-10  Richard Biener  <rguenther@suse.de>
28340         PR tree-optimization/104466
28341         * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
28342         for the MR_DEPENDENCE checks as intended.
28344 2022-02-10  Tom de Vries  <tdevries@suse.de>
28346         * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
28347         define_insn.
28348         (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
28349         TARGET_SM70.
28350         (define_c_enum "unspecv"): Add UNSPECV_ST.
28352 2022-02-10  Tom de Vries  <tdevries@suse.de>
28354         * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
28355         * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
28356         (nvptx_mem_maybe_shared_p): New function.
28357         * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
28358         define_expand.
28360 2022-02-10  Tom de Vries  <tdevries@suse.de>
28362         PR target/97005
28363         * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
28364         driver JIT bug by using sub.s16 instead of sub.u16.
28366 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
28368         * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
28369         floating point constants as operands 1 and/or 2.
28371 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
28373         PR target/104345
28374         * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
28375         (sel_false<mode>): Likewise.
28376         (define_code_iterator eqne): New code iterator for EQ and NE.
28377         (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
28378         the negation of a selp instruction.
28379         (*selp<mode>_not_<code>): New define_insn_and_split to optimize
28380         the bitwise not of a selp instruction.
28381         (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
28383 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
28385         * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
28386         in machine description.
28387         (logic): Move code attribute earlier in machine description.
28388         (ilogic): New code attribute, like logic but "ior" for IOR.
28389         (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
28390         (<ilogic><mode>3): New define_insn for HSDIM logic operations.
28391         (<ilogic>bi3): New define_insn for BI mode logic operations.
28392         (define_split): Lower logic operations from integer modes to
28393         BI mode predicate operations.
28395 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
28397         * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
28398         (one_cmplbi2): New define_insn for not.pred.
28399         (mulditi3): New define_expand for signed widening multiply.
28400         (umulditi3): New define_expand for unsigned widening multiply.
28401         (smul<mode>3_highpart): New define_insn for signed highpart mult.
28402         (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
28403         (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
28404         (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
28405         (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
28406         (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
28407         (*setcc<mode>_from_not_bi): New define_insn.
28408         (*setcc_isinf<mode>): New define_insn for testp.infinite.
28409         (isinf<mode>2): New define_expand.
28411 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
28413         * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
28414         (setcc<mode>_from_bi): Additionally support QImode.
28415         (extendbi<mode>2): Additionally support QImode.
28416         (zero_extendbi<mode>2): Additionally support QImode.
28417         (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
28418         iterators for signed and unsigned, binary and unary operations.
28419         (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
28420         expanders to perform QImode operations using SImode instructions.
28421         (cstoreqi4): New define_expand.
28422         (*ext_truncsi2_qi): New define_insn.
28423         (*zext_truncsi2_qi): New define_insn.
28425 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
28427         * config/nvptx/nvptx.md (*cmpf): New define_insn.
28428         (cstorehf4): New define_expand.
28429         (fmahf4): New define_insn.
28430         (neghf2): New define_insn.
28431         (abshf2): New define_insn.
28433 2022-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
28435         * doc/install.texi (Specific): Change the www.bitwizard.nl
28436         reference to use https.
28438 2022-02-10  Marcel Vollweiler  <marcel@codesourcery.com>
28440         * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
28441         OMP_CLAUSE_HAS_DEVICE_ADDR
28442         and handle array sections.
28443         (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
28444         * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
28445         (lower_omp_target): Same.
28446         * tree-core.h (enum omp_clause_code): Same.
28447         * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
28448         (convert_local_omp_clauses): Same.
28449         * tree-pretty-print.cc (dump_omp_clause): Same.
28450         * tree.cc: Same.
28452 2022-02-10  Eugene Rozenfeld  <erozen@microsoft.com>
28454         * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
28455         that will result in direct recursive calls.
28457 2022-02-10  Andrew Pinski  <apinski@marvell.com>
28459         PR target/104474
28460         * config/aarch64/aarch64.cc
28461         (aarch64_sve_expand_vector_init_handle_trailing_constants):
28462         Use CONST0_RTX instead of const0_rtx for the non-constant elements.
28464 2022-02-09  Uroš Bizjak  <ubizjak@gmail.com>
28466         PR target/104462
28467         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
28468         Also include OPTION_MASK_ISA2_AVX2_UNSET.
28470 2022-02-09  Uroš Bizjak  <ubizjak@gmail.com>
28472         PR target/104458
28473         * config/i386/i386-expand.cc (ix86_split_idivmod):
28474         Force operands[2] and operands[3] into a register..
28476 2022-02-09  Jeff Law  <jeffreyalaw@gmail.com>
28478         PR target/97040
28479         * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
28480         (*v850_fnmssf4): Renamed from fnmssf4
28482 2022-02-09  Ian Lance Taylor  <iant@golang.org>
28484         * godump.cc (go_force_record_alignment): Really name the alignment
28485         field "_" (complete 2021-12-29 change).
28487 2022-02-09  Bill Schmidt  <wschmidt@linux.ibm.com>
28489         * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
28490         function prototype.
28491         (VREPLACE_UN_UV4SI): Likewise.
28492         (VREPLACE_UN_V2DF): Likewise.
28493         (VREPLACE_UN_V2DI): Likewise.
28494         (VREPLACE_UN_V4SF): Likewise.
28495         (VREPLACE_UN_V4SI): Likewise.
28496         * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
28497         function prototypes.
28498         * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
28499         (vreplace_un_<mode>): New define_insn.
28501 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
28503         * config/aarch64/iterators.md (VDCSIF): New mode iterator.
28504         (VDBL): Handle SF.
28505         (single_wx, single_type, single_dtype, dblq): New mode attributes.
28506         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
28507         from VDC to VDCSIF.
28508         (store_pair_lanes<mode>): Likewise.
28509         (*aarch64_combine_internal<mode>): Likewise.
28510         (*aarch64_combine_internal_be<mode>): Likewise.
28511         (*aarch64_combinez<mode>): Likewise.
28512         (*aarch64_combinez_be<mode>): Likewise.
28513         * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
28514         8-byte modes for ADDR_QUERY_LDP_STP_N.
28515         (aarch64_print_operand): Likewise for %y.
28517 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
28519         * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
28520         Use aarch64_combine instead of move_lo/hi_quad.  Tabify.
28521         (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
28522         (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
28523         (vec_pack_trunc_<mode>): Take general_operand elements and use
28524         aarch64_combine rather than move_lo/hi_quad to combine them.
28525         (vec_pack_trunc_df): Likewise.
28527 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
28529         * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
28530         Delete.
28531         * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
28532         to...
28533         (*aarch64_combinez<mode>): ...this.
28534         (@aarch64_combinez_be<mode>): Rename to...
28535         (*aarch64_combinez_be<mode>): ...this.
28536         (@aarch64_vec_concat<mode>): New expander.
28537         (aarch64_combine<mode>): Use it.
28538         (@aarch64_simd_combine<mode>): Delete.
28539         * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
28540         (aarch64_expand_vector_init): Use aarch64_vec_concat.
28542 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
28544         * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
28545         New predicate.
28546         * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
28547         (*aarch64_combine_internal_be<mode>): New patterns.
28549 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
28551         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
28552         (move_lo_quad_internal_be_<mode>): Delete.
28553         (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
28555 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
28557         * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
28558         Declare.
28559         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
28560         aarch64_mergeable_load_pair_p instead of inline check.
28561         * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
28562         (aarch64_check_consecutive_mems): Allow the reversed parameter
28563         to be null.
28564         (aarch64_mergeable_load_pair_p): New function.
28566 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
28568         * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
28569         element to be an aarch64_simd_nonimmediate_operand.
28571 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
28573         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
28574         aarch64_simd_nonimmediate_operand instead of
28575         aarch64_simd_general_operand.
28576         (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
28577         general_operand.
28578         (@aarch64_combinez_be<mode>): Likewise.
28580 2022-02-09  Richard Biener  <rguenther@suse.de>
28582         PR middle-end/104464
28583         * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
28584         throwing check to after unproblematic replacement.
28586 2022-02-09  Roger Sayle  <roger@nextmovesoftware.com>
28588         PR tree-optimization/104420
28589         * match.pd (mult @0 real_zerop): Tweak conditions for constant
28590         folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
28592 2022-02-09  Jakub Jelinek  <jakub@redhat.com>
28594         PR debug/104407
28595         * dwarf2out.cc (mangle_referenced_decls): New function.
28596         (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
28597         early_dwarf.  Instead walk the initializer and try to mangle vars or
28598         functions referenced from it.
28600 2022-02-09  Andrew MacLeod  <amacleod@redhat.com>
28602         PR tree-optimization/104288
28603         * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
28604         (non_null_ref::adjust_range): Move to header.
28605         (ranger_cache::range_of_def): Don't check non-null.
28606         (ranger_cache::entry_range): Don't check non-null.
28607         (ranger_cache::range_on_edge): Check for nonnull on normal edges.
28608         (ranger_cache::update_to_nonnull): New.
28609         (non_null_loadstore): New.
28610         (ranger_cache::block_apply_nonnull): New.
28611         * gimple-range-cache.h (class non_null_ref): Update prototypes.
28612         (non_null_ref::adjust_range): Move to here and inline.
28613         (class ranger_cache): Update prototypes.
28614         * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
28615         not search dominators.
28616         (path_range_query::adjust_for_non_null_uses): Ditto.
28617         * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
28618         def overrides.  Do not check nonnull.
28619         (gimple_ranger::range_on_entry): Check dominators for nonnull.
28620         (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
28621         (gimple_ranger::register_side_effects): New.
28622         * gimple-range.h (gimple_ranger::register_side_effects): New.
28623         * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
28625 2022-02-09  Richard Biener  <rguenther@suse.de>
28627         PR tree-optimization/104445
28628         PR tree-optimization/102832
28629         * optabs-query.h (can_vec_extract): New.
28630         * optabs-query.cc (can_vec_extract): Likewise.
28631         * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
28632         we can extract a hi/lo part from the larger vector, rework
28633         check iteration from larger to smaller sizes.
28635 2022-02-09  H.J. Lu  <hjl.tools@gmail.com>
28637         PR target/35513
28638         PR target/100593
28639         * config/i386/gnu-property.cc: Include "i386-protos.h".
28640         (file_end_indicate_exec_stack_and_gnu_property): Generate
28641         a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
28642         nodirect_extern_access attribute.
28643         * config/i386/i386-options.cc
28644         (handle_nodirect_extern_access_attribute): New function.
28645         (ix86_attribute_table): Add nodirect_extern_access attribute.
28646         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
28647         bool argument.
28648         (ix86_has_no_direct_extern_access): New.
28649         * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
28650         (ix86_force_load_from_GOT_p): Add a bool argument to indicate
28651         call operand.  Force non-call load from GOT for
28652         -mno-direct-extern-access or nodirect_extern_access attribute.
28653         (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
28654         for -mno-direct-extern-access or nodirect_extern_access attribute.
28655         (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
28656         for call operand.
28657         (asm_preferred_eh_data_format): Use PC-relative format for
28658         -mno-direct-extern-access to avoid copy relocation.  Check
28659         ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
28660         (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
28661         true for -mno-direct-extern-access or nodirect_extern_access
28662         attribute.  Don't treat protected data as extern and avoid copy
28663         relocation on common symbol with -mno-direct-extern-access or
28664         nodirect_extern_access attribute.
28665         (ix86_reloc_rw_mask): New to avoid copy relocation for
28666         -mno-direct-extern-access.
28667         (TARGET_ASM_RELOC_RW_MASK): New.
28668         * config/i386/i386.opt: Add -mdirect-extern-access.
28669         * doc/extend.texi: Document nodirect_extern_access attribute.
28670         * doc/invoke.texi: Document -m[no-]direct-extern-access.
28672 2022-02-09  H.J. Lu  <hjl.tools@gmail.com>
28674         PR target/104441
28675         * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
28676         (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
28677         Call ix86_avx_u128_mode_source to check mode for each component
28678         of source operand.
28680 2022-02-09  liuhongt  <hongtao.liu@intel.com>
28682         PR target/104451
28683         * config/i386/sse.md (<insn><mode>3): lowpart_subreg
28684         operands[2] from SImode to QImode.
28686 2022-02-09  Richard Biener  <rguenther@suse.de>
28688         PR middle-end/104450
28689         * gimple-isel.cc: Pass cfun around.
28690         (+gimple_expand_vec_cond_expr): Do not combine a throwing
28691         comparison with the select.
28693 2022-02-09  Richard Biener  <rguenther@suse.de>
28695         PR target/104453
28696         * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
28697         folding for NULL LHS.
28699 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
28701         PR rtl-optimization/104198
28702         PR rtl-optimization/104153
28703         * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
28704         using it directly.  Rework comparison handling and always
28705         perform a second pass.
28707 2022-02-08  Jakub Jelinek  <jakub@redhat.com>
28709         PR target/102140
28710         * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
28711         split1 pass has finished already.
28713 2022-02-08  Bill Schmidt  <wschmidt@linux.ibm.com>
28715         * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
28716         * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
28717         * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
28718         (vmsumcud): New define_insn.
28720 2022-02-08  Tom de Vries  <tdevries@suse.de>
28722         * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
28723         * config/nvptx/nvptx.h (TARGET_SM70): Define.
28725 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
28727         * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
28728         on condition.
28729         * config/s390/s390.md: Use paradoxical subreg.
28731 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
28733         * combine.cc (reg_subword_p): Check for paradoxical subreg.
28735 2022-02-08  Tom de Vries  <tdevries@suse.de>
28737         PR target/104283
28738         * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
28739         and PTX_VERSION_4_2.
28740         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
28741         (default_ptx_version_option, ptx_version_to_string)
28742         (sm_version_to_string, handle_ptx_version_option): New function.
28743         (nvptx_option_override): Call handle_ptx_version_option.
28744         (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
28745         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
28746         (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
28747         * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
28749 2022-02-08  Maciej W. Rozycki  <macro@embecosm.com>
28751         * doc/install.texi (Configuration): Document `--with-isa-spec='
28752         RISC-V option.
28753         * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
28754         option.
28755         (RISC-V Options): Document it.
28757 2022-02-08  Maciej W. Rozycki  <macro@embecosm.com>
28759         * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
28761 2022-02-08  Tom de Vries  <tdevries@suse.de>
28763         * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
28765 2022-02-08  Tom de Vries  <tdevries@suse.de>
28767         PR target/104364
28768         * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
28769         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
28770         change is validated.
28771         (nvptx_mem_local_p): New function.
28772         * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
28773         (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
28774         (define_insn "atomic_compare_and_swap<mode>_1_local"): New
28775         non-atomic, non-predicable define_insn, factored out of ...
28776         (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
28777         Make predicable again.
28778         (define_expand "atomic_compare_and_swap<mode>"): Use
28779         atomic_compare_and_swap<mode>_1_local.
28781 2022-02-08  liuhongt  <hongtao.liu@intel.com>
28783         PR rtl-optimization/104059
28784         * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
28785         for a more expensive reg-reg move.
28787 2022-02-07  Tamar Christina  <tamar.christina@arm.com>
28789         * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
28790         vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
28791         * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
28792         (usdot_laneq, sudot_laneq): New.
28793         * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
28794         (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
28796 2022-02-07  Tamar Christina  <tamar.christina@arm.com>
28798         * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
28799         vdot_laneq_s32, vdotq_laneq_s32): New.
28800         * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
28801         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
28802         (<sup>dot_prod<vsi2qi>): Re-order rtl.
28803         (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
28804         (neon_<sup>dot_laneq<vsi2qi>): New.
28806 2022-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
28808         PR target/104327
28809         * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
28810         if always_inline is set. Don't inline when tune differs without
28811         always_inline.
28813 2022-02-07  Richard Biener  <rguenther@suse.de>
28815         PR middle-end/104402
28816         * gimple-expr.cc (is_gimple_condexpr): _Complex typed
28817         compares are not valid.
28818         * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
28819         check is_gimple_condexpr.
28821 2022-02-07  Kewen Lin  <linkw@linux.ibm.com>
28823         PR target/103627
28824         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
28825         hunk affecting VSX and ALTIVEC to appropriate place.
28827 2022-02-07  Kewen Lin  <linkw@linux.ibm.com>
28829         PR target/103627
28830         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
28831         MMA if !TARGET_VSX.
28833 2022-02-06  Jakub Jelinek  <jakub@redhat.com>
28835         PR c++/89074
28836         PR c++/104033
28837         * fold-const.h (folding_initializer): Adjust comment.
28838         (folding_cxx_constexpr): Declare.
28839         * fold-const.cc (folding_initializer): Adjust comment.
28840         (folding_cxx_constexpr): New variable.
28841         (address_compare): Restrict the decl vs. STRING_CST
28842         or vice versa or STRING_CST vs. STRING_CST or
28843         is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
28844         Punt for FUNCTION_DECLs with non-zero offsets.  If folding_initializer,
28845         assume non-aliased functions have non-zero size and have different
28846         addresses.  For folding_cxx_constexpr, punt on comparisons of start
28847         of some object and end of another one, regardless whether it is a decl
28848         or string literal.  Also punt for folding_cxx_constexpr on
28849         STRING_CST vs. STRING_CST comparisons if the two literals could be
28850         overlapping.
28852 2022-02-05  Jakub Jelinek  <jakub@redhat.com>
28854         PR tree-optimization/104389
28855         * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
28856         honored.
28858 2022-02-05  Kito Cheng  <kito.cheng@sifive.com>
28860         * configure.ac: Fix detection for zifencei support.
28861         * configure: Regenerate.
28863 2022-02-05  Kito Cheng  <kito.cheng@sifive.com>
28865         PR target/104219
28866         * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
28867         (all_defaults): Add isa_spec.
28868         * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
28870 2022-02-04  Bill Schmidt  <wschmidt@linux.ibm.com>
28872         * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
28873         parameters instead of arglist and nargs.  Simplify accordingly.  Remove
28874         unnecessary test for argument count mismatch.
28875         (resolve_vec_cmpne): Likewise.
28876         (resolve_vec_adde_sube): Likewise.
28877         (resolve_vec_addec_subec): Likewise.
28878         (altivec_resolve_overloaded_builtin): Move overload special handling
28879         after the gathering of arguments into args[] and types[] and the test
28880         for correct number of arguments.  Don't perform the test for correct
28881         number of arguments for certain special cases.  Call the other special
28882         cases with args and types instead of arglist and nargs.
28884 2022-02-04  Bill Schmidt  <wschmidt@linux.ibm.com>
28886         PR target/100808
28887         * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
28888         3.1): Provide consistent type names.  Remove unnecessary semicolons.
28889         Fix bad line breaks.
28891 2022-02-04  Jakub Jelinek  <jakub@redhat.com>
28893         PR target/104380
28894         * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
28895         adjust mangling of __builtin*printf_chk.
28897 2022-02-04  Jonathan Wakely  <jwakely@redhat.com>
28899         * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
28901 2022-02-04  Richard Biener  <rguenther@suse.de>
28902             Bin Cheng   <bin.cheng@linux.alibaba.com>
28904         PR tree-optimization/100499
28905         * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
28906         to true.
28907         * fold-const.cc (multiple_of_p): Likewise.  Honor it for
28908         MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
28909         switching to false for conversions.
28910         * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
28911         claim the outermost expression does not wrap when calling
28912         multiple_of_p.  Refactor the check done to check the
28913         original IV, avoiding a bias that might wrap.
28915 2022-02-04  Richard Biener  <rguenther@suse.de>
28917         * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
28918         handling.
28920 2022-02-04  Eric Botcazou  <ebotcazou@adacore.com>
28922         PR debug/104366
28923         * dwarf2out.cc (dwarf2out_finish): Empty base_types.
28924         (dwarf2out_early_finish): Likewise.
28926 2022-02-04  Eric Botcazou  <ebotcazou@adacore.com>
28928         PR tree-optimization/104356
28929         * match.pd (X / bool_range_Y is X): Add guard.
28930         (X / X is one): Likewise.
28931         (X / abs (X) is X < 0 ? -1 : 1): Likewise.
28932         (X / -X is -1): Likewise.
28933         (1 / X -> X == 1): Likewise.
28935 2022-02-04  Richard Biener  <rguenther@suse.de>
28937         PR tree-optimization/103641
28938         * tree-vect-patterns.cc (vect_synth_mult_by_constant):
28939         Pass the vector mode to choose_mult_variant.
28941 2022-02-04  Roger Sayle  <roger@nextmovesoftware.com>
28943         PR rtl-optimization/101885
28944         * combine.cc (try_combine): When splitting a parallel into two
28945         sequential sets, check not only that the first doesn't clobber
28946         the second but also that the second doesn't clobber the first.
28948 2022-02-04  Richard Biener  <rguenther@suse.de>
28950         PR middle-end/90348
28951         PR middle-end/104092
28952         * tree-core.h (clobber_kind): New enum.
28953         (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
28954         * tree.h (CLOBBER_KIND): Add.
28955         (build_clobber): Add clobber kind argument, defaulted to
28956         CLOBBER_UNDEF.
28957         * tree.cc (build_clobber): Likewise.
28958         * gimple.h (gimple_clobber_p): New overload with specified kind.
28959         * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
28960         CLOBBER_KIND.
28961         * tree-streamer-out.cc (streamer_write_tree_bitfields):
28962         Likewise.
28963         * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
28964         * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
28965         with CLOBBER_EOL.
28966         (gimplify_target_expr): Likewise.
28967         * tree-inline.cc (expand_call_inline): Likewise.
28968         * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
28969         * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
28970         CLOBBER_EOL clobbers as ending lifetime of storage.
28972 2022-02-04  Martin Sebor  <msebor@redhat.com>
28974         * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
28975         cleanup.
28977 2022-02-03  Martin Sebor  <msebor@redhat.com>
28979         PR middle-end/104260
28980         * passes.def (pass_warn_access): Adjust pass placement.
28982 2022-02-03  Uroš Bizjak  <ubizjak@gmail.com>
28984         PR target/104362
28985         * config/i386/i386.cc (find_drap_reg): For 32bit targets
28986         return DI_REG if function uses __builtin_eh_return.
28988 2022-02-03  Martin Sebor  <msebor@redhat.com>
28990         * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
28991         (pass_wrestrict::m_ptr_qry): New member.
28992         (wrestrict_walk): Rename...
28993         (pass_wrestrict::check_block): ...to this.
28994         (pass_wrestrict::execute): Set up and tear down pointer_query and
28995         ranger.
28996         (builtin_memref::builtin_memref): Change ctor argument.  Simplify.
28997         (builtin_access::builtin_access): Same.
28998         (builtin_access::m_ptr_qry): New member.
28999         (check_call): Rename...
29000         (pass_wrestrict::check_call): ...to this.
29001         (check_bounds_or_overlap): Change argument.
29002         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
29004 2022-02-03  Martin Sebor  <msebor@redhat.com>
29006         * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
29007         Define ctor.
29008         (array_bounds_checker::get_value_range): Use new member.
29009         (array_bounds_checker::check_mem_ref): Same.
29010         * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
29011         Outline ctor.
29012         (array_bounds_checker::m_ptr_query): New member.
29014 2022-02-03  Martin Sebor  <msebor@redhat.com>
29016         * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
29017         pointer_query cache.
29018         * pointer-query.cc (pointer_query::pointer_query): Remove cache
29019         argument.  Zero-initialize new cache member.
29020         (pointer_query::get_ref): Replace cache pointer with direct access.
29021         (pointer_query::put_ref): Same.
29022         (pointer_query::flush_cache): Same.
29023         (pointer_query::dump): Same.
29024         * pointer-query.h (class pointer_query): Remove cache argument from
29025         ctor.  Change cache pointer to cache subobject member.
29026         * tree-ssa-strlen.cc: Remove pointer_query cache.
29028 2022-02-03  Martin Sebor  <msebor@redhat.com>
29030         PR tree-optimization/104119
29031         * gimple-ssa-sprintf.cc (struct directive): Change argument type.
29032         (format_none): Same.
29033         (format_percent): Same.
29034         (format_integer): Same.
29035         (format_floating): Same.
29036         (get_string_length): Same.
29037         (format_character): Same.
29038         (format_string): Same.
29039         (format_plain): Same.
29040         (format_directive): Same.
29041         (compute_format_length): Same.
29042         (handle_printf_call): Same.
29043         * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.   Call
29044         get_maxbound.
29045         (get_range_strlen_phi): Same.
29046         (get_maxbound): New function.
29047         (strlen_pass::get_len_or_size): Adjust to parameter change.
29048         * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
29050 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
29052         PR target/103686
29053         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
29054         test for !rs6000_fold_gimple.
29055         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
29056         * config/rs6000/rs6000.opt (mfold-gimple): Remove.
29058 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
29060         PR target/95082
29061         * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
29062         endianness for vclzlsbb and vctzlsbb.
29063         * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
29064         default pattern and indicate a different pattern will be used for
29065         big endian.
29066         (VCLZLSBB_V4SI): Likewise.
29067         (VCLZLSBB_V8HI): Likewise.
29068         (VCTZLSBB_V16QI): Likewise.
29069         (VCTZLSBB_V4SI): Likewise.
29070         (VCTZLSBB_V8HI): Likewise.
29072 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
29074         * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
29075         * config/rs6000/rs6000-builtin.cc: New file, containing code moved
29076         from other files.
29077         * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
29078         rs6000-builtin.cc.
29079         (cpu_supports_info): Likewise.
29080         (rs6000_type_string): Likewise.
29081         (altivec_expand_predicate_builtin): Likewise.
29082         (rs6000_htm_spr_icode): Likewise.
29083         (altivec_expand_vec_init_builtin): Likewise.
29084         (get_element_number): Likewise.
29085         (altivec_expand_vec_set_builtin): Likewise.
29086         (altivec_expand_vec_ext_builtin): Likewise.
29087         (rs6000_invalid_builtin): Likewise.
29088         (rs6000_fold_builtin): Likewise.
29089         (fold_build_vec_cmp): Likewise.
29090         (fold_compare_helper): Likewise.
29091         (map_to_integral_tree_type): Likewise.
29092         (fold_mergehl_helper): Likewise.
29093         (fold_mergeeo_helper): Likewise.
29094         (rs6000_builtin_valid_without_lhs): Likewise.
29095         (rs6000_builtin_is_supported): Likewise.
29096         (rs6000_gimple_fold_mma_builtin): Likewise.
29097         (rs6000_gimple_fold_builtin): Likewise.
29098         (rs6000_expand_ldst_mask): Likewise.
29099         (cpu_expand_builtin): Likewise.
29100         (elemrev_icode): Likewise.
29101         (ldv_expand_builtin): Likewise.
29102         (lxvrse_expand_builtin): Likewise.
29103         (lxvrze_expand_builtin): Likewise.
29104         (stv_expand_builtin): Likewise.
29105         (mma_expand_builtin): Likewise.
29106         (htm_spr_num): Likewise.
29107         (htm_expand_builtin): Likewise.
29108         (rs6000_expand_builtin): Likewise.
29109         (rs6000_vector_type): Likewise.
29110         (rs6000_init_builtins): Likewise.  Remove initialization of
29111         builtin_mode_to_type entries.
29112         (rs6000_builtin_decl): Move to rs6000-builtin.cc.
29113         * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
29114         external declaration.
29115         (rs6000_builtin_md_vectorized_function): Likewise.
29116         (rs6000_builtin_reciprocal): Likewise.
29117         (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
29118         (rs6000_builtin_types): Likewise.
29119         (builtin_mode_to_type): Remove.
29120         (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc.  Remove
29121         static qualifier.
29122         (rs6000_builtin_md_vectorized_function): Likewise.
29123         (rs6000_builtin_reciprocal): Likewise.
29124         * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
29125         * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
29127 2022-02-03  Richard Biener  <rguenther@suse.de>
29129         PR debug/104337
29130         * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
29131         together via DECL_ABSTRACT_ORIGIN.
29133 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
29135         * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
29136         message for RES_BITS case.
29138 2022-02-03  Aldy Hernandez  <aldyh@redhat.com>
29140         * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
29142 2022-02-03  Jakub Jelinek  <jakub@redhat.com>
29144         * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
29145         mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
29147 2022-02-03  Aldy Hernandez  <aldyh@redhat.com>
29149         * cfganal.cc (verify_marked_backedges): New.
29150         * cfganal.h (verify_marked_backedges): New.
29151         * gimple-range-path.cc (path_range_query::path_range_query):
29152         Verify freshness of back edges.
29153         * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
29154         mark_dfs_back_edges.
29155         * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
29156         path_range_query construction after backedges have been
29157         updated.
29159 2022-02-03  Richard Sandiford  <richard.sandiford@arm.com>
29161         * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
29162         VALL to VALL_F16.
29164 2022-02-03  Richard Sandiford  <richard.sandiford@arm.com>
29166         * config/aarch64/iterators.md (VALL_F16MOV): Delete.
29167         * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
29168         of VALL_F16MOV.
29170 2022-02-03  Martin Liska  <mliska@suse.cz>
29172         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
29173         Change subject and object in the error message.
29174         * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
29175         Likewise.
29177 2022-02-03  Martin Liska  <mliska@suse.cz>
29179         * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
29180         Use the error message for i386 target.
29182 2022-02-03  Jakub Jelinek  <jakub@redhat.com>
29184         PR tree-optimization/104334
29185         * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
29186         and rh_range type to widest_int and subtract in widest_int.  Remove
29187         ov_rh, ov_lh and sign vars, always perform comparisons as signed
29188         and use >, < and == operators for it.
29190 2022-02-03  Martin Sebor  <msebor@redhat.com>
29192         * common.opt (-Wuse-after-free): Correct typos.
29194 2022-02-02  David Malcolm  <dmalcolm@redhat.com>
29196         PR analyzer/104270
29197         * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
29198         -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
29199         -ftrivial-auto-var-init= doesn't suppress warnings.
29201 2022-02-02  Martin Liska  <mliska@suse.cz>
29203         * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
29205 2022-02-02  Bernd Kuhls  <bernd.kuhls@t-online.de>
29207         PR target/94372
29208         * config/or1k/linux.h (CPP_SPEC): Define.
29210 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
29212         PR tree-optimization/102819
29213         PR tree-optimization/103169
29214         * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
29215         canonical order.
29217 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
29219         PR tree-optimization/102819
29220         PR tree-optimization/103169
29221         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
29222         canonical order.
29223         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
29225 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
29227         PR tree-optimization/102819
29228         PR tree-optimization/103169
29229         * doc/md.texi: Update docs for cfms, cfma.
29230         * tree-data-ref.h (same_data_refs): Accept optional offset.
29231         * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
29232         patterns.
29233         (vect_normalize_conj_loc): Remove.
29234         (is_eq_or_top): Change to take two nodes.
29235         (enum _conj_status, compatible_complex_nodes_p,
29236         vect_validate_multiplication): New.
29237         (class complex_add_pattern, complex_add_pattern::matches,
29238         complex_add_pattern::recognize, class complex_mul_pattern,
29239         complex_mul_pattern::recognize, class complex_fms_pattern,
29240         complex_fms_pattern::recognize, class complex_operations_pattern,
29241         complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
29242         new cache.
29243         (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
29244         cache and use new validation code.
29245         * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
29246         vect_analyze_slp): Pass along cache.
29247         (compatible_calls_p): Expose.
29248         * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
29249         slp_compat_nodes_map_t): New.
29250         (class vect_pattern): Update signatures include new cache.
29252 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
29254         * config/cris/cris.cc (cris_preferred_reload_class): Reject
29255         "eliminated" registers and small-enough constants unless
29256         reloaded into a class that is a subset of GENERAL_REGS.
29257         * config/cris/cris.md (attribute "cpu_variant"): New.
29258         (attribute "enabled"): Conditionalize on a matching attribute
29259         cpu_variant, if specified.
29260         ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
29261         memory, add cpu-variant-enabled variants for "r" alternatives on
29262         the far side of the "x" alternatives, preferring the "x" ones
29263         only for variants where MOF is present (in addition to SRP).
29265 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
29267         * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
29268         extra cost for ALL_REGS.
29270 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
29272         * config/cris/constraints.md (define_register_constraint "b"): Now
29273         GENERAL_REGS.
29274         * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
29275         * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
29276         (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
29277         and SPEC_GENNONACR_REGS.
29278         * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
29279         ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
29281 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
29283         * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
29284         Conditionalize on (sub-)register operands or operand 1 being 0.
29286 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
29288         * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
29289         (MUL_BUG_ASM_DEFAULT): New macro.
29290         (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
29291         * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
29292         accordingly.
29294 2022-02-01  Eugene Rozenfeld  <erozen@microsoft.com>
29296         * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
29297         to 10 for AutoFDO.
29299 2022-02-01  Eugene Rozenfeld  <erozen@microsoft.com>
29301         * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
29303 2022-02-01  Andrew Pinski  <apinski@marvell.com>
29305         * doc/install.texi:
29307 2022-02-01  Ilya Leoshkevich  <iii@linux.ibm.com>
29309         * config/s390/s390.cc (s390_code_end): Do not switch back to
29310         code section.
29312 2022-02-01  Jakub Jelinek  <jakub@redhat.com>
29314         PR target/104323
29315         * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
29316         rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
29317         * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
29318         GTY((user)) for struct bifdata and struct ovlddata.  Instead add
29319         GTY((skip(""))) to members with pointer and enum types that don't need
29320         to be tracked.  Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
29321         declarations.  Don't emit gt_ggc_mx and gt_pch_nx declarations.
29322         (write_extern_fntype, write_fntype): Remove.
29323         (write_fntype_init): Emit the fntype vars as automatic vars instead
29324         of file scope ones.
29325         (write_header_file): Don't iterate with write_extern_fntype.
29326         (write_init_file): Don't iterate with write_fntype.  Don't emit
29327         gt_ggc_mx and gt_pch_nx definitions.
29329 2022-02-01  Jason Merrill  <jason@redhat.com>
29331         * tree.h (struct tree_vec_map_cache_hasher): Move from...
29332         * tree.cc (struct tree_vec_map_cache_hasher): ...here.
29334 2022-02-01  Tom de Vries  <tdevries@suse.de>
29336         * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
29337         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
29338         UNSPECV_UNIFORM_WARP_CHECK.
29339         (define_insn "nvptx_uniform_warp_check"): New define_insn.
29341 2022-02-01  Tom de Vries  <tdevries@suse.de>
29343         * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
29344         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
29345         UNSPECV_WARPSYNC.
29346         (define_insn "nvptx_warpsync"): New define_insn.
29348 2022-02-01  Tom de Vries  <tdevries@suse.de>
29350         * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
29352 2022-02-01  Tom de Vries  <tdevries@suse.de>
29354         * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
29355         * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
29356         * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
29357         insn for TARGET_PTX_6_0.
29359 2022-02-01  Tom de Vries  <tdevries@suse.de>
29361         PR target/100428
29362         * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
29363         insn.
29365 2022-02-01  Tom de Vries  <tdevries@suse.de>
29367         * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
29368         (define_insn "atomic_exchange<mode>")
29369         (define_insn "atomic_fetch_add<mode>")
29370         (define_insn "atomic_fetch_addsf")
29371         (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
29372         if memory operands is frame-relative.
29374 2022-02-01  Tom de Vries  <tdevries@suse.de>
29376         * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
29377         NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
29378         (VOID): New macro.
29379         (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
29380         (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
29381         NVPTX_BUILTIN_MEMBAR_CTA.
29382         (nvptx_lockfull_update): Add level parameter.  Emit barriers.
29383         (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
29384         nvptx_lockfull_update.
29385         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
29386         UNSPECV_MEMBAR_GL.
29387         (define_expand "nvptx_membar_gl"): New expand.
29388         (define_insn "*nvptx_membar_gl"): New insn.
29390 2022-02-01  Martin Liska  <mliska@suse.cz>
29392         * doc/install.texi: Remove option for GCC < 4.8.
29394 2022-02-01  Jakub Jelinek  <jakub@redhat.com>
29396         PR middle-end/104307
29397         * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
29398         stmts to uses vector, just set vec_cond_expr_only to false for
29399         non-VEC_COND_EXPRs instead of pushing them into uses.  Treat
29400         VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
29401         like non-VEC_COND_EXPRs.
29403 2022-02-01  Bill Schmidt  <wschmidt@linux.ibm.com>
29405         * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
29406         (VEC_BLENDV): Likewise.
29407         (VEC_BPERM): Likewise.
29408         (VEC_CFUGE): Likewise.
29409         (VEC_CIPHER_BE): Likewise.
29410         (VEC_CIPHERLAST_BE): Likewise.
29411         (VEC_CLRL): Likewise.
29412         (VEC_CLRR): Likewise.
29413         (VEC_CMPNEZ): Likewise.
29414         (VEC_CNTLZ): Likewise.
29415         (VEC_CNTLZM): Likewise.
29416         (VEC_CNTTZM): Likewise.
29417         (VEC_CNTLZ_LSBB): Likewise.
29418         (VEC_CNTM): Likewise.
29419         (VEC_CNTTZ): Likewise.
29420         (VEC_CNTTZ_LSBB): Likewise.
29421         (VEC_CONVERT_4F32_8F16): Likewise.
29422         (VEC_DIV): Likewise.
29423         (VEC_DIVE): Likewise.
29424         (VEC_EQV): Likewise.
29425         (VEC_EXPANDM): Likewise.
29426         (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
29427         (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
29428         (VEC_EXTRACTH): Likewise.
29429         (VEC_EXTRACTL): Likewise.
29430         (VEC_EXTRACTM): Likewise.
29431         (VEC_EXTRACT4B): Likewise.
29432         (VEC_EXTULX): Likewise.
29433         (VEC_EXTURX): Likewise.
29434         (VEC_FIRSTMATCHINDEX): Likewise.
29435         (VEC_FIRSTMACHOREOSINDEX): Likewise.
29436         (VEC_FIRSTMISMATCHINDEX): Likewise.
29437         (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
29438         (VEC_GB): Likewise.
29439         (VEC_GENBM): Likewise.
29440         (VEC_GENHM): Likewise.
29441         (VEC_GENWM): Likewise.
29442         (VEC_GENDM): Likewise.
29443         (VEC_GENQM): Likewise.
29444         (VEC_GENPCVM): Likewise.
29445         (VEC_GNB): Likewise.
29446         (VEC_INSERTH): Likewise.
29447         (VEC_INSERTL): Likewise.
29448         (VEC_INSERT4B): Likewise.
29449         (VEC_LXVL): Likewise.
29450         (VEC_MERGEE): Likewise.
29451         (VEC_MERGEO): Likewise.
29452         (VEC_MOD): Likewise.
29453         (VEC_MSUB): Likewise.
29454         (VEC_MULH): Likewise.
29455         (VEC_NAND): Likewise.
29456         (VEC_NCIPHER_BE): Likewise.
29457         (VEC_NCIPHERLAST_BE): Likewise.
29458         (VEC_NEARBYINT): Likewise.
29459         (VEC_NMADD): Likewise.
29460         (VEC_ORC): Likewise.
29461         (VEC_PDEP): Likewise.
29462         (VEC_PERMX): Likewise.
29463         (VEC_PEXT): Likewise.
29464         (VEC_POPCNT): Likewise.
29465         (VEC_PARITY_LSBB): Likewise.
29466         (VEC_REPLACE_ELT): Likewise.
29467         (VEC_REPLACE_UN): Likewise.
29468         (VEC_REVB): Likewise.
29469         (VEC_RINT): Likewise.
29470         (VEC_RLMI): Likewise.
29471         (VEC_RLNM): Likewise.
29472         (VEC_SBOX_BE): Likewise.
29473         (VEC_SIGNEXTI): Likewise.
29474         (VEC_SIGNEXTLL): Likewise.
29475         (VEC_SIGNEXTQ): Likewise.
29476         (VEC_SLDB): Likewise.
29477         (VEC_SLV): Likewise.
29478         (VEC_SPLATI): Likewise.
29479         (VEC_SPLATID): Likewise.
29480         (VEC_SPLATI_INS): Likewise.
29481         (VEC_SQRT): Likewise.
29482         (VEC_SRDB): Likewise.
29483         (VEC_SRV): Likewise.
29484         (VEC_STRIL): Likewise.
29485         (VEC_STRIL_P): Likewise.
29486         (VEC_STRIR): Likewise.
29487         (VEC_STRIR_P): Likewise.
29488         (VEC_STXVL): Likewise.
29489         (VEC_TERNARYLOGIC): Likewise.
29490         (VEC_TEST_LSBB_ALL_ONES): Likewise.
29491         (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
29492         (VEC_VEE): Likewise.
29493         (VEC_VES): Likewise.
29494         (VEC_VIE): Likewise.
29495         (VEC_VPRTYB): Likewise.
29496         (VEC_VSCEEQ): Likewise.
29497         (VEC_VSCEGT): Likewise.
29498         (VEC_VSCELT): Likewise.
29499         (VEC_VSCEUO): Likewise.
29500         (VEC_VSEE): Likewise.
29501         (VEC_VSES): Likewise.
29502         (VEC_VSIE): Likewise.
29503         (VEC_VSTDC): Likewise.
29504         (VEC_VSTDCN): Likewise.
29505         (VEC_VTDC): Likewise.
29506         (VEC_XL): Likewise.
29507         (VEC_XL_BE): Likewise.
29508         (VEC_XL_LEN_R): Likewise.
29509         (VEC_XL_SEXT): Likewise.
29510         (VEC_XL_ZEXT): Likewise.
29511         (VEC_XST): Likewise.
29512         (VEC_XST_BE): Likewise.
29513         (VEC_XST_LEN_R): Likewise.
29514         (VEC_XST_TRUNC): Likewise.
29515         (VEC_XXPERMDI): Likewise.
29516         (VEC_XXSLDWI): Likewise.
29517         (VEC_TSTSFI_EQ_DD): Likewise.
29518         (VEC_TSTSFI_EQ_TD): Likewise.
29519         (VEC_TSTSFI_GT_DD): Likewise.
29520         (VEC_TSTSFI_GT_TD): Likewise.
29521         (VEC_TSTSFI_LT_DD): Likewise.
29522         (VEC_TSTSFI_LT_TD): Likewise.
29523         (VEC_TSTSFI_OV_DD): Likewise.
29524         (VEC_TSTSFI_OV_TD): Likewise.
29525         (VEC_VADDCUQ): Likewise.
29526         (VEC_VADDECUQ): Likewise.
29527         (VEC_VADDEUQM): Likewise.
29528         (VEC_VADDUDM): Likewise.
29529         (VEC_VADDUQM): Likewise.
29530         (VEC_VBPERMQ): Likewise.
29531         (VEC_VCLZB): Likewise.
29532         (VEC_VCLZD): Likewise.
29533         (VEC_VCLZH): Likewise.
29534         (VEC_VCLZW): Likewise.
29535         (VEC_VCTZB): Likewise.
29536         (VEC_VCTZD): Likewise.
29537         (VEC_VCTZH): Likewise.
29538         (VEC_VCTZW): Likewise.
29539         (VEC_VEEDP): Likewise.
29540         (VEC_VEESP): Likewise.
29541         (VEC_VESDP): Likewise.
29542         (VEC_VESSP): Likewise.
29543         (VEC_VIEDP): Likewise.
29544         (VEC_VIESP): Likewise.
29545         (VEC_VPKSDSS): Likewise.
29546         (VEC_VPKSDUS): Likewise.
29547         (VEC_VPKUDUM): Likewise.
29548         (VEC_VPKUDUS): Likewise.
29549         (VEC_VPOPCNT): Likewise.
29550         (VEC_VPOPCNTB): Likewise.
29551         (VEC_VPOPCNTD): Likewise.
29552         (VEC_VPOPCNTH): Likewise.
29553         (VEC_VPOPCNTW): Likewise.
29554         (VEC_VPRTYBD): Likewise.
29555         (VEC_VPRTYBQ): Likewise.
29556         (VEC_VPRTYBW): Likewise.
29557         (VEC_VRLD): Likewise.
29558         (VEC_VSLD): Likewise.
29559         (VEC_VSRAD): Likewise.
29560         (VEC_VSRD): Likewise.
29561         (VEC_VSTDCDP): Likewise.
29562         (VEC_VSTDCNDP): Likewise.
29563         (VEC_VSTDCNQP): Likewise.
29564         (VEC_VSTDCNSP): Likewise.
29565         (VEC_VSTDCQP): Likewise.
29566         (VEC_VSTDCSP): Likewise.
29567         (VEC_VSUBECUQ): Likewise.
29568         (VEC_VSUBEUQM): Likewise.
29569         (VEC_VSUBUDM): Likewise.
29570         (VEC_VSUBUQM): Likewise.
29571         (VEC_VTDCDP): Likewise.
29572         (VEC_VTDCSP): Likewise.
29573         (VEC_VUPKHSW): Likewise.
29574         (VEC_VUPKLSW): Likewise.
29576 2022-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
29578         PR rtl-optimization/101260
29579         * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
29580         copy_regno.
29582 2022-02-01  Xi Ruoyao  <xry111@mengyan1223.wang>
29584         PR middle-end/95115
29585         * fold-const.cc (const_binop): Do not fold NaN result from
29586         non-NaN operands.
29588 2022-02-01  Tom de Vries  <tdevries@suse.de>
29590         * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
29591         -ftree-loop-distribute-patterns.
29592         (loop_distribution::execute): Don't call transform_reduction_loop for
29593         -fno-tree-loop-distribute-patterns.
29595 2022-01-31  Andrew Pinski  <apinski@marvell.com>
29597         * fold-const.h (operand_compare::operand_equal_p):
29598         Fix comment about OEP_* flags.
29600 2022-01-31  Jakub Jelinek  <jakub@redhat.com>
29602         PR target/104298
29603         * config/rs6000/aix.h (OPTION_GLIBC): Remove.
29604         * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
29605         * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
29606         if not already defined.
29608 2022-01-31  Martin Sebor  <msebor@redhat.com>
29610         PR middle-end/104232
29611         * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
29612         Handle PHIs.  Add a synonymous overload.
29613         (pass_waccess::check_pointer_uses): Call pointers_related_p.
29615 2022-01-31  Richard Biener  <rguenther@suse.de>
29617         PR tree-optimization/100499
29618         * fold-const.cc (multiple_of_p): Pass the correct type of
29619         the expression to the recursive invocation of multiple_of_p
29620         for conversions and use CASE_CONVERT.
29622 2022-01-31  Eric Botcazou  <ebotcazou@adacore.com>
29624         PR target/104189
29625         * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
29627 2022-01-31  Richard Biener  <rguenther@suse.de>
29629         PR tree-optimization/100499
29630         * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
29631         on poly-ints instead of multiple_of_p.
29632         * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
29633         (non_rewritable_mem_ref_base): Likewise.
29634         (non_rewritable_lvalue_p): Likewise.
29635         (execute_update_addresses_taken): Likewise.
29637 2022-01-29  Jakub Jelinek  <jakub@redhat.com>
29638             Andrew Pinski  <apinski@marvell.com>
29640         PR tree-optimization/104279
29641         PR tree-optimization/104280
29642         PR tree-optimization/104281
29643         * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
29644         boolean_type_node and convert to type.  Formatting fixes.
29646 2022-01-28  Yoshinori Sato  <yo-satoh@sios.com>
29648         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
29650 2022-01-28  Navid Rahimi  <navidrahimi@microsoft.com>
29652         PR tree-optimization/103514
29653         * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
29654         (a & b) == (a ^ b) -> !(a | b): New optimization.
29656 2022-01-28  Marek Polacek  <polacek@redhat.com>
29658         * doc/invoke.texi: Update -Wbidi-chars documentation.
29660 2022-01-28  Iain Sandoe  <iain@sandoe.co.uk>
29662         * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
29664 2022-01-28  Zhao Wei Liew  <zhaoweiliew@gmail.com>
29666         PR tree-optimization/95424
29667         * match.pd: Simplify 1 / X where X is an integer.
29669 2022-01-28  Jakub Jelinek  <jakub@redhat.com>
29671         PR tree-optimization/104263
29672         * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
29673         cfun->can_throw_non_call_exceptions && cfun->eh test whether
29674         last non-debug stmt in the bb is store_valid_for_store_merging_p
29675         rather than last stmt.
29677 2022-01-28  Martin Liska  <mliska@suse.cz>
29679         * diagnostic.cc (diagnostic_action_after_output): Remove extra
29680         newline.
29682 2022-01-28  Martin Liska  <mliska@suse.cz>
29684         * config/rs6000/host-darwin.cc (segv_crash_handler):
29685         Do not use leading capital letter.
29686         (segv_handler): Likewise.
29687         * ipa-sra.cc (verify_splitting_accesses): Likewise.
29688         * varasm.cc (get_section): Likewise.
29690 2022-01-28  Richard Biener  <rguenther@suse.de>
29692         PR tree-optimization/104267
29693         * tree-vect-stmts.cc (vectorizable_call): Properly use the
29694         per-argument determined vector type for externals and
29695         invariants.
29697 2022-01-28  Richard Biener  <rguenther@suse.de>
29699         PR tree-optimization/104263
29700         * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
29701         Purge edges also when !cfun->has_nonlocal_label
29702         and !cfun->calls_setjmp.
29704 2022-01-28  Maciej W. Rozycki  <macro@embecosm.com>
29706         * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
29707         attributes.
29709 2022-01-28  Jakub Jelinek  <jakub@redhat.com>
29711         PR lto/104237
29712         * cfgrtl.cc (loc_equal): New function.
29713         (unique_locus_on_edge_between_p): Use it.
29715 2022-01-28  Richard Biener  <rguenther@suse.de>
29717         * cfganal.h (mark_dfs_back_edges): Provide API with struct
29718         function argument.
29719         * cfganal.cc (mark_dfs_back_edges): Take a struct function
29720         to work on, add a wrapper passing cfun.
29721         * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
29722         uses with fun which is already passed.
29723         (draw_cfg_edges): Likewise.
29724         (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
29725         for fun != cfun.
29727 2022-01-27  Patrick Palka  <ppalka@redhat.com>
29729         PR c++/99895
29730         * tree.cc (build_call_vec): Add const to second parameter.
29731         * tree.h (build_call_vec): Likewise.
29733 2022-01-27  Martin Liska  <mliska@suse.cz>
29735         PR web/104254
29736         * diagnostic.cc (diagnostic_initialize):
29737         Initialize report_bug flag.
29738         (diagnostic_action_after_output):
29739         Explain that -freport-bug option can be used for pre-processed
29740         file creation.  Make the message shorter.
29741         (error_recursion): Rename Internal to internal.
29742         * diagnostic.h (struct diagnostic_context): New field.
29743         * opts.cc (common_handle_option): Init the field here.
29745 2022-01-27  Kewen Lin  <linkw@linux.ibm.com>
29747         PR target/103702
29748         * config/rs6000/rs6000.cc
29749         (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
29750         assertion with early return.
29752 2022-01-27  Chung-Lin Tang  <cltang@codesourcery.com>
29754         PR middle-end/103642
29755         * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
29756         for non-pointer or non-reference-to-pointer cases.
29758 2022-01-27  Jakub Jelinek  <jakub@redhat.com>
29760         PR tree-optimization/104196
29761         * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
29762         * gimple-fold.cc (rewrite_to_defined_overflow): Likewise.  If true,
29763         return NULL and emit needed stmts before and after stmt.
29764         * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
29765         pick as operand_entry that will hold the merged test the one feeding
29766         earliest condition, ensure that by swapping range->idx with some
29767         other range's idx if needed.  If seq is non-NULL, don't actually swap
29768         it but instead rewrite stmts with undefined overflow in between
29769         the two locations.
29770         (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
29771         corresponding condition even if they have non-NULL ops[]->op.
29772         Formatting fix.
29774 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
29776         PR target/104239
29777         * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
29778         asm.
29779         * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
29780         before for loop instead of for init clause.
29781         * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
29783 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
29785         PR target/104239
29786         * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
29787         _X86INTRIN_H_INCLUDED and adjust #error wording.
29788         * config/rs6000/bmi2intrin.h: Likewise.
29790 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
29792         PR debug/104194
29793         * dwarf2out.cc (long_double_as_float128): New function.
29794         (modified_type_die): For powerpc64le IEEE 754 quad long double
29795         and complex long double emit those as DW_TAG_typedef to
29796         _Float128 or complex _Float128 base type.
29798 2022-01-26  Marek Polacek  <polacek@redhat.com>
29800         PR target/104213
29801         * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
29802         warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
29804 2022-01-26  Martin Liska  <mliska@suse.cz>
29806         * ipa-modref-tree.cc (modref_access_node::update):
29807         Remove "--param param=foo" with "--param foo".
29808         (modref_access_node::insert): Likewise.
29809         (modref_access_node::insert_kill): Likewise.
29810         * ipa-modref-tree.h (struct modref_ref_node): Likewise.
29811         (struct modref_base_node): Likewise.
29812         (struct modref_tree): Likewise.
29814 2022-01-26  Raoni Fassina Firmino  <raoni@linux.ibm.com>
29816         PR target/94193
29817         * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
29818         predicate check.
29820 2022-01-25  Martin Sebor  <msebor@redhat.com>
29822         PR tree-optimization/104203
29823         * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
29824         TV_WARN_ACCESS.
29825         * pointer-query.cc (access_ref::merge_ref): Change return type.
29826         Convert failure to a conservative success.
29827         (access_ref::get_ref): Adjust to the change above.  Short-circuit
29828         PHI evaluation after first failure turned into conservative success.
29829         * pointer-query.h (access_ref::merge_ref): Change return type.
29830         * timevar.def (TV_WARN_ACCESS): New timer variable.
29832 2022-01-25  David Edelsohn  <dje.gcc@gmail.com>
29834         * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
29836 2022-01-25  Richard Biener  <rguenther@suse.de>
29838         PR tree-optimization/104214
29839         * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
29840         stronger guarantees for relational pointer compares when
29841         rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
29842         BASE0 + STEP0 - STEP1 cmp BASE1.
29844 2022-01-25  Jakub Jelinek  <jakub@redhat.com>
29846         PR target/104172
29847         * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
29848         declare.
29849         * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
29850         ieee128_mangling_gcc_8_1): Remove.
29851         (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
29852         (rs6000_mangle_type): Return "u9__ieee128" instead of
29853         ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
29854         (rs6000_globalize_decl_name): Remove.
29855         * config/rs6000/rs6000-call.cc (init_cumulative_args,
29856         rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
29858 2022-01-24  Martin Sebor  <msebor@redhat.com>
29860         * pointer-query.cc (pointer_query::dump): Remove duplicate
29861         block.
29863 2022-01-24  Marek Polacek  <polacek@redhat.com>
29865         PR preprocessor/104030
29866         * doc/invoke.texi: Update documentation for -Wbidi-chars.
29868 2022-01-24  Raoni Fassina Firmino  <raoni@linux.ibm.com>
29870         PR target/94193
29871         * builtins.cc (expand_builtin_fegetround): New function.
29872         (expand_builtin_feclear_feraise_except): New function.
29873         (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
29874         BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
29875         * config/rs6000/rs6000.md (fegetroundsi): New pattern.
29876         (feclearexceptsi): New Pattern.
29877         (feraiseexceptsi): New Pattern.
29878         * doc/extend.texi: Add a new introductory paragraph about the
29879         new builtins.
29880         * doc/md.texi: (fegetround@var{m}): Document new optab.
29881         (feclearexcept@var{m}): Document new optab.
29882         (feraiseexcept@var{m}): Document new optab.
29883         * optabs.def (fegetround_optab): New optab.
29884         (feclearexcept_optab): New optab.
29885         (feraiseexcept_optab): New optab.
29887 2022-01-24  Richard Biener  <rguenther@suse.de>
29888             Jiufu Guo  <guojiufu@linux.ibm.com>
29890         PR tree-optimization/100740
29891         PR tree-optimization/101508
29892         PR tree-optimization/101972
29893         PR tree-optimization/102131
29894         * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
29895         constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
29896         BASE0 + STEP0 - STEP1 cmp BASE1 transform.
29898 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
29900         PR sanitizer/104158
29901         * opt-functions.awk (var_set): Handle EnumBitSet property.
29902         * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
29903         specified.
29904         * opts.h (enum cl_enum_var_value): New type.
29905         * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
29906         Handle CLEV_BITSET.
29907         (cmdline_handle_error): Handle CLEV_BITSET.
29908         * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
29909         * doc/options.texi (EnumBitSet): Document.
29910         * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
29911         EnumSet.
29912         (trace-pc, trace-cmp): Drop Set properties.
29914 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
29916         PR sanitizer/104158
29917         * common.opt (flag_sanitize_coverage): Remove Variable entry.
29918         (fsanitize-coverage=): Remove RejectNegative property, add
29919         Var(flag_sanitize_coverage) and EnumSet properties.
29920         (trace-pc): Add Set(1) property.
29921         (trace-cmp): Add Set(2) property.
29922         * opts.cc (common_handle_option): Don't handle
29923         OPT_fsanitize_coverage_.
29925 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
29927         PR sanitizer/104158
29928         * opt-functions.awk (var_set): Handle EnumSet property.
29929         * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
29930         specified.
29931         * opt-read.awk: Handle Set property.
29932         * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
29933         (struct cl_decoded_option): Mention enum in value description.
29934         Add mask member.
29935         (set_option): Add mask argument defaulted to 0.
29936         * opts.cc (test_enum_sets): New function.
29937         (opts_cc_tests): Call it.
29938         * opts-common.cc (enum_arg_to_value): Change return argument
29939         from bool to int, on success return index into the cl_enum_arg
29940         array, on failure -1.  Add len argument, if non-0, use strncmp
29941         instead of strcmp.
29942         (opt_enum_arg_to_value): Adjust caller.
29943         (decode_cmdline_option): Handle EnumSet represented as
29944         CLVC_ENUM with non-zero var_value.  Initialize decoded->mask.
29945         (decode_cmdline_options_to_array): CLear opt_array[0].mask.
29946         (handle_option): Pass decoded->mask to set_options last argument.
29947         (generate_option): Clear decoded->mask.
29948         (generate_option_input_file): Likewise.
29949         (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
29950         (set_option): Add mask argument, use it for CLVC_ENUM.
29951         (control_warning_option): Adjust enum_arg_to_value caller.
29952         * doc/options.texi: Document Set and EnumSet properties.
29954 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
29956         PR bootstrap/104170
29957         * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
29958         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
29959         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
29960         using OPTION_*_P macros.
29961         * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
29962         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
29963         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
29964         using OPTION_*_P macros.
29965         * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
29966         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
29967         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
29968         using OPTION_*_P macros.
29969         * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
29970         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
29971         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
29972         using OPTION_*_P macros.
29973         * config/fuchsia.h (OPTION_MUSL_P): Redefine.
29974         * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
29975         * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
29976         ATTRIBUTE_UNUSED to opts parameter.  If OPTION_GLIBC_P is defined, use
29977         OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
29978         * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
29979         OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
29980         otherwise assume if (true).
29982 2022-01-24  Kito Cheng  <kito.cheng@sifive.com>
29984         * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
29985         Skip zicsr and zifencei if I-ext is 2.0.
29987 2022-01-24  Jia-Wei Chen  <jiawei@iscas.ac.cn>
29989         * config.gcc: Modify default isa_spec version.
29991 2022-01-24  Jiufu Guo  <guojiufu@linux.ibm.com>
29993         PR tree-optimization/102087
29994         * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
29995         Correct PLUS result type.
29997 2022-01-24  H.J. Lu  <hjl.tools@gmail.com>
29999         PR target/104188
30000         * config/i386/predicates.md (bcst_mem_operand): Also check mode
30001         of memory broadcast.
30003 2022-01-23  Andrew Pinski  <apinski@marvell.com>
30005         PR target/64821
30006         * config/aarch64/aarch64-builtins.cc
30007         (aarch64_general_gimple_fold_builtin): Handle
30008         __builtin_aarch64_sqrt* and simplify into SQRT internal
30009         function.
30011 2022-01-22  Jakub Jelinek  <jakub@redhat.com>
30013         PR other/104176
30014         * opts-global.cc (handle_common_deferred_options): Quote
30015         --enable-plugin in diagnostics to avoid -Werror=format-diag.
30017 2022-01-21  Michael Meissner  <meissner@the-meissners.org>
30019         PR target/104136
30020         * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
30021         * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
30022         * config/rs6000/rs6000.md (prefixed attribute): Delete section
30023         that sets the prefixed attribute for xxspltiw, xxspltidp, and
30024         xxsplti32dx instructions.
30025         (movsf_hardfloat): Explicitly set the prefixed attribute
30026         when xxspltiw and xxspltidp instructions are generated.
30027         (mov<mode>_hardfloat32): Likewise.
30028         (mov<mode>_hardfloat64): Likewise.
30029         * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
30030         prefixed attribute for xxspltiw and xxspltidp instructions.
30031         (vsx_mov<mode>_32bit): Likewise.
30033 2022-01-21  H.J. Lu  <hjl.tools@gmail.com>
30035         PR bootstrap/104170
30036         * common/config/i386/i386-common.cc (ix86_supports_split_stack):
30037         Return true only on glibc.
30038         * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
30039         Revert commit c163647ffbc.
30040         * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
30042 2022-01-21  Sören Tempel  <soeren@soeren-tempel.net>
30044         * common/config/s390/s390-common.cc (s390_supports_split_stack):
30045         Only support split-stack on glibc targets.
30046         * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
30047         * config/i386/gnu.h (defined): Ditto.
30049 2022-01-21  Bill Schmidt  <wschmidt@linux.ibm.com>
30051         * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
30052         vector float and vector double.
30054 2022-01-21  Bill Seurer  <seurer@gcc.gnu.org>
30056         * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
30057         Fix mention of ifunc in string.
30059 2022-01-21  Roger Sayle  <roger@nextmovesoftware.com>
30061         PR middle-end/104140
30062         * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
30063         operands of the widening multiplication are either both signed or
30064         both unsigned, and abort the conversion if mismatched.
30065         * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
30066         (MULT_HIGHPART_EXPR): Clarify that operands must have the same
30067         signedness.
30068         * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
30069         integer types with the same precision and signedness.
30070         (WIDEN_MULT_EXPR): Document that operands must have integer types
30071         with the same precision, but possibly differing signedness.
30072         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
30073         riscv_current_subset_list returning a NULL pointer (empty list).
30075 2022-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
30077         PR target/103676
30078         * ira.h (struct target_ira): Add member
30079         x_ira_exclude_class_mode_regs.
30080         (ira_exclude_class_mode_regs): New macro.
30081         * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
30082         move from here ...
30083         * lra-int.h: ... to here.
30084         (lra_create_new_reg_with_unique_value): Add arg
30085         exclude_start_hard_regs.
30086         (class lra_reg): Add member exclude_start_hard_regs.
30087         * lra-assigns.cc (find_hard_regno_for_1): Setup
30088         impossible_start_hard_regs from exclude_start_hard_regs.
30089         * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
30090         it lra_create_new_reg[_with_unique_value].
30091         (match_reload): Ditto.
30092         (check_and_process_move): Pass NULL
30093         exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
30094         (goal_alt_exclude_start_hard_regs): New static variable.
30095         (process_addr_reg, simplify_operand_subreg): Pass NULL
30096         exclude_start_hard_regs to lra_create_new_reg_with_unique_value
30097         and get_reload_reg.
30098         (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
30099         Use this_alternative_exclude_start_hard_regs additionally to find
30100         winning operand alternative.
30101         (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
30102         exclude_start_hard_regs to lra_create_new_reg.
30103         (process_address_1, emit_inc): Ditto.
30104         (curr_insn_transform): Pass exclude_start_hard_regs value to
30105         lra_create_new_reg, get_reload_reg, match_reload.
30106         (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
30107         to lra_create_new_reg.
30108         (process_invariant_for_inheritance): Ditto.
30109         * lra-remat.cc (update_scratch_ops): Ditto.
30110         * lra.cc (lra_create_new_reg_with_unique_value): Add arg
30111         exclude_start_hard_regs.  Setup the corresponding member of
30112         lra reg info.
30113         (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
30114         to lra_create_new_reg_with_unique_value.
30115         (initialize_lra_reg_info_element): Initialize member
30116         exclude_start_hard_regs.
30117         (get_scratch_reg): Pass NULL to lra_create_new_reg.
30118         * ira.cc (setup_prohibited_class_mode_regs): Rename to
30119         setup_prohibited_and_exclude_class_mode_regs and calculate
30120         ira_exclude_class_mode_regs.
30122 2022-01-21  Martin Liska  <mliska@suse.cz>
30124         * configure.ac: Detect ld_is_mold and use it for
30125         comdat_group=yes and gcc_cv_ld_hidden=yes.
30126         * configure: Regenerate.
30128 2022-01-21  Richard Biener  <rguenther@suse.de>
30130         PR tree-optimization/100089
30131         * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
30132         of if-converted loops with unvectorized COND_EXPRs for
30133         all but the unlimited cost models.
30135 2022-01-21  Ard Biesheuvel  <ardb@kernel.org>
30137         * config/arm/arm-opts.h (enum stack_protector_guard): New.
30138         * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
30139         New.
30140         * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
30141         (arm_option_override_internal): Handle and put in error checks.
30142         for stack protector guard options.
30143         (arm_option_reconfigure_globals): Likewise.
30144         (arm_stack_protect_tls_canary_mem): New.
30145         (arm_stack_protect_guard): New.
30146         * config/arm/arm.md (stack_protect_set): New.
30147         (stack_protect_set_tls): Likewise.
30148         (stack_protect_test): Likewise.
30149         (stack_protect_test_tls): Likewise.
30150         (reload_tp_hard): Likewise.
30151         * config/arm/arm.opt (-mstack-protector-guard): New
30152         (-mstack-protector-guard-offset): New.
30153         * doc/invoke.texi: Document new options.
30155 2022-01-21  Richard Biener  <rguenther@suse.de>
30157         PR tree-optimization/104156
30158         * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
30159         Collect and reset debug stmts with out-of-loop uses when
30160         hoisting guards.
30161         (find_loop_guard): Adjust.
30162         (empty_bb_without_guard_p): Likewise.  Ignore debug stmts.
30163         (used_outside_loop_p): Push debug uses to a vector of
30164         debug stmts to reset.
30165         (hoist_guard): Adjust -fopt-info category.
30167 2022-01-21  Richard Biener  <rguenther@suse.de>
30169         PR tree-optimization/104152
30170         * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
30171         can_duplicate_and_interleave_p check.
30173 2022-01-21  Jakub Jelinek  <jakub@redhat.com>
30175         * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
30176         Avoid passing var to warning_at when the format string doesn't
30177         refer to it.
30179 2022-01-21  Aldy Hernandez  <aldyh@redhat.com>
30181         PR tree-optimization/103721
30182         * gimple-range-path.cc
30183         (path_range_query::relations_may_be_invalidated): New.
30184         (path_range_query::compute_ranges_in_block): Reset relations if
30185         they may be invalidated.
30186         (path_range_query::maybe_register_phi_relation): Exit if relations
30187         may be invalidated on incoming edge.
30188         (path_range_query::compute_phi_relations): Pass incoming PHI edge
30189         to maybe_register_phi_relation.
30190         * gimple-range-path.h (relations_may_be_invalidated): New.
30191         (maybe_register_phi_relation): Pass edge instead of tree.
30192         * tree-ssa-threadbackward.cc (back_threader::back_threader):
30193         Mark DFS edges.
30194         * value-relation.cc (path_oracle::path_oracle): Call
30195         mark_dfs_back_edges.
30196         (path_oracle::register_relation): Add SSA names to m_registered
30197         bitmap.
30198         (path_oracle::reset_path): Clear m_registered bitmap.
30199         * value-relation.h (path_oracle::set_root_oracle): New.
30201 2022-01-21  Jakub Jelinek  <jakub@redhat.com>
30203         PR rtl-optimization/102478
30204         * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
30205         force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
30206         would be needed.
30208 2022-01-20  Richard Biener  <rguenther@suse.de>
30210         PR middle-end/100786
30211         * gimple-fold.cc (get_symbol_constant_value): Only return
30212         values of compatible type to the symbol.
30214 2022-01-20  Andrew MacLeod  <amacleod@redhat.com>
30216         * value-relation.cc (relation_oracle::valid_equivs): Query and add
30217         if valid members of a set.
30218         (equiv_oracle::register_equiv): Call valid_equivs rather than
30219         bitmap direct operations.
30220         (path_oracle::register_equiv): Ditto.
30221         * value-relation.h (relation_oracle::valid_equivs): New prototype.
30223 2022-01-20  Richard Biener  <rguenther@suse.de>
30225         PR target/100784
30226         * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
30227         LHS before folding __builtin_ia32_shufpd and friends.
30229 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
30231         * config/arm/crypto.md (aes_op_protect): Allow moves from core
30232         registers and from memory.
30233         (aes_op_protect_misalign_load): New pattern.
30234         (aes_op_protect_neon_vld1v16qi): New pattern.
30236 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
30238         * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
30239         New pattern.
30240         (aarch32_crypto_aese_fused_protected): Likewise.
30241         (aarch32_crypto_aesd_fused_protected): Likewise.
30243 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
30245         * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
30246         to define_expand.  Add mitigation for the Cortex-A AES erratum
30247         when enabled.
30248         (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
30249         on original crypto_<CRYPTO_AES:crypto_pattern> insn.
30250         (aes_op_protect): New pattern.
30251         * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
30253 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
30255         * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
30256         (ALL_QUIRKS): Add it.
30257         (cortex-a57, cortex-a72): Enable it.
30258         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
30259         * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
30260         option.
30261         (mfix-cortex-a72-aes-1655431): New option alias.
30262         * config/arm/arm.cc (arm_option_override): Handle default settings
30263         for AES erratum switch.
30264         * doc/invoke.texi (Arm Options): Document new options.
30266 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
30268         * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
30269         <crypto_mode> rather than hard-coding the mode.
30270         (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
30271         (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
30272         (*aarch32_crypto_aese_fused): Likewise.
30273         (*aarch32_crypto_aesd_fused): Likewise.
30274         (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
30275         (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
30276         (crypto_sha1h_lb): Likewise.
30277         (crypto_vmullp64): Likewise.
30278         (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
30279         (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
30281 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
30283         * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
30284         iterator to pattern name to disambiguate.
30285         (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
30286         (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
30287         (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
30288         (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
30289         (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
30291 2022-01-20  Martin Liska  <mliska@suse.cz>
30293         PR bootstrap/104135
30294         * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
30295         * rtl.cc: Partially disable -Wformat-diag for RTL checking
30296         error messages.
30298 2022-01-20  Jakub Jelinek  <jakub@redhat.com>
30300         PR debug/103874
30301         * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
30302         block_num > 0, index entry even if !have_multiple_function_sections.
30304 2022-01-20  liuhongt  <hongtao.liu@intel.com>
30306         PR target/103771
30307         * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
30308         integral mode mask pack by multi steps which takes
30309         vec_pack_sbool_trunc_optab as start when elements number is
30310         less than BITS_PER_UNITS.
30312 2022-01-20  Richard Biener  <rguenther@suse.de>
30314         PR tree-optimization/104114
30315         * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
30316         single element vector decomposition.
30318 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
30320         * ifcvt.cc (noce_convert_multiple_sets_1): New function.
30321         (noce_convert_multiple_sets): Call function a second time if we can
30322         improve the first try.
30324 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
30326         * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
30327         reversed comparison.
30328         (try_emit_cmove_seq): New function to facilitate creating a cmov
30329         sequence.
30330         (noce_convert_multiple_sets): Create two sequences and use the less
30331         expensive one.
30333 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
30335         * rtl.h (struct rtx_comparison): New struct that holds an rtx
30336         comparison.
30337         * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
30338         single parameters.
30339         (rs6000_emit_swsqrt): Likewise.
30340         * expmed.cc (expand_sdiv_pow2): Likewise.
30341         (emit_store_flag): Likewise.
30342         * expr.cc (expand_cond_expr_using_cmove): Likewise.
30343         (expand_expr_real_2): Likewise.
30344         * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
30345         parameters.
30346         * optabs.cc (emit_conditional_move_1): New function.
30347         (expand_doubleword_shift_condmove): Use struct.
30348         (emit_conditional_move): Use struct and allow to call directly
30349         without going through preparation steps.
30350         * optabs.h (emit_conditional_move): Use struct.
30352 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
30354         * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
30355         (noce_process_if_block): Use potential costs.
30357 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
30359         * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
30360         (bb_ok_for_noce_convert_multiple_sets): Likewise.
30362 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
30364         * ifcvt.cc (need_cmov_or_rewire): New function.
30365         (noce_convert_multiple_sets): Call it.
30367 2022-01-19  David Malcolm  <dmalcolm@redhat.com>
30369         * attribs.cc (attribute_c_tests): Rename to...
30370         (attribs_cc_tests): ...this.
30371         * bitmap.cc (bitmap_c_tests): Rename to...
30372         (bitmap_cc_tests): ...this.
30373         * cgraph.cc (cgraph_c_finalize): Rename to...
30374         (cgraph_cc_finalize): ...this.
30375         (cgraph_c_tests): Rename to...
30376         (cgraph_cc_tests): ...this.
30377         * cgraph.h (cgraph_c_finalize): Rename to...
30378         (cgraph_cc_finalize): ...this.
30379         (cgraphunit_c_finalize): Rename to...
30380         (cgraphunit_cc_finalize): ...this.
30381         * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
30382         (cgraphunit_cc_finalize): ...this.
30383         * convert.cc (convert_c_tests): Rename to...
30384         (convert_cc_tests): ...this.
30385         * dbgcnt.cc (dbgcnt_c_tests): Rename to...
30386         (dbgcnt_cc_tests): ...this.
30387         * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
30388         (diagnostic_show_locus_cc_tests): ...this.
30389         * diagnostic.cc (diagnostic_c_tests): Rename to...
30390         (diagnostic_cc_tests): ...this.
30391         * dumpfile.cc (dumpfile_c_tests): Rename to...
30392         (dumpfile_cc_tests): ...this.
30393         * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
30394         (dwarf2out_cc_finalize): ...this.
30395         * dwarf2out.h (dwarf2out_c_finalize): Rename to...
30396         (dwarf2out_cc_finalize): ...this.
30397         * edit-context.cc (edit_context_c_tests): Rename to...
30398         (edit_context_cc_tests): ...this.
30399         * et-forest.cc (et_forest_c_tests): Rename to...
30400         (et_forest_cc_tests): ...this.
30401         * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
30402         (fibonacci_heap_cc_tests): ...this.
30403         * fold-const.cc (fold_const_c_tests): Rename to...
30404         (fold_const_cc_tests): ...this.
30405         * function-tests.cc (function_tests_c_tests): Rename to...
30406         (function_tests_cc_tests): ...this.
30407         * gcse.cc (gcse_c_finalize): Rename to...
30408         (gcse_cc_finalize): ...this.
30409         * gcse.h (gcse_c_finalize): Rename to...
30410         (gcse_cc_finalize): ...this.
30411         * ggc-tests.cc (ggc_tests_c_tests): Rename to...
30412         (ggc_tests_cc_tests): ...this.
30413         * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
30414         (store_merging_cc_tests): ...this.
30415         * gimple.cc (gimple_c_tests): Rename to...
30416         (gimple_cc_tests): ...this.
30417         * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
30418         (hash_map_tests_cc_tests): ...this.
30419         * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
30420         (hash_set_tests_cc_tests): ...this.
30421         * input.cc (input_c_tests): Rename to...
30422         (input_cc_tests): ...this.
30423         * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
30424         (ipa_cp_cc_finalize): ...this.
30425         * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
30426         (ipa_fnsummary_cc_finalize): ...this.
30427         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
30428         (ipa_fnsummary_cc_finalize): ...this.
30429         * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
30430         (ipa_modref_tree_cc_tests): ...this.
30431         * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
30432         * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
30433         (ipa_modref_cc_finalize): ...this.
30434         * ipa-modref.h (ipa_modref_c_finalize): Rename to...
30435         (ipa_modref_cc_finalize): ...this.
30436         * ipa-prop.h (ipa_cp_c_finalize): Rename to...
30437         (ipa_cp_cc_finalize): ...this.
30438         * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
30439         (ipa_reference_cc_finalize): ...this.
30440         * ipa-reference.h (ipa_reference_c_finalize): Rename to...
30441         (ipa_reference_cc_finalize): ...this.
30442         * ira-costs.cc (ira_costs_c_finalize): Rename to...
30443         (ira_costs_cc_finalize): ...this.
30444         * ira.h (ira_costs_c_finalize): Rename to...
30445         (ira_costs_cc_finalize): ...this.
30446         * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
30447         (opt_suggestions_cc_tests): ...this.
30448         * opts.cc (opts_c_tests): Rename to...
30449         (opts_cc_tests): ...this.
30450         * predict.cc (predict_c_tests): Rename to...
30451         (predict_cc_tests): ...this.
30452         * pretty-print.cc (pretty_print_c_tests): Rename to...
30453         (pretty_print_cc_tests): ...this.
30454         * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
30455         (read_rtl_function_cc_tests): ...this.
30456         * rtl-tests.cc (rtl_tests_c_tests): Rename to...
30457         (rtl_tests_cc_tests): ...this.
30458         * sbitmap.cc (sbitmap_c_tests): Rename to...
30459         (sbitmap_cc_tests): ...this.
30460         * selftest-run-tests.cc (selftest::run_tests): Update calls for
30461         _c_ to _cc_ function renamings; fix names of attribs and
30462         opt-suggestions tests.
30463         * selftest.cc (selftest_c_tests): Rename to...
30464         (selftest_cc_tests): ...this.
30465         * selftest.h (attribute_c_tests): Rename to...
30466         (attribs_cc_tests): ...this.
30467         (bitmap_c_tests): Rename to...
30468         (bitmap_cc_tests): ...this.
30469         (cgraph_c_tests): Rename to...
30470         (cgraph_cc_tests): ...this.
30471         (convert_c_tests): Rename to...
30472         (convert_cc_tests): ...this.
30473         (diagnostic_c_tests): Rename to...
30474         (diagnostic_cc_tests): ...this.
30475         (diagnostic_show_locus_c_tests): Rename to...
30476         (diagnostic_show_locus_cc_tests): ...this.
30477         (dumpfile_c_tests): Rename to...
30478         (dumpfile_cc_tests): ...this.
30479         (edit_context_c_tests): Rename to...
30480         (edit_context_cc_tests): ...this.
30481         (et_forest_c_tests): Rename to...
30482         (et_forest_cc_tests): ...this.
30483         (fibonacci_heap_c_tests): Rename to...
30484         (fibonacci_heap_cc_tests): ...this.
30485         (fold_const_c_tests): Rename to...
30486         (fold_const_cc_tests): ...this.
30487         (function_tests_c_tests): Rename to...
30488         (function_tests_cc_tests): ...this.
30489         (ggc_tests_c_tests): Rename to...
30490         (ggc_tests_cc_tests): ...this.
30491         (gimple_c_tests): Rename to...
30492         (gimple_cc_tests): ...this.
30493         (hash_map_tests_c_tests): Rename to...
30494         (hash_map_tests_cc_tests): ...this.
30495         (hash_set_tests_c_tests): Rename to...
30496         (hash_set_tests_cc_tests): ...this.
30497         (input_c_tests): Rename to...
30498         (input_cc_tests): ...this.
30499         (opts_c_tests): Rename to...
30500         (opts_cc_tests): ...this.
30501         (predict_c_tests): Rename to...
30502         (predict_cc_tests): ...this.
30503         (pretty_print_c_tests): Rename to...
30504         (pretty_print_cc_tests): ...this.
30505         (read_rtl_function_c_tests): Rename to...
30506         (read_rtl_function_cc_tests): ...this.
30507         (rtl_tests_c_tests): Rename to...
30508         (rtl_tests_cc_tests): ...this.
30509         (sbitmap_c_tests): Rename to...
30510         (sbitmap_cc_tests): ...this.
30511         (selftest_c_tests): Rename to...
30512         (selftest_cc_tests): ...this.
30513         (simplify_rtx_c_tests): Rename to...
30514         (simplify_rtx_cc_tests): ...this.
30515         (spellcheck_c_tests): Rename to...
30516         (spellcheck_cc_tests): ...this.
30517         (spellcheck_tree_c_tests): Rename to...
30518         (spellcheck_tree_cc_tests): ...this.
30519         (sreal_c_tests): Rename to...
30520         (sreal_cc_tests): ...this.
30521         (store_merging_c_tests): Rename to...
30522         (store_merging_cc_tests): ...this.
30523         (tree_c_tests): Rename to...
30524         (tree_cc_tests): ...this.
30525         (tree_cfg_c_tests): Rename to...
30526         (tree_cfg_cc_tests): ...this.
30527         (typed_splay_tree_c_tests): Rename to...
30528         (typed_splay_tree_cc_tests): ...this.
30529         (vec_c_tests): Rename to...
30530         (vec_cc_tests): ...this.
30531         (vec_perm_indices_c_tests): Rename to...
30532         (vec_perm_indices_cc_tests): ..this.
30533         (opt_proposer_c_tests): Rename to...
30534         (opt_suggestions_cc_tests): ...this.
30535         (dbgcnt_c_tests): Rename to...
30536         (dbgcnt_cc_tests): ...this.
30537         (ipa_modref_tree_c_tests): Rename to...
30538         (ipa_modref_tree_cc_tests): ...this.
30539         * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
30540         (simplify_rtx_cc_tests): ...this.
30541         * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
30542         (spellcheck_tree_cc_tests): ...this.
30543         * spellcheck.cc (spellcheck_c_tests): Rename to...
30544         (spellcheck_cc_tests): ...this.
30545         * sreal.cc (sreal_c_tests): Rename to...
30546         (sreal_cc_tests): ...this.
30547         * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
30548         function renamings.
30549         * tree-cfg.cc (tree_cfg_c_tests): Rename to...
30550         (tree_cfg_cc_tests): ...this.
30551         * tree.cc (tree_c_tests): Rename to...
30552         (tree_cc_tests): ...this.
30553         * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
30554         (typed_splay_tree_cc_tests): ...this.
30555         * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
30556         (vec_perm_indices_cc_tests): ...this.
30557         * vec.cc (vec_c_tests): Rename to...
30558         (vec_cc_tests): ...this.
30560 2022-01-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30562         PR tree-optimization/103997
30563         * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
30564         vectorization.
30566 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
30568         PR middle-end/102860
30569         * match.pd (x %[fl] y -> x % y): New simplification for
30570         unsigned integral types.
30571         * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
30572         for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
30574 2022-01-19  Richard Biener  <rguenther@suse.de>
30576         PR tree-optimization/104112
30577         * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
30578         for required intermediate vector types.
30580 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
30582         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
30584 2022-01-19  Martin Liska  <mliska@suse.cz>
30586         * configure.ac: Remove -Wno-error=format-diag.
30587         * configure: Regenerate.
30589 2022-01-19  Martin Liska  <mliska@suse.cz>
30591         * config/riscv/riscv.cc (riscv_handle_type_attribute):
30592         Update one -Wformat-diag string in warning message.
30594 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
30596         PR middle-end/104103
30597         * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
30598         .ASAN_MARK calls.
30600 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
30602         PR c++/89074
30603         * fold-const.cc (address_compare): Consider different STRING_CSTs
30604         with the same lengths that memcmp the same as equal, not different.
30606 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
30608         * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
30609         {%0}.
30611 2022-01-19  Martin Liska  <mliska@suse.cz>
30612             Thomas Schwinge  <thomas@codesourcery.com>
30614         * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
30615         warning messages.
30617 2022-01-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30619         PR target/104090
30620         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
30621         rs6000_cpu.
30623 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
30625         PR target/104104
30626         * config/i386/sse.md
30627         (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
30628         avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
30629         avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
30630         avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
30631         avx512dq_rangep<mode><mask_name><round_saeonly_name>,
30632         avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
30633         <avx512>_getmant<mode><mask_name><round_saeonly_name>,
30634         avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
30635         Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
30637 2022-01-19  Martin Sebor  <msebor@redhat.com>
30639         PR middle-end/104069
30640         * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
30641         an unknown result as documented.
30643 2022-01-18  Andrew Pinski  <apinski@marvell.com>
30645         * ipa-split.cc (visit_bb): Fix comment before the
30646         warning/error attribute checking code.
30648 2022-01-18  David Faust  <david.faust@oracle.com>
30650         * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
30651         for base strtab offset yet as it may change.
30652         (output_asm_btfext_core_reloc): Do so here instead.
30653         (output_btfext_core_sections): Likewise.
30655 2022-01-18  David Faust  <david.faust@oracle.com>
30657         * config/bpf/coreout.cc (output_btfext_header): Account for
30658         4-byte record size in core_relo_len.
30659         (output_btfext_core_sections): Only write record size once.
30660         * config/bpf/coreout.h (btf_ext_section_header): Delete unused
30661         member.
30663 2022-01-18  Maciej W. Rozycki  <macro@embecosm.com>
30665         * common/config/riscv/riscv-common.cc
30666         (riscv_subset_list::parse_multiletter_ext): Move pointer
30667         arithmetic ahead of `free'.
30669 2022-01-18  Jason Merrill  <jason@redhat.com>
30671         PR c++/104007
30672         * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
30673         context.
30675 2022-01-18  Sandra Loosemore  <sandra@codesourcery.com>
30677         PR middle-end/103163
30678         * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
30679         (init_emit_once): ...not here.
30681 2022-01-18  Martin Liska  <mliska@suse.cz>
30683         * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
30684         * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
30685         * config/arc/arc.md: Likewise.
30686         * config/avr/avr.cc (avr_section_type_flags): Likewise.
30687         * config/bfin/bfin.cc (bfin_option_override): Likewise.
30688         (bfin_handle_longcall_attribute): Likewise.
30689         * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
30690         * config/frv/frv.cc (frv_expand_builtin): Likewise.
30691         * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
30692         * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
30693         (iq2000_print_operand_address): Likewise.
30694         (iq2000_print_operand): Likewise.
30695         * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
30696         (m32c_pragma_address): Likewise.
30697         * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
30698         * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
30699         (mips_set_compression_mode): Likewise.
30700         * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
30701         (mmix_print_operand): Likewise.
30702         (mmix_output_shiftvalue_op_from_str): Likewise.
30703         (mmix_output_shifted_value): Likewise.
30704         * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
30705         * config/msp430/msp430.cc (msp430_option_override): Likewise.
30706         (msp430_attr): Likewise.
30707         (msp430_expand_delay_cycles): Likewise.
30708         (msp430_expand_builtin): Likewise.
30709         * config/rs6000/aix73.h: Likewise.
30710         * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
30711         * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
30712         (valid_psw_flag): Likewise.
30713         * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
30714         * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
30715         (xstormy16_expand_builtin_va_start): Likewise.
30716         (xstormy16_handle_below100_attribute): Likewise.
30718 2022-01-18  Martin Liska  <mliska@suse.cz>
30720         * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
30721         warning.
30722         (vms_pragma_standard): Likewise.
30723         (vms_pragma_extern_prefix): Likewise.
30725 2022-01-18  Martin Liska  <mliska@suse.cz>
30727         * config/xtensa/xtensa.cc (print_operand): Fix warnings.
30728         (print_operand_address): Likewise.
30729         (xtensa_multibss_section_type_flags): Likewise.
30731 2022-01-18  Martin Liska  <mliska@suse.cz>
30733         * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
30734         wording of an error message.
30736 2022-01-18  Martin Liska  <mliska@suse.cz>
30738         * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
30739         warning.
30740         (ghs_pragma_section): Likewise.
30741         (ghs_pragma_interrupt): Likewise.
30742         (ghs_pragma_starttda): Likewise.
30743         (ghs_pragma_startsda): Likewise.
30744         (ghs_pragma_startzda): Likewise.
30745         (ghs_pragma_endtda): Likewise.
30746         (ghs_pragma_endsda): Likewise.
30747         (ghs_pragma_endzda): Likewise.
30749 2022-01-18  Martin Liska  <mliska@suse.cz>
30751         * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
30752         Fix warnings.
30753         * config/nds32/nds32-intrinsic.md: Likewise.
30754         * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
30755         * config/nds32/nds32.cc (nds32_print_operand): Likewise.
30756         (nds32_insert_attributes): Likewise.
30758 2022-01-18  Martin Liska  <mliska@suse.cz>
30760         * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
30761         keyword.
30762         * config/nvptx/nvptx.md: Remove trailing dot.
30764 2022-01-18  Martin Liska  <mliska@suse.cz>
30766         * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
30767         Wrap keywords with quotes and remove trailing dots.
30768         (riscv_subset_list::parsing_subset_version): Likewise.
30769         (riscv_subset_list::parse_std_ext): Likewise.
30770         (riscv_subset_list::parse_multiletter_ext): Likewise.
30771         * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
30773 2022-01-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30775         * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
30776         argument suggested_unroll_factor.
30777         (vect_analyze_loop_costing): Likewise.
30778         (_loop_vec_info::_loop_vec_info): Initialize new member
30779         suggested_unroll_factor.
30780         (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
30781         main loop use partial vectors.
30782         (vect_analyze_loop_2): Pass and use new argument
30783         suggested_unroll_factor.
30784         (vect_analyze_loop_1): Change to intialize local
30785         suggested_unroll_factor and use it.
30786         (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
30787         * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
30788         suggested_unroll_factor.
30789         (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
30790         (vector_costs::suggested_unroll_factor): New getter function.
30791         (finish_cost): Set return argument suggested_unroll_factor.
30793 2022-01-18  Andrew MacLeod  <amacleod@redhat.com>
30795         PR tree-optimization/104038
30796         * doc/invoke.texi (relation-block-limit): New.
30797         * params.opt (relation-block-limit): New.
30798         * value-relation.cc (dom_oracle::register_relation): Check for NULL
30799         record before invoking transitive registery.
30800         (dom_oracle::set_one_relation): Check limit before creating record.
30801         (dom_oracle::register_transitives): Stop when no record created.
30802         * value-relation.h (relation_chain_head::m_num_relations): New.
30804 2022-01-18  Richard Biener  <rguenther@suse.de>
30806         PR ipa/103989
30807         * ipa-inline.cc (inline_small_functions): Do not enqueue call
30808         edges originating in functions compiled with -Og.
30810 2022-01-18  Richard Biener  <rguenther@suse.de>
30812         PR ipa/103989
30813         * passes.def (pass_all_optimizations_g): Remove pass_modref
30814         and pass_local_pure_const.
30816 2022-01-18  Martin Liska  <mliska@suse.cz>
30818         * config/s390/s390.cc: Fix -Wformat-diag warnings.
30820 2022-01-18  Martin Liska  <mliska@suse.cz>
30822         * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
30823         keyword in quotes.
30824         (s390_resolve_overloaded_builtin): Remove trailing dot.
30825         * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
30826         (s390_expand_builtin): Remove trailing dot.
30827         (s390_emit_prologue): Likewise, use semicolon.
30828         (s390_option_override_internal): Update keyword.
30829         * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
30831 2022-01-18  Martin Liska  <mliska@suse.cz>
30833         * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
30834         keywords and use %qs instead of %<%s%>.
30836 2022-01-18  Richard Biener  <rguenther@suse.de>
30838         PR tree-optimization/103987
30839         * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
30840         query with a pointer check.
30842 2022-01-18  Richard Sandiford  <richard.sandiford@arm.com>
30844         PR target/104005
30845         * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
30846         When using MEM_EXPR, require the base to be a decl.
30848 2022-01-18  Richard Biener  <rguenther@suse.de>
30850         * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
30851         avoid padding.
30852         * function.h (struct function): Likewise.
30854 2022-01-18  Arnaud Charlet  <charlet@adacore.com>
30856         * doc/install.texi: Update prerequisites for GNAT
30858 2022-01-18  Andrew Pinski  <apinski@marvell.com>
30860         PR tree-optimization/101941
30861         * ipa-split.cc (visit_bb): Disallow function calls where
30862         the function has either error or warning attribute.
30864 2022-01-18  Richard Biener  <rguenther@suse.de>
30866         PR tree-optimization/104064
30867         * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
30868         DR_INIT fits in a signed HWI, represent the difference from the
30869         first DR in unsigned.
30871 2022-01-17  Martin Liska  <mliska@suse.cz>
30873         * Makefile.in: Rename .c names to .cc.
30874         * config.gcc: Likewise.
30875         * configure: Regenerate. Likewise.
30876         * configure.ac: Likewise.
30877         * gengtype.cc (set_gc_used): Likewise.
30878         (source_dot_c_frul): Likewise.
30879         (source_dot_cc_frul): Likewise.
30880         (struct file_rule_st): Likewise.
30881         (close_output_files): Likewise.
30882         * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
30884 2022-01-17  Martin Liska  <mliska@suse.cz>
30886         * Makefile.in: Rename .c names to .cc.
30887         * alias.h: Likewise.
30888         * asan.cc: Likewise.
30889         * auto-profile.h: Likewise.
30890         * basic-block.h (struct basic_block_d): Likewise.
30891         * btfout.cc: Likewise.
30892         * builtins.cc (expand_builtin_longjmp): Likewise.
30893         (validate_arg): Likewise.
30894         (access_ref::offset_bounded): Likewise.
30895         * caller-save.cc (reg_restore_code): Likewise.
30896         (setup_save_areas): Likewise.
30897         * calls.cc (initialize_argument_information): Likewise.
30898         (expand_call): Likewise.
30899         (emit_library_call_value_1): Likewise.
30900         * cfg-flags.def (RTL): Likewise.
30901         (SIBCALL): Likewise.
30902         (CAN_FALLTHRU): Likewise.
30903         * cfganal.cc (post_order_compute): Likewise.
30904         * cfgcleanup.cc (try_simplify_condjump): Likewise.
30905         (merge_blocks_move_predecessor_nojumps): Likewise.
30906         (merge_blocks_move_successor_nojumps): Likewise.
30907         (merge_blocks_move): Likewise.
30908         (old_insns_match_p): Likewise.
30909         (try_crossjump_bb): Likewise.
30910         * cfgexpand.cc (expand_gimple_stmt): Likewise.
30911         * cfghooks.cc (split_block_before_cond_jump): Likewise.
30912         (profile_record_check_consistency): Likewise.
30913         * cfghooks.h: Likewise.
30914         * cfgrtl.cc (pass_free_cfg::execute): Likewise.
30915         (rtl_can_merge_blocks): Likewise.
30916         (try_redirect_by_replacing_jump): Likewise.
30917         (make_pass_outof_cfg_layout_mode): Likewise.
30918         (cfg_layout_can_merge_blocks_p): Likewise.
30919         * cgraph.cc (release_function_body): Likewise.
30920         (cgraph_node::get_fun): Likewise.
30921         * cgraph.h (struct cgraph_node): Likewise.
30922         (asmname_hasher::equal): Likewise.
30923         (cgraph_inline_failed_type): Likewise.
30924         (thunk_adjust): Likewise.
30925         (dump_callgraph_transformation): Likewise.
30926         (record_references_in_initializer): Likewise.
30927         (ipa_discover_variable_flags): Likewise.
30928         * cgraphclones.cc (GTY): Likewise.
30929         * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
30930         * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
30931         * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
30932         * collect2.cc (maybe_run_lto_and_relink): Likewise.
30933         * combine-stack-adj.cc: Likewise.
30934         * combine.cc (setup_incoming_promotions): Likewise.
30935         (combine_simplify_rtx): Likewise.
30936         (count_rtxs): Likewise.
30937         * common.opt: Likewise.
30938         * common/config/aarch64/aarch64-common.cc: Likewise.
30939         * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
30940         * common/config/avr/avr-common.cc: Likewise.
30941         * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
30942         * conditions.h: Likewise.
30943         * config.gcc: Likewise.
30944         * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
30945         * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
30946         (aarch64_get_extension_string_for_isa_flags): Likewise.
30947         * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
30948         * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
30949         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
30950         (aarch64_option_valid_attribute_p): Likewise.
30951         (aarch64_short_vector_p): Likewise.
30952         (aarch64_float_const_representable_p): Likewise.
30953         * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
30954         (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
30955         (GTY): Likewise.
30956         * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
30957         * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
30958         * config/aarch64/t-aarch64: Likewise.
30959         * config/aarch64/x-aarch64: Likewise.
30960         * config/aarch64/x-darwin: Likewise.
30961         * config/alpha/alpha-protos.h: Likewise.
30962         * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
30963         * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
30964         (enum reg_class): Likewise.
30965         * config/alpha/alpha.md: Likewise.
30966         * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
30967         * config/alpha/x-alpha: Likewise.
30968         * config/arc/arc-protos.h (arc_eh_uses): Likewise.
30969         * config/arc/arc.cc (ARC_OPT): Likewise.
30970         (arc_ccfsm_advance): Likewise.
30971         (arc_arg_partial_bytes): Likewise.
30972         (conditionalize_nonjump): Likewise.
30973         * config/arc/arc.md: Likewise.
30974         * config/arc/builtins.def: Likewise.
30975         * config/arc/t-arc: Likewise.
30976         * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
30977         (arm_pragma_target_parse): Likewise.
30978         * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
30979         (arm_cpu_cpp_builtins): Likewise.
30980         * config/arm/arm.cc (vfp3_const_double_index): Likewise.
30981         (shift_op): Likewise.
30982         (thumb2_final_prescan_insn): Likewise.
30983         (arm_final_prescan_insn): Likewise.
30984         (arm_asm_output_labelref): Likewise.
30985         (arm_small_register_classes_for_mode_p): Likewise.
30986         * config/arm/arm.h: Likewise.
30987         * config/arm/arm.md: Likewise.
30988         * config/arm/driver-arm.cc: Likewise.
30989         * config/arm/symbian.h: Likewise.
30990         * config/arm/t-arm: Likewise.
30991         * config/arm/thumb1.md: Likewise.
30992         * config/arm/x-arm: Likewise.
30993         * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
30994         * config/avr/avr-fixed.md: Likewise.
30995         * config/avr/avr-log.cc (avr_log_vadump): Likewise.
30996         * config/avr/avr-mcus.def: Likewise.
30997         * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
30998         * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
30999         * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
31000         * config/avr/avr.cc (avr_option_override): Likewise.
31001         (avr_build_builtin_va_list): Likewise.
31002         (avr_mode_dependent_address_p): Likewise.
31003         (avr_function_arg_advance): Likewise.
31004         (avr_asm_output_aligned_decl_common): Likewise.
31005         * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
31006         (SUPPORTS_INIT_PRIORITY): Likewise.
31007         * config/avr/avr.md: Likewise.
31008         * config/avr/builtins.def: Likewise.
31009         * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
31010         * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
31011         (main): Likewise.
31012         * config/avr/t-avr: Likewise.
31013         * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
31014         * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
31015         * config/bpf/bpf.h (enum reg_class): Likewise.
31016         * config/bpf/t-bpf: Likewise.
31017         * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
31018         * config/cr16/cr16-protos.h: Likewise.
31019         * config/cris/cris.cc (cris_address_cost): Likewise.
31020         (cris_side_effect_mode_ok): Likewise.
31021         (cris_init_machine_status): Likewise.
31022         (cris_emit_movem_store): Likewise.
31023         * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
31024         (enum reg_class): Likewise.
31025         (struct cum_args): Likewise.
31026         * config/cris/cris.opt: Likewise.
31027         * config/cris/sync.md: Likewise.
31028         * config/csky/csky.cc (csky_expand_prologue): Likewise.
31029         * config/darwin-c.cc: Likewise.
31030         * config/darwin-f.cc: Likewise.
31031         * config/darwin-sections.def (zobj_const_section): Likewise.
31032         * config/darwin.cc (output_objc_section_asm_op): Likewise.
31033         (fprintf): Likewise.
31034         * config/darwin.h (GTY): Likewise.
31035         * config/elfos.h: Likewise.
31036         * config/epiphany/epiphany-sched.md: Likewise.
31037         * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
31038         * config/epiphany/epiphany.h (GTY): Likewise.
31039         (NO_FUNCTION_CSE): Likewise.
31040         * config/epiphany/mode-switch-use.cc: Likewise.
31041         * config/epiphany/predicates.md: Likewise.
31042         * config/epiphany/t-epiphany: Likewise.
31043         * config/fr30/fr30-protos.h: Likewise.
31044         * config/frv/frv-protos.h: Likewise.
31045         * config/frv/frv.cc (TLS_BIAS): Likewise.
31046         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
31047         * config/ft32/ft32-protos.h: Likewise.
31048         * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
31049         * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
31050         * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
31051         * config/gcn/t-gcn-hsa: Likewise.
31052         * config/gcn/t-omp-device: Likewise.
31053         * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
31054         (same_cmp_following_p): Likewise.
31055         * config/h8300/h8300.cc (F): Likewise.
31056         * config/h8300/h8300.h (struct cum_arg): Likewise.
31057         (BRANCH_COST): Likewise.
31058         * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
31059         * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
31060         * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
31061         * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
31062         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
31063         * config/i386/i386-c.cc (ix86_target_macros): Likewise.
31064         * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
31065         * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
31066         * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
31067         (ix86_register_pragmas): Likewise.
31068         (ix86_d_has_stdcall_convention): Likewise.
31069         (i386_pe_seh_init_sections): Likewise.
31070         * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
31071         (ix86_function_value_regno_p): Likewise.
31072         (ix86_compute_frame_layout): Likewise.
31073         (legitimize_pe_coff_symbol): Likewise.
31074         (output_pic_addr_const): Likewise.
31075         * config/i386/i386.h (defined): Likewise.
31076         (host_detect_local_cpu): Likewise.
31077         (CONSTANT_ADDRESS_P): Likewise.
31078         (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
31079         (struct machine_frame_state): Likewise.
31080         * config/i386/i386.md: Likewise.
31081         * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
31082         * config/i386/mmx.md: Likewise.
31083         * config/i386/sse.md: Likewise.
31084         * config/i386/t-cygming: Likewise.
31085         * config/i386/t-djgpp: Likewise.
31086         * config/i386/t-gnu-property: Likewise.
31087         * config/i386/t-i386: Likewise.
31088         * config/i386/t-intelmic: Likewise.
31089         * config/i386/t-omp-device: Likewise.
31090         * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
31091         (i386_pe_adjust_class_at_definition): Likewise.
31092         * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
31093         (i386_pe_mangle_decl_assembler_name): Likewise.
31094         (i386_pe_encode_section_info): Likewise.
31095         * config/i386/x-cygwin: Likewise.
31096         * config/i386/x-darwin: Likewise.
31097         * config/i386/x-i386: Likewise.
31098         * config/i386/x-mingw32: Likewise.
31099         * config/i386/x86-tune-sched-core.cc: Likewise.
31100         * config/i386/x86-tune.def: Likewise.
31101         * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
31102         * config/ia64/freebsd.h: Likewise.
31103         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
31104         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
31105         * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
31106         (ia64_secondary_reload_class): Likewise.
31107         (bundling): Likewise.
31108         * config/ia64/ia64.h: Likewise.
31109         * config/ia64/ia64.md: Likewise.
31110         * config/ia64/predicates.md: Likewise.
31111         * config/ia64/sysv4.h: Likewise.
31112         * config/ia64/t-ia64: Likewise.
31113         * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
31114         * config/iq2000/iq2000.md: Likewise.
31115         * config/linux.h (TARGET_HAS_BIONIC): Likewise.
31116         (if): Likewise.
31117         * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
31118         * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
31119         * config/m32c/t-m32c: Likewise.
31120         * config/m32r/m32r-protos.h: Likewise.
31121         * config/m32r/m32r.cc (m32r_print_operand): Likewise.
31122         * config/m32r/m32r.h: Likewise.
31123         * config/m32r/m32r.md: Likewise.
31124         * config/m68k/m68k-isas.def: Likewise.
31125         * config/m68k/m68k-microarchs.def: Likewise.
31126         * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
31127         (m68k_epilogue_uses): Likewise.
31128         * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
31129         (m68k_sched_adjust_cost): Likewise.
31130         (m68k_sched_md_init): Likewise.
31131         * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
31132         (enum m68k_function_kind): Likewise.
31133         * config/m68k/m68k.md: Likewise.
31134         * config/m68k/m68kemb.h: Likewise.
31135         * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
31136         * config/mcore/mcore-protos.h: Likewise.
31137         * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
31138         (mcore_expand_prolog): Likewise.
31139         * config/mcore/mcore.h (TARGET_MCORE): Likewise.
31140         * config/mcore/mcore.md: Likewise.
31141         * config/microblaze/microblaze-protos.h: Likewise.
31142         * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
31143         (microblaze_function_prologue): Likewise.
31144         (microblaze_function_epilogue): Likewise.
31145         (microblaze_select_section): Likewise.
31146         (microblaze_asm_output_mi_thunk): Likewise.
31147         (microblaze_eh_return): Likewise.
31148         * config/microblaze/microblaze.h: Likewise.
31149         * config/microblaze/microblaze.md: Likewise.
31150         * config/microblaze/t-microblaze: Likewise.
31151         * config/mips/driver-native.cc: Likewise.
31152         * config/mips/loongson2ef.md: Likewise.
31153         * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
31154         * config/mips/mips.cc (mips_rtx_costs): Likewise.
31155         (mips_output_filename): Likewise.
31156         (mips_output_function_prologue): Likewise.
31157         (mips_output_function_epilogue): Likewise.
31158         (mips_output_mi_thunk): Likewise.
31159         * config/mips/mips.h: Likewise.
31160         * config/mips/mips.md: Likewise.
31161         * config/mips/t-mips: Likewise.
31162         * config/mips/x-native: Likewise.
31163         * config/mmix/mmix-protos.h: Likewise.
31164         * config/mmix/mmix.cc (mmix_option_override): Likewise.
31165         (mmix_dbx_register_number): Likewise.
31166         (mmix_expand_prologue): Likewise.
31167         * config/mmix/mmix.h: Likewise.
31168         * config/mmix/mmix.md: Likewise.
31169         * config/mmix/predicates.md: Likewise.
31170         * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
31171         (mn10300_legitimate_pic_operand_p): Likewise.
31172         * config/mn10300/mn10300.h (enum reg_class): Likewise.
31173         (NO_FUNCTION_CSE): Likewise.
31174         * config/moxie/moxie-protos.h: Likewise.
31175         * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
31176         * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
31177         * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
31178         (msp430_incoming_return_addr_rtx): Likewise.
31179         * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
31180         * config/msp430/t-msp430: Likewise.
31181         * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
31182         (nds32_rtx_costs_size_prefer): Likewise.
31183         (nds32_init_rtx_costs): Likewise.
31184         * config/nds32/nds32-doubleword.md: Likewise.
31185         * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
31186         (nds32_builtin_decl): Likewise.
31187         * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
31188         (enum nds32_isr_nested_type): Likewise.
31189         (enum reg_class): Likewise.
31190         * config/nds32/predicates.md: Likewise.
31191         * config/nds32/t-nds32: Likewise.
31192         * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
31193         * config/nvptx/nvptx-protos.h: Likewise.
31194         * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
31195         * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
31196         * config/nvptx/t-nvptx: Likewise.
31197         * config/nvptx/t-omp-device: Likewise.
31198         * config/pa/elf.h: Likewise.
31199         * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
31200         * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
31201         * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
31202         * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
31203         (pa_legitimize_reload_address): Likewise.
31204         (pa_can_use_return_insn): Likewise.
31205         * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
31206         (som_output_text_section_asm_op): Likewise.
31207         * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
31208         * config/pa/pa.md: Likewise.
31209         * config/pa/som.h: Likewise.
31210         * config/pa/t-pa: Likewise.
31211         * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
31212         * config/pdp11/pdp11.h: Likewise.
31213         * config/pdp11/pdp11.md: Likewise.
31214         * config/pdp11/t-pdp11: Likewise.
31215         * config/pru/pru.md: Likewise.
31216         * config/pru/t-pru: Likewise.
31217         * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
31218         (riscv_gpr_save_operation_p): Likewise.
31219         (riscv_d_register_target_info): Likewise.
31220         (riscv_init_builtins): Likewise.
31221         * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
31222         * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
31223         * config/riscv/t-riscv: Likewise.
31224         * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
31225         * config/rl78/t-rl78: Likewise.
31226         * config/rs6000/aix.h: Likewise.
31227         * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
31228         * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
31229         * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
31230         * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
31231         * config/rs6000/driver-rs6000.cc: Likewise.
31232         * config/rs6000/freebsd.h: Likewise.
31233         * config/rs6000/freebsd64.h: Likewise.
31234         * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
31235         * config/rs6000/rbtree.cc: Likewise.
31236         * config/rs6000/rbtree.h: Likewise.
31237         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
31238         * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
31239         (rs6000_expand_builtin): Likewise.
31240         (rs6000_init_builtins): Likewise.
31241         * config/rs6000/rs6000-cpus.def: Likewise.
31242         * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
31243         * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
31244         (quad_address_offset_p): Likewise.
31245         * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
31246         (rs6000_emit_epilogue): Likewise.
31247         * config/rs6000/rs6000-overload.def: Likewise.
31248         * config/rs6000/rs6000-p8swap.cc: Likewise.
31249         * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
31250         (rs6000_const_f32_to_i32): Likewise.
31251         * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
31252         (rs6000_debug_legitimize_address): Likewise.
31253         (rs6000_mode_dependent_address): Likewise.
31254         (rs6000_adjust_priority): Likewise.
31255         (rs6000_c_mode_for_suffix): Likewise.
31256         * config/rs6000/rs6000.h (defined): Likewise.
31257         (LONG_DOUBLE_TYPE_SIZE): Likewise.
31258         * config/rs6000/rs6000.md: Likewise.
31259         * config/rs6000/sysv4.h: Likewise.
31260         * config/rs6000/t-linux: Likewise.
31261         * config/rs6000/t-linux64: Likewise.
31262         * config/rs6000/t-rs6000: Likewise.
31263         * config/rs6000/x-darwin: Likewise.
31264         * config/rs6000/x-darwin64: Likewise.
31265         * config/rs6000/x-rs6000: Likewise.
31266         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
31267         * config/rx/rx.cc (rx_expand_builtin): Likewise.
31268         * config/s390/constraints.md: Likewise.
31269         * config/s390/driver-native.cc: Likewise.
31270         * config/s390/htmxlintrin.h: Likewise.
31271         * config/s390/s390-builtins.def (B_DEF): Likewise.
31272         (OB_DEF_VAR): Likewise.
31273         * config/s390/s390-builtins.h: Likewise.
31274         * config/s390/s390-c.cc: Likewise.
31275         * config/s390/s390-opts.h: Likewise.
31276         * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
31277         (s390_register_target_pragmas): Likewise.
31278         * config/s390/s390.cc (s390_init_builtins): Likewise.
31279         (s390_expand_plus_operand): Likewise.
31280         (s390_expand_atomic): Likewise.
31281         (s390_valid_target_attribute_inner_p): Likewise.
31282         * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
31283         * config/s390/s390.md: Likewise.
31284         * config/s390/t-s390: Likewise.
31285         * config/s390/vx-builtins.md: Likewise.
31286         * config/s390/x-native: Likewise.
31287         * config/sh/divtab-sh4-300.cc (main): Likewise.
31288         * config/sh/divtab-sh4.cc (main): Likewise.
31289         * config/sh/divtab.cc (main): Likewise.
31290         * config/sh/elf.h: Likewise.
31291         * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
31292         * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
31293         (sh_struct_value_rtx): Likewise.
31294         (sh_remove_reg_dead_or_unused_notes): Likewise.
31295         * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
31296         * config/sh/t-sh: Likewise.
31297         * config/sol2-protos.h (solaris_override_options): Likewise.
31298         * config/sol2.h: Likewise.
31299         * config/sparc/driver-sparc.cc: Likewise.
31300         * config/sparc/freebsd.h: Likewise.
31301         * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
31302         * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
31303         (sparc_asan_shadow_offset): Likewise.
31304         * config/sparc/sparc.h: Likewise.
31305         * config/sparc/sparc.md: Likewise.
31306         * config/sparc/t-sparc: Likewise.
31307         * config/sparc/x-sparc: Likewise.
31308         * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
31309         * config/t-darwin: Likewise.
31310         * config/t-dragonfly: Likewise.
31311         * config/t-freebsd: Likewise.
31312         * config/t-glibc: Likewise.
31313         * config/t-linux: Likewise.
31314         * config/t-netbsd: Likewise.
31315         * config/t-openbsd: Likewise.
31316         * config/t-pnt16-warn: Likewise.
31317         * config/t-sol2: Likewise.
31318         * config/t-vxworks: Likewise.
31319         * config/t-winnt: Likewise.
31320         * config/tilegx/t-tilegx: Likewise.
31321         * config/tilegx/tilegx-c.cc: Likewise.
31322         * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
31323         * config/tilegx/tilegx.md: Likewise.
31324         * config/tilepro/t-tilepro: Likewise.
31325         * config/tilepro/tilepro-c.cc: Likewise.
31326         * config/v850/t-v850: Likewise.
31327         * config/v850/v850-protos.h: Likewise.
31328         * config/v850/v850.cc (F): Likewise.
31329         * config/v850/v850.h (enum reg_class): Likewise.
31330         (SLOW_BYTE_ACCESS): Likewise.
31331         * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
31332         * config/vax/vax.h (enum reg_class): Likewise.
31333         * config/vax/vax.md: Likewise.
31334         * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
31335         * config/visium/visium.h: Likewise.
31336         * config/vms/t-vms: Likewise.
31337         * config/vms/vms-crtlmap.map: Likewise.
31338         * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
31339         * config/vx-common.h: Likewise.
31340         * config/x-darwin: Likewise.
31341         * config/x-hpux: Likewise.
31342         * config/x-linux: Likewise.
31343         * config/x-netbsd: Likewise.
31344         * config/x-openbsd: Likewise.
31345         * config/x-solaris: Likewise.
31346         * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
31347         * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
31348         * config/xtensa/xtensa.h: Likewise.
31349         * configure.ac: Likewise.
31350         * context.cc: Likewise.
31351         * convert.h: Likewise.
31352         * coretypes.h: Likewise.
31353         * coverage.cc: Likewise.
31354         * coverage.h: Likewise.
31355         * cppdefault.h (struct default_include): Likewise.
31356         * cprop.cc (local_cprop_pass): Likewise.
31357         (one_cprop_pass): Likewise.
31358         * cse.cc (hash_rtx_cb): Likewise.
31359         (fold_rtx): Likewise.
31360         * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
31361         * data-streamer.h (bp_unpack_var_len_int): Likewise.
31362         (streamer_write_widest_int): Likewise.
31363         * dbgcnt.def: Likewise.
31364         * dbxout.cc (dbxout_early_global_decl): Likewise.
31365         (dbxout_common_check): Likewise.
31366         * dbxout.h: Likewise.
31367         * debug.h (struct gcc_debug_hooks): Likewise.
31368         (dump_go_spec_init): Likewise.
31369         * df-core.cc: Likewise.
31370         * df-scan.cc (df_insn_info_delete): Likewise.
31371         (df_insn_delete): Likewise.
31372         * df.h (debug_df_chain): Likewise.
31373         (can_move_insns_across): Likewise.
31374         * dfp.cc (decimal_from_binary): Likewise.
31375         * diagnostic-color.cc: Likewise.
31376         * diagnostic-event-id.h: Likewise.
31377         * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
31378         * diagnostic.cc (bt_callback): Likewise.
31379         (num_digits): Likewise.
31380         * doc/avr-mmcu.texi: Likewise.
31381         * doc/cfg.texi: Likewise.
31382         * doc/contrib.texi: Likewise.
31383         * doc/cppinternals.texi: Likewise.
31384         * doc/extend.texi: Likewise.
31385         * doc/generic.texi: Likewise.
31386         * doc/gimple.texi: Likewise.
31387         * doc/gty.texi: Likewise.
31388         * doc/invoke.texi: Likewise.
31389         * doc/loop.texi: Likewise.
31390         * doc/lto.texi: Likewise.
31391         * doc/match-and-simplify.texi: Likewise.
31392         * doc/md.texi: Likewise.
31393         * doc/optinfo.texi: Likewise.
31394         * doc/options.texi: Likewise.
31395         * doc/passes.texi: Likewise.
31396         * doc/plugins.texi: Likewise.
31397         * doc/rtl.texi: Likewise.
31398         * doc/sourcebuild.texi: Likewise.
31399         * doc/tm.texi: Likewise.
31400         * doc/tm.texi.in: Likewise.
31401         * doc/tree-ssa.texi: Likewise.
31402         * dojump.cc (do_jump): Likewise.
31403         * dojump.h: Likewise.
31404         * dumpfile.cc (test_impl_location): Likewise.
31405         (test_capture_of_dump_calls): Likewise.
31406         * dumpfile.h (enum dump_kind): Likewise.
31407         (class dump_location_t): Likewise.
31408         (dump_enabled_p): Likewise.
31409         (enable_rtl_dump_file): Likewise.
31410         (dump_combine_total_stats): Likewise.
31411         * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
31412         * dwarf2ctf.h (ctf_debug_finish): Likewise.
31413         * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
31414         (struct loc_descr_context): Likewise.
31415         (rtl_for_decl_location): Likewise.
31416         (gen_subprogram_die): Likewise.
31417         (gen_label_die): Likewise.
31418         (is_trivial_indirect_ref): Likewise.
31419         (dwarf2out_late_global_decl): Likewise.
31420         (dwarf_file_hasher::hash): Likewise.
31421         (dwarf2out_end_source_file): Likewise.
31422         (dwarf2out_define): Likewise.
31423         (dwarf2out_early_finish): Likewise.
31424         * dwarf2out.h (struct dw_fde_node): Likewise.
31425         (struct dw_discr_list_node): Likewise.
31426         (output_loc_sequence_raw): Likewise.
31427         * emit-rtl.cc (gen_raw_REG): Likewise.
31428         (maybe_set_max_label_num): Likewise.
31429         * emit-rtl.h (struct rtl_data): Likewise.
31430         * errors.cc (internal_error): Likewise.
31431         (trim_filename): Likewise.
31432         * et-forest.cc: Likewise.
31433         * except.cc (init_eh_for_function): Likewise.
31434         * explow.cc (promote_ssa_mode): Likewise.
31435         (get_dynamic_stack_size): Likewise.
31436         * explow.h: Likewise.
31437         * expmed.h: Likewise.
31438         * expr.cc (safe_from_p): Likewise.
31439         (expand_expr_real_2): Likewise.
31440         (expand_expr_real_1): Likewise.
31441         * file-prefix-map.cc (remap_filename): Likewise.
31442         * final.cc (app_enable): Likewise.
31443         (make_pass_compute_alignments): Likewise.
31444         (final_scan_insn_1): Likewise.
31445         (final_scan_insn): Likewise.
31446         * fixed-value.h (fixed_from_string): Likewise.
31447         * flag-types.h (NO_DEBUG): Likewise.
31448         (DWARF2_DEBUG): Likewise.
31449         (VMS_DEBUG): Likewise.
31450         (BTF_DEBUG): Likewise.
31451         (enum ctf_debug_info_levels): Likewise.
31452         * fold-const.cc (const_binop): Likewise.
31453         (fold_binary_loc): Likewise.
31454         (fold_checksum_tree): Likewise.
31455         * fp-test.cc: Likewise.
31456         * function.cc (expand_function_end): Likewise.
31457         * function.h (struct function): Likewise.
31458         * fwprop.cc (should_replace_address): Likewise.
31459         * gcc-main.cc: Likewise.
31460         * gcc-rich-location.h (class gcc_rich_location): Likewise.
31461         * gcc-symtab.h: Likewise.
31462         * gcc.cc (MIN_FATAL_STATUS): Likewise.
31463         (driver_handle_option): Likewise.
31464         (quote_spec_arg): Likewise.
31465         (driver::finalize): Likewise.
31466         * gcc.h (set_input): Likewise.
31467         * gcov-dump.cc: Likewise.
31468         * gcov.cc (solve_flow_graph): Likewise.
31469         * gcse-common.cc: Likewise.
31470         * gcse.cc (make_pass_rtl_hoist): Likewise.
31471         * genattr-common.cc: Likewise.
31472         * genattrtab.cc (min_fn): Likewise.
31473         (write_const_num_delay_slots): Likewise.
31474         * genautomata.cc: Likewise.
31475         * genconditions.cc (write_one_condition): Likewise.
31476         * genconstants.cc: Likewise.
31477         * genemit.cc (gen_exp): Likewise.
31478         * generic-match-head.cc: Likewise.
31479         * genextract.cc: Likewise.
31480         * gengenrtl.cc (always_void_p): Likewise.
31481         * gengtype-parse.cc (gtymarker_opt): Likewise.
31482         * gengtype-state.cc (state_writer::state_writer): Likewise.
31483         (write_state_trailer): Likewise.
31484         (equals_type_number): Likewise.
31485         (read_state): Likewise.
31486         * gengtype.cc (open_base_files): Likewise.
31487         (struct file_rule_st): Likewise.
31488         (header_dot_h_frul): Likewise.
31489         * gengtype.h: Likewise.
31490         * genmatch.cc (main): Likewise.
31491         * genmddeps.cc: Likewise.
31492         * genmodes.cc (emit_mode_inner): Likewise.
31493         (emit_mode_unit_size): Likewise.
31494         * genpeep.cc (gen_peephole): Likewise.
31495         * genpreds.cc (write_tm_preds_h): Likewise.
31496         * genrecog.cc (validate_pattern): Likewise.
31497         (write_header): Likewise.
31498         (main): Likewise.
31499         * gensupport.cc (change_subst_attribute): Likewise.
31500         (traverse_c_tests): Likewise.
31501         (add_predicate): Likewise.
31502         (init_predicate_table): Likewise.
31503         * gensupport.h (struct optab_pattern): Likewise.
31504         (get_num_insn_codes): Likewise.
31505         (maybe_eval_c_test): Likewise.
31506         (struct pred_data): Likewise.
31507         * ggc-internal.h: Likewise.
31508         * gimple-fold.cc (maybe_fold_reference): Likewise.
31509         (get_range_strlen_tree): Likewise.
31510         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
31511         * gimple-low.cc: Likewise.
31512         * gimple-match-head.cc (directly_supported_p): Likewise.
31513         * gimple-pretty-print.h: Likewise.
31514         * gimple-ssa-sprintf.cc (format_percent): Likewise.
31515         (adjust_range_for_overflow): Likewise.
31516         * gimple-streamer.h: Likewise.
31517         * gimple.h (struct GTY): Likewise.
31518         (is_gimple_resx): Likewise.
31519         * gimplify.cc (gimplify_expr): Likewise.
31520         (gimplify_init_constructor): Likewise.
31521         (omp_construct_selector_matches): Likewise.
31522         (gimplify_omp_target_update): Likewise.
31523         (gimplify_omp_ordered): Likewise.
31524         (gimplify_va_arg_expr): Likewise.
31525         * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
31526         * haifa-sched.cc (increase_insn_priority): Likewise.
31527         (try_ready): Likewise.
31528         (sched_create_recovery_edges): Likewise.
31529         * ifcvt.cc (find_if_case_1): Likewise.
31530         (find_if_case_2): Likewise.
31531         * inchash.h: Likewise.
31532         * incpath.cc (add_env_var_paths): Likewise.
31533         * input.cc (dump_location_info): Likewise.
31534         (assert_loceq): Likewise.
31535         (test_lexer_string_locations_concatenation_1): Likewise.
31536         (test_lexer_string_locations_concatenation_2): Likewise.
31537         (test_lexer_string_locations_concatenation_3): Likewise.
31538         * input.h (BUILTINS_LOCATION): Likewise.
31539         (class string_concat_db): Likewise.
31540         * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
31541         (expand_LOOP_VECTORIZED): Likewise.
31542         * ipa-cp.cc (make_pass_ipa_cp): Likewise.
31543         * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
31544         (ipa_fn_summary_t::duplicate): Likewise.
31545         (make_pass_ipa_fn_summary): Likewise.
31546         * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
31547         * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
31548         (free_lang_data_in_decl): Likewise.
31549         * ipa-inline.cc (compute_inlined_call_time): Likewise.
31550         (inline_always_inline_functions): Likewise.
31551         * ipa-inline.h (free_growth_caches): Likewise.
31552         (inline_account_function_p): Likewise.
31553         * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
31554         (modref_eaf_analysis::analyze_ssa_name): Likewise.
31555         * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
31556         (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
31557         * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
31558         * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
31559         (unadjusted_ptr_and_unit_offset): Likewise.
31560         * ipa-reference.cc (make_pass_ipa_reference): Likewise.
31561         * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
31562         * ipa-split.cc (consider_split): Likewise.
31563         * ipa-sra.cc (isra_read_node_info): Likewise.
31564         * ipa-utils.h (struct ipa_dfs_info): Likewise.
31565         (recursive_call_p): Likewise.
31566         (ipa_make_function_pure): Likewise.
31567         * ira-build.cc (ira_create_allocno): Likewise.
31568         (ira_flattening): Likewise.
31569         * ira-color.cc (do_coloring): Likewise.
31570         (update_curr_costs): Likewise.
31571         * ira-conflicts.cc (process_regs_for_copy): Likewise.
31572         * ira-int.h (struct ira_emit_data): Likewise.
31573         (ira_prohibited_mode_move_regs): Likewise.
31574         (ira_get_dup_out_num): Likewise.
31575         (ira_destroy): Likewise.
31576         (ira_tune_allocno_costs): Likewise.
31577         (ira_implicitly_set_insn_hard_regs): Likewise.
31578         (ira_build_conflicts): Likewise.
31579         (ira_color): Likewise.
31580         * ira-lives.cc (process_bb_node_lives): Likewise.
31581         * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
31582         (setup_uniform_class_p): Likewise.
31583         (def_dominates_uses): Likewise.
31584         * ira.h (ira_nullify_asm_goto): Likewise.
31585         * langhooks.cc (lhd_post_options): Likewise.
31586         * langhooks.h (class substring_loc): Likewise.
31587         (struct lang_hooks_for_tree_inlining): Likewise.
31588         (struct lang_hooks_for_types): Likewise.
31589         (struct lang_hooks): Likewise.
31590         * libfuncs.h (synchronize_libfunc): Likewise.
31591         * loop-doloop.cc (doloop_condition_get): Likewise.
31592         * loop-init.cc (fix_loop_structure): Likewise.
31593         * loop-invariant.cc: Likewise.
31594         * lower-subreg.h: Likewise.
31595         * lra-constraints.cc (curr_insn_transform): Likewise.
31596         * lra-int.h (struct lra_insn_reg): Likewise.
31597         (lra_undo_inheritance): Likewise.
31598         (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
31599         (lra_split_hard_reg_for): Likewise.
31600         (lra_coalesce): Likewise.
31601         (lra_final_code_change): Likewise.
31602         * lra-spills.cc (lra_final_code_change): Likewise.
31603         * lra.cc (lra_process_new_insns): Likewise.
31604         * lto-compress.h (struct lto_compression_stream): Likewise.
31605         * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
31606         (write_symbol): Likewise.
31607         * lto-streamer.h (enum LTO_tags): Likewise.
31608         (lto_value_range_error): Likewise.
31609         (lto_append_block): Likewise.
31610         (lto_streamer_hooks_init): Likewise.
31611         (stream_read_tree_ref): Likewise.
31612         (lto_prepare_function_for_streaming): Likewise.
31613         (select_what_to_stream): Likewise.
31614         (omp_lto_input_declare_variant_alt): Likewise.
31615         (cl_optimization_stream_in): Likewise.
31616         * lto-wrapper.cc (append_compiler_options): Likewise.
31617         * machmode.def: Likewise.
31618         * machmode.h (struct int_n_data_t): Likewise.
31619         * main.cc (main): Likewise.
31620         * match.pd: Likewise.
31621         * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
31622         (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
31623         * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
31624         (make_pass_expand_omp_ssa): Likewise.
31625         * omp-low.cc (struct omp_context): Likewise.
31626         (struct omp_taskcopy_context): Likewise.
31627         (lower_omp): Likewise.
31628         * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
31629         (mask_name): Likewise.
31630         (omp_sese_dump_pars): Likewise.
31631         (worker_single_simple): Likewise.
31632         * omp-offload.cc (omp_finish_file): Likewise.
31633         (execute_oacc_loop_designation): Likewise.
31634         * optabs-query.cc (lshift_cheap_p): Likewise.
31635         * optc-gen.awk: Likewise.
31636         * optc-save-gen.awk: Likewise.
31637         * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
31638         * opts-common.cc: Likewise.
31639         * output.h (app_enable): Likewise.
31640         (output_operand_lossage): Likewise.
31641         (insn_current_reference_address): Likewise.
31642         (get_insn_template): Likewise.
31643         (output_quoted_string): Likewise.
31644         * pass_manager.h (struct register_pass_info): Likewise.
31645         * plugin.cc: Likewise.
31646         * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
31647         * plugin.h (invoke_plugin_callbacks): Likewise.
31648         * pointer-query.cc (handle_mem_ref): Likewise.
31649         * postreload-gcse.cc (alloc_mem): Likewise.
31650         * predict.h (enum prediction): Likewise.
31651         (add_reg_br_prob_note): Likewise.
31652         * prefix.h: Likewise.
31653         * profile.h (get_working_sets): Likewise.
31654         * read-md.cc: Likewise.
31655         * read-md.h (struct mapping): Likewise.
31656         (class md_reader): Likewise.
31657         (class noop_reader): Likewise.
31658         * read-rtl-function.cc (function_reader::create_function): Likewise.
31659         (function_reader::extra_parsing_for_operand_code_0): Likewise.
31660         * read-rtl.cc (initialize_iterators): Likewise.
31661         * real.cc: Likewise.
31662         * real.h (struct real_value): Likewise.
31663         (format_helper::format_helper): Likewise.
31664         (real_hash): Likewise.
31665         (real_can_shorten_arithmetic): Likewise.
31666         * recog.cc (struct target_recog): Likewise.
31667         (offsettable_nonstrict_memref_p): Likewise.
31668         (constrain_operands): Likewise.
31669         * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
31670         (which_op_alt): Likewise.
31671         (struct insn_gen_fn): Likewise.
31672         * reg-notes.def (REG_NOTE): Likewise.
31673         * reg-stack.cc: Likewise.
31674         * regs.h (reg_is_parm_p): Likewise.
31675         * regset.h: Likewise.
31676         * reload.cc (push_reload): Likewise.
31677         (find_reloads): Likewise.
31678         (find_reloads_address_1): Likewise.
31679         (find_replacement): Likewise.
31680         (refers_to_regno_for_reload_p): Likewise.
31681         (refers_to_mem_for_reload_p): Likewise.
31682         * reload.h (push_reload): Likewise.
31683         (deallocate_reload_reg): Likewise.
31684         * reload1.cc (emit_input_reload_insns): Likewise.
31685         * reorg.cc (relax_delay_slots): Likewise.
31686         * rtl.def (UNKNOWN): Likewise.
31687         (SEQUENCE): Likewise.
31688         (BARRIER): Likewise.
31689         (ASM_OPERANDS): Likewise.
31690         (EQ_ATTR_ALT): Likewise.
31691         * rtl.h (struct GTY): Likewise.
31692         (LABEL_NAME): Likewise.
31693         (LABEL_ALT_ENTRY_P): Likewise.
31694         (SUBREG_BYTE): Likewise.
31695         (get_stack_check_protect): Likewise.
31696         (dump_rtx_statistics): Likewise.
31697         (unwrap_const_vec_duplicate): Likewise.
31698         (subreg_promoted_mode): Likewise.
31699         (gen_lowpart_common): Likewise.
31700         (operand_subword): Likewise.
31701         (immed_wide_int_const): Likewise.
31702         (decide_function_section): Likewise.
31703         (active_insn_p): Likewise.
31704         (delete_related_insns): Likewise.
31705         (try_split): Likewise.
31706         (val_signbit_known_clear_p): Likewise.
31707         (simplifiable_subregs): Likewise.
31708         (set_insn_deleted): Likewise.
31709         (subreg_get_info): Likewise.
31710         (remove_free_EXPR_LIST_node): Likewise.
31711         (finish_subregs_of_mode): Likewise.
31712         (get_mem_attrs): Likewise.
31713         (lookup_constant_def): Likewise.
31714         (rtx_to_tree_code): Likewise.
31715         (hash_rtx): Likewise.
31716         (condjump_in_parallel_p): Likewise.
31717         (validate_subreg): Likewise.
31718         (make_compound_operation): Likewise.
31719         (schedule_ebbs): Likewise.
31720         (print_inline_rtx): Likewise.
31721         (fixup_args_size_notes): Likewise.
31722         (expand_dec): Likewise.
31723         (prepare_copy_insn): Likewise.
31724         (mark_elimination): Likewise.
31725         (valid_mode_changes_for_regno): Likewise.
31726         (make_debug_expr_from_rtl): Likewise.
31727         (delete_vta_debug_insns): Likewise.
31728         (simplify_using_condition): Likewise.
31729         (set_insn_locations): Likewise.
31730         (fatal_insn_not_found): Likewise.
31731         (word_register_operation_p): Likewise.
31732         * rtlanal.cc (get_call_fndecl): Likewise.
31733         (side_effects_p): Likewise.
31734         (subreg_nregs): Likewise.
31735         (rtx_cost): Likewise.
31736         (canonicalize_condition): Likewise.
31737         * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
31738         * run-rtl-passes.cc (run_rtl_passes): Likewise.
31739         * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
31740         * sched-deps.cc (add_dependence_1): Likewise.
31741         * sched-ebb.cc (begin_move_insn): Likewise.
31742         (add_deps_for_risky_insns): Likewise.
31743         (advance_target_bb): Likewise.
31744         * sched-int.h (reemit_notes): Likewise.
31745         (struct _haifa_insn_data): Likewise.
31746         (HID): Likewise.
31747         (DEP_CANCELLED): Likewise.
31748         (debug_ds): Likewise.
31749         (number_in_ready): Likewise.
31750         (schedule_ebbs_finish): Likewise.
31751         (find_modifiable_mems): Likewise.
31752         * sched-rgn.cc (debug_rgn_dependencies): Likewise.
31753         * sel-sched-dump.cc (dump_lv_set): Likewise.
31754         * sel-sched-dump.h: Likewise.
31755         * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
31756         (setup_id_reg_sets): Likewise.
31757         (has_dependence_p): Likewise.
31758         (sel_num_cfg_preds_gt_1): Likewise.
31759         (bb_ends_ebb_p): Likewise.
31760         * sel-sched-ir.h (struct _list_node): Likewise.
31761         (struct idata_def): Likewise.
31762         (bb_next_bb): Likewise.
31763         * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
31764         (choose_best_pseudo_reg): Likewise.
31765         (verify_target_availability): Likewise.
31766         (can_speculate_dep_p): Likewise.
31767         (sel_rank_for_schedule): Likewise.
31768         * selftest-run-tests.cc (selftest::run_tests): Likewise.
31769         * selftest.h (class auto_fix_quotes): Likewise.
31770         * shrink-wrap.cc (handle_simple_exit): Likewise.
31771         * shrink-wrap.h: Likewise.
31772         * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
31773         (simplify_context::simplify_gen_vec_select): Likewise.
31774         * spellcheck-tree.h: Likewise.
31775         * spellcheck.h: Likewise.
31776         * statistics.h (struct function): Likewise.
31777         * stmt.cc (conditional_probability): Likewise.
31778         * stmt.h: Likewise.
31779         * stor-layout.h: Likewise.
31780         * streamer-hooks.h: Likewise.
31781         * stringpool.h: Likewise.
31782         * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
31783         * target.def (HOOK_VECTOR_END): Likewise.
31784         (type.): Likewise.
31785         * target.h (union cumulative_args_t): Likewise.
31786         (by_pieces_ninsns): Likewise.
31787         (class predefined_function_abi): Likewise.
31788         * targhooks.cc (default_translate_mode_attribute): Likewise.
31789         * timevar.def: Likewise.
31790         * timevar.h (class timer): Likewise.
31791         * toplev.h (enable_rtl_dump_file): Likewise.
31792         * trans-mem.cc (collect_bb2reg): Likewise.
31793         * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
31794         * tree-cfg.cc (remove_bb): Likewise.
31795         (verify_gimple_debug): Likewise.
31796         (remove_edge_and_dominated_blocks): Likewise.
31797         (push_fndecl): Likewise.
31798         * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
31799         * tree-complex.cc (expand_complex_multiplication): Likewise.
31800         (expand_complex_div_straight): Likewise.
31801         * tree-core.h (enum tree_index): Likewise.
31802         (enum operand_equal_flag): Likewise.
31803         * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
31804         * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
31805         * tree-inline.cc (initialize_inlined_parameters): Likewise.
31806         * tree-inline.h (force_value_to_type): Likewise.
31807         * tree-nested.cc (get_chain_decl): Likewise.
31808         (walk_all_functions): Likewise.
31809         * tree-object-size.h: Likewise.
31810         * tree-outof-ssa.cc: Likewise.
31811         * tree-parloops.cc (create_parallel_loop): Likewise.
31812         * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
31813         (dump_generic_node): Likewise.
31814         * tree-profile.cc (tree_profiling): Likewise.
31815         * tree-sra.cc (maybe_add_sra_candidate): Likewise.
31816         * tree-ssa-address.cc: Likewise.
31817         * tree-ssa-alias.cc: Likewise.
31818         * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
31819         (dump_alias_stats): Likewise.
31820         * tree-ssa-ccp.cc: Likewise.
31821         * tree-ssa-coalesce.h: Likewise.
31822         * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
31823         * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
31824         * tree-ssa-loop-unswitch.cc: Likewise.
31825         * tree-ssa-math-opts.cc: Likewise.
31826         * tree-ssa-operands.cc (class operands_scanner): Likewise.
31827         * tree-ssa-pre.cc: Likewise.
31828         * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
31829         (debug_range_entry): Likewise.
31830         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
31831         * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
31832         * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
31833         (equal_mem_array_ref_p): Likewise.
31834         * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
31835         * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
31836         * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
31837         * tree-ssa-ter.h: Likewise.
31838         * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
31839         * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
31840         * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
31841         (write_ts_block_tree_pointers): Likewise.
31842         * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
31843         (streamer_read_tree_bitfields): Likewise.
31844         (streamer_write_integer_cst): Likewise.
31845         * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
31846         (vect_synth_mult_by_constant): Likewise.
31847         * tree-vect-stmts.cc (vectorizable_operation): Likewise.
31848         * tree-vectorizer.cc: Likewise.
31849         * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
31850         (vect_update_inits_of_drs): Likewise.
31851         (vect_get_mask_type_for_stmt): Likewise.
31852         (vect_rgroup_iv_might_wrap_p): Likewise.
31853         (cse_and_gimplify_to_preheader): Likewise.
31854         (vect_free_slp_tree): Likewise.
31855         (vect_pattern_recog): Likewise.
31856         (vect_stmt_dominates_stmt_p): Likewise.
31857         * tree.cc (initialize_tree_contains_struct): Likewise.
31858         (need_assembler_name_p): Likewise.
31859         (type_with_interoperable_signedness): Likewise.
31860         * tree.def (SWITCH_EXPR): Likewise.
31861         * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
31862         (poly_int_tree_p): Likewise.
31863         (inlined_function_outer_scope_p): Likewise.
31864         (tree_code_for_canonical_type_merging): Likewise.
31865         * value-prof.cc: Likewise.
31866         * value-prof.h (get_nth_most_common_value): Likewise.
31867         (find_func_by_profile_id): Likewise.
31868         * value-range.cc (vrp_operand_equal_p): Likewise.
31869         * value-range.h: Likewise.
31870         * var-tracking.cc: Likewise.
31871         * varasm.cc (default_function_section): Likewise.
31872         (function_section_1): Likewise.
31873         (assemble_variable): Likewise.
31874         (handle_vtv_comdat_section): Likewise.
31875         * vec.h (struct vec_prefix): Likewise.
31876         * vmsdbgout.cc (full_name): Likewise.
31877         * vtable-verify.cc: Likewise.
31878         * vtable-verify.h (struct vtv_graph_node): Likewise.
31879         * xcoffout.cc: Likewise.
31880         * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
31882 2022-01-17  Martin Liska  <mliska@suse.cz>
31884         * adjust-alignment.c: Moved to...
31885         * adjust-alignment.cc: ...here.
31886         * alias.c: Moved to...
31887         * alias.cc: ...here.
31888         * alloc-pool.c: Moved to...
31889         * alloc-pool.cc: ...here.
31890         * asan.c: Moved to...
31891         * asan.cc: ...here.
31892         * attribs.c: Moved to...
31893         * attribs.cc: ...here.
31894         * auto-inc-dec.c: Moved to...
31895         * auto-inc-dec.cc: ...here.
31896         * auto-profile.c: Moved to...
31897         * auto-profile.cc: ...here.
31898         * bb-reorder.c: Moved to...
31899         * bb-reorder.cc: ...here.
31900         * bitmap.c: Moved to...
31901         * bitmap.cc: ...here.
31902         * btfout.c: Moved to...
31903         * btfout.cc: ...here.
31904         * builtins.c: Moved to...
31905         * builtins.cc: ...here.
31906         * caller-save.c: Moved to...
31907         * caller-save.cc: ...here.
31908         * calls.c: Moved to...
31909         * calls.cc: ...here.
31910         * ccmp.c: Moved to...
31911         * ccmp.cc: ...here.
31912         * cfg.c: Moved to...
31913         * cfg.cc: ...here.
31914         * cfganal.c: Moved to...
31915         * cfganal.cc: ...here.
31916         * cfgbuild.c: Moved to...
31917         * cfgbuild.cc: ...here.
31918         * cfgcleanup.c: Moved to...
31919         * cfgcleanup.cc: ...here.
31920         * cfgexpand.c: Moved to...
31921         * cfgexpand.cc: ...here.
31922         * cfghooks.c: Moved to...
31923         * cfghooks.cc: ...here.
31924         * cfgloop.c: Moved to...
31925         * cfgloop.cc: ...here.
31926         * cfgloopanal.c: Moved to...
31927         * cfgloopanal.cc: ...here.
31928         * cfgloopmanip.c: Moved to...
31929         * cfgloopmanip.cc: ...here.
31930         * cfgrtl.c: Moved to...
31931         * cfgrtl.cc: ...here.
31932         * cgraph.c: Moved to...
31933         * cgraph.cc: ...here.
31934         * cgraphbuild.c: Moved to...
31935         * cgraphbuild.cc: ...here.
31936         * cgraphclones.c: Moved to...
31937         * cgraphclones.cc: ...here.
31938         * cgraphunit.c: Moved to...
31939         * cgraphunit.cc: ...here.
31940         * collect-utils.c: Moved to...
31941         * collect-utils.cc: ...here.
31942         * collect2-aix.c: Moved to...
31943         * collect2-aix.cc: ...here.
31944         * collect2.c: Moved to...
31945         * collect2.cc: ...here.
31946         * combine-stack-adj.c: Moved to...
31947         * combine-stack-adj.cc: ...here.
31948         * combine.c: Moved to...
31949         * combine.cc: ...here.
31950         * common/common-targhooks.c: Moved to...
31951         * common/common-targhooks.cc: ...here.
31952         * common/config/aarch64/aarch64-common.c: Moved to...
31953         * common/config/aarch64/aarch64-common.cc: ...here.
31954         * common/config/alpha/alpha-common.c: Moved to...
31955         * common/config/alpha/alpha-common.cc: ...here.
31956         * common/config/arc/arc-common.c: Moved to...
31957         * common/config/arc/arc-common.cc: ...here.
31958         * common/config/arm/arm-common.c: Moved to...
31959         * common/config/arm/arm-common.cc: ...here.
31960         * common/config/avr/avr-common.c: Moved to...
31961         * common/config/avr/avr-common.cc: ...here.
31962         * common/config/bfin/bfin-common.c: Moved to...
31963         * common/config/bfin/bfin-common.cc: ...here.
31964         * common/config/bpf/bpf-common.c: Moved to...
31965         * common/config/bpf/bpf-common.cc: ...here.
31966         * common/config/c6x/c6x-common.c: Moved to...
31967         * common/config/c6x/c6x-common.cc: ...here.
31968         * common/config/cr16/cr16-common.c: Moved to...
31969         * common/config/cr16/cr16-common.cc: ...here.
31970         * common/config/cris/cris-common.c: Moved to...
31971         * common/config/cris/cris-common.cc: ...here.
31972         * common/config/csky/csky-common.c: Moved to...
31973         * common/config/csky/csky-common.cc: ...here.
31974         * common/config/default-common.c: Moved to...
31975         * common/config/default-common.cc: ...here.
31976         * common/config/epiphany/epiphany-common.c: Moved to...
31977         * common/config/epiphany/epiphany-common.cc: ...here.
31978         * common/config/fr30/fr30-common.c: Moved to...
31979         * common/config/fr30/fr30-common.cc: ...here.
31980         * common/config/frv/frv-common.c: Moved to...
31981         * common/config/frv/frv-common.cc: ...here.
31982         * common/config/gcn/gcn-common.c: Moved to...
31983         * common/config/gcn/gcn-common.cc: ...here.
31984         * common/config/h8300/h8300-common.c: Moved to...
31985         * common/config/h8300/h8300-common.cc: ...here.
31986         * common/config/i386/i386-common.c: Moved to...
31987         * common/config/i386/i386-common.cc: ...here.
31988         * common/config/ia64/ia64-common.c: Moved to...
31989         * common/config/ia64/ia64-common.cc: ...here.
31990         * common/config/iq2000/iq2000-common.c: Moved to...
31991         * common/config/iq2000/iq2000-common.cc: ...here.
31992         * common/config/lm32/lm32-common.c: Moved to...
31993         * common/config/lm32/lm32-common.cc: ...here.
31994         * common/config/m32r/m32r-common.c: Moved to...
31995         * common/config/m32r/m32r-common.cc: ...here.
31996         * common/config/m68k/m68k-common.c: Moved to...
31997         * common/config/m68k/m68k-common.cc: ...here.
31998         * common/config/mcore/mcore-common.c: Moved to...
31999         * common/config/mcore/mcore-common.cc: ...here.
32000         * common/config/microblaze/microblaze-common.c: Moved to...
32001         * common/config/microblaze/microblaze-common.cc: ...here.
32002         * common/config/mips/mips-common.c: Moved to...
32003         * common/config/mips/mips-common.cc: ...here.
32004         * common/config/mmix/mmix-common.c: Moved to...
32005         * common/config/mmix/mmix-common.cc: ...here.
32006         * common/config/mn10300/mn10300-common.c: Moved to...
32007         * common/config/mn10300/mn10300-common.cc: ...here.
32008         * common/config/msp430/msp430-common.c: Moved to...
32009         * common/config/msp430/msp430-common.cc: ...here.
32010         * common/config/nds32/nds32-common.c: Moved to...
32011         * common/config/nds32/nds32-common.cc: ...here.
32012         * common/config/nios2/nios2-common.c: Moved to...
32013         * common/config/nios2/nios2-common.cc: ...here.
32014         * common/config/nvptx/nvptx-common.c: Moved to...
32015         * common/config/nvptx/nvptx-common.cc: ...here.
32016         * common/config/or1k/or1k-common.c: Moved to...
32017         * common/config/or1k/or1k-common.cc: ...here.
32018         * common/config/pa/pa-common.c: Moved to...
32019         * common/config/pa/pa-common.cc: ...here.
32020         * common/config/pdp11/pdp11-common.c: Moved to...
32021         * common/config/pdp11/pdp11-common.cc: ...here.
32022         * common/config/pru/pru-common.c: Moved to...
32023         * common/config/pru/pru-common.cc: ...here.
32024         * common/config/riscv/riscv-common.c: Moved to...
32025         * common/config/riscv/riscv-common.cc: ...here.
32026         * common/config/rs6000/rs6000-common.c: Moved to...
32027         * common/config/rs6000/rs6000-common.cc: ...here.
32028         * common/config/rx/rx-common.c: Moved to...
32029         * common/config/rx/rx-common.cc: ...here.
32030         * common/config/s390/s390-common.c: Moved to...
32031         * common/config/s390/s390-common.cc: ...here.
32032         * common/config/sh/sh-common.c: Moved to...
32033         * common/config/sh/sh-common.cc: ...here.
32034         * common/config/sparc/sparc-common.c: Moved to...
32035         * common/config/sparc/sparc-common.cc: ...here.
32036         * common/config/tilegx/tilegx-common.c: Moved to...
32037         * common/config/tilegx/tilegx-common.cc: ...here.
32038         * common/config/tilepro/tilepro-common.c: Moved to...
32039         * common/config/tilepro/tilepro-common.cc: ...here.
32040         * common/config/v850/v850-common.c: Moved to...
32041         * common/config/v850/v850-common.cc: ...here.
32042         * common/config/vax/vax-common.c: Moved to...
32043         * common/config/vax/vax-common.cc: ...here.
32044         * common/config/visium/visium-common.c: Moved to...
32045         * common/config/visium/visium-common.cc: ...here.
32046         * common/config/xstormy16/xstormy16-common.c: Moved to...
32047         * common/config/xstormy16/xstormy16-common.cc: ...here.
32048         * common/config/xtensa/xtensa-common.c: Moved to...
32049         * common/config/xtensa/xtensa-common.cc: ...here.
32050         * compare-elim.c: Moved to...
32051         * compare-elim.cc: ...here.
32052         * config/aarch64/aarch64-bti-insert.c: Moved to...
32053         * config/aarch64/aarch64-bti-insert.cc: ...here.
32054         * config/aarch64/aarch64-builtins.c: Moved to...
32055         * config/aarch64/aarch64-builtins.cc: ...here.
32056         * config/aarch64/aarch64-c.c: Moved to...
32057         * config/aarch64/aarch64-c.cc: ...here.
32058         * config/aarch64/aarch64-d.c: Moved to...
32059         * config/aarch64/aarch64-d.cc: ...here.
32060         * config/aarch64/aarch64.c: Moved to...
32061         * config/aarch64/aarch64.cc: ...here.
32062         * config/aarch64/cortex-a57-fma-steering.c: Moved to...
32063         * config/aarch64/cortex-a57-fma-steering.cc: ...here.
32064         * config/aarch64/driver-aarch64.c: Moved to...
32065         * config/aarch64/driver-aarch64.cc: ...here.
32066         * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
32067         * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
32068         * config/aarch64/host-aarch64-darwin.c: Moved to...
32069         * config/aarch64/host-aarch64-darwin.cc: ...here.
32070         * config/alpha/alpha.c: Moved to...
32071         * config/alpha/alpha.cc: ...here.
32072         * config/alpha/driver-alpha.c: Moved to...
32073         * config/alpha/driver-alpha.cc: ...here.
32074         * config/arc/arc-c.c: Moved to...
32075         * config/arc/arc-c.cc: ...here.
32076         * config/arc/arc.c: Moved to...
32077         * config/arc/arc.cc: ...here.
32078         * config/arc/driver-arc.c: Moved to...
32079         * config/arc/driver-arc.cc: ...here.
32080         * config/arm/aarch-common.c: Moved to...
32081         * config/arm/aarch-common.cc: ...here.
32082         * config/arm/arm-builtins.c: Moved to...
32083         * config/arm/arm-builtins.cc: ...here.
32084         * config/arm/arm-c.c: Moved to...
32085         * config/arm/arm-c.cc: ...here.
32086         * config/arm/arm-d.c: Moved to...
32087         * config/arm/arm-d.cc: ...here.
32088         * config/arm/arm.c: Moved to...
32089         * config/arm/arm.cc: ...here.
32090         * config/arm/driver-arm.c: Moved to...
32091         * config/arm/driver-arm.cc: ...here.
32092         * config/avr/avr-c.c: Moved to...
32093         * config/avr/avr-c.cc: ...here.
32094         * config/avr/avr-devices.c: Moved to...
32095         * config/avr/avr-devices.cc: ...here.
32096         * config/avr/avr-log.c: Moved to...
32097         * config/avr/avr-log.cc: ...here.
32098         * config/avr/avr.c: Moved to...
32099         * config/avr/avr.cc: ...here.
32100         * config/avr/driver-avr.c: Moved to...
32101         * config/avr/driver-avr.cc: ...here.
32102         * config/avr/gen-avr-mmcu-specs.c: Moved to...
32103         * config/avr/gen-avr-mmcu-specs.cc: ...here.
32104         * config/avr/gen-avr-mmcu-texi.c: Moved to...
32105         * config/avr/gen-avr-mmcu-texi.cc: ...here.
32106         * config/bfin/bfin.c: Moved to...
32107         * config/bfin/bfin.cc: ...here.
32108         * config/bpf/bpf.c: Moved to...
32109         * config/bpf/bpf.cc: ...here.
32110         * config/bpf/coreout.c: Moved to...
32111         * config/bpf/coreout.cc: ...here.
32112         * config/c6x/c6x.c: Moved to...
32113         * config/c6x/c6x.cc: ...here.
32114         * config/cr16/cr16.c: Moved to...
32115         * config/cr16/cr16.cc: ...here.
32116         * config/cris/cris.c: Moved to...
32117         * config/cris/cris.cc: ...here.
32118         * config/csky/csky.c: Moved to...
32119         * config/csky/csky.cc: ...here.
32120         * config/darwin-c.c: Moved to...
32121         * config/darwin-c.cc: ...here.
32122         * config/darwin-d.c: Moved to...
32123         * config/darwin-d.cc: ...here.
32124         * config/darwin-driver.c: Moved to...
32125         * config/darwin-driver.cc: ...here.
32126         * config/darwin-f.c: Moved to...
32127         * config/darwin-f.cc: ...here.
32128         * config/darwin.c: Moved to...
32129         * config/darwin.cc: ...here.
32130         * config/default-c.c: Moved to...
32131         * config/default-c.cc: ...here.
32132         * config/default-d.c: Moved to...
32133         * config/default-d.cc: ...here.
32134         * config/dragonfly-d.c: Moved to...
32135         * config/dragonfly-d.cc: ...here.
32136         * config/epiphany/epiphany.c: Moved to...
32137         * config/epiphany/epiphany.cc: ...here.
32138         * config/epiphany/mode-switch-use.c: Moved to...
32139         * config/epiphany/mode-switch-use.cc: ...here.
32140         * config/epiphany/resolve-sw-modes.c: Moved to...
32141         * config/epiphany/resolve-sw-modes.cc: ...here.
32142         * config/fr30/fr30.c: Moved to...
32143         * config/fr30/fr30.cc: ...here.
32144         * config/freebsd-d.c: Moved to...
32145         * config/freebsd-d.cc: ...here.
32146         * config/frv/frv.c: Moved to...
32147         * config/frv/frv.cc: ...here.
32148         * config/ft32/ft32.c: Moved to...
32149         * config/ft32/ft32.cc: ...here.
32150         * config/gcn/driver-gcn.c: Moved to...
32151         * config/gcn/driver-gcn.cc: ...here.
32152         * config/gcn/gcn-run.c: Moved to...
32153         * config/gcn/gcn-run.cc: ...here.
32154         * config/gcn/gcn-tree.c: Moved to...
32155         * config/gcn/gcn-tree.cc: ...here.
32156         * config/gcn/gcn.c: Moved to...
32157         * config/gcn/gcn.cc: ...here.
32158         * config/gcn/mkoffload.c: Moved to...
32159         * config/gcn/mkoffload.cc: ...here.
32160         * config/glibc-c.c: Moved to...
32161         * config/glibc-c.cc: ...here.
32162         * config/glibc-d.c: Moved to...
32163         * config/glibc-d.cc: ...here.
32164         * config/h8300/h8300.c: Moved to...
32165         * config/h8300/h8300.cc: ...here.
32166         * config/host-darwin.c: Moved to...
32167         * config/host-darwin.cc: ...here.
32168         * config/host-hpux.c: Moved to...
32169         * config/host-hpux.cc: ...here.
32170         * config/host-linux.c: Moved to...
32171         * config/host-linux.cc: ...here.
32172         * config/host-netbsd.c: Moved to...
32173         * config/host-netbsd.cc: ...here.
32174         * config/host-openbsd.c: Moved to...
32175         * config/host-openbsd.cc: ...here.
32176         * config/host-solaris.c: Moved to...
32177         * config/host-solaris.cc: ...here.
32178         * config/i386/djgpp.c: Moved to...
32179         * config/i386/djgpp.cc: ...here.
32180         * config/i386/driver-i386.c: Moved to...
32181         * config/i386/driver-i386.cc: ...here.
32182         * config/i386/driver-mingw32.c: Moved to...
32183         * config/i386/driver-mingw32.cc: ...here.
32184         * config/i386/gnu-property.c: Moved to...
32185         * config/i386/gnu-property.cc: ...here.
32186         * config/i386/host-cygwin.c: Moved to...
32187         * config/i386/host-cygwin.cc: ...here.
32188         * config/i386/host-i386-darwin.c: Moved to...
32189         * config/i386/host-i386-darwin.cc: ...here.
32190         * config/i386/host-mingw32.c: Moved to...
32191         * config/i386/host-mingw32.cc: ...here.
32192         * config/i386/i386-builtins.c: Moved to...
32193         * config/i386/i386-builtins.cc: ...here.
32194         * config/i386/i386-c.c: Moved to...
32195         * config/i386/i386-c.cc: ...here.
32196         * config/i386/i386-d.c: Moved to...
32197         * config/i386/i386-d.cc: ...here.
32198         * config/i386/i386-expand.c: Moved to...
32199         * config/i386/i386-expand.cc: ...here.
32200         * config/i386/i386-features.c: Moved to...
32201         * config/i386/i386-features.cc: ...here.
32202         * config/i386/i386-options.c: Moved to...
32203         * config/i386/i386-options.cc: ...here.
32204         * config/i386/i386.c: Moved to...
32205         * config/i386/i386.cc: ...here.
32206         * config/i386/intelmic-mkoffload.c: Moved to...
32207         * config/i386/intelmic-mkoffload.cc: ...here.
32208         * config/i386/msformat-c.c: Moved to...
32209         * config/i386/msformat-c.cc: ...here.
32210         * config/i386/winnt-cxx.c: Moved to...
32211         * config/i386/winnt-cxx.cc: ...here.
32212         * config/i386/winnt-d.c: Moved to...
32213         * config/i386/winnt-d.cc: ...here.
32214         * config/i386/winnt-stubs.c: Moved to...
32215         * config/i386/winnt-stubs.cc: ...here.
32216         * config/i386/winnt.c: Moved to...
32217         * config/i386/winnt.cc: ...here.
32218         * config/i386/x86-tune-sched-atom.c: Moved to...
32219         * config/i386/x86-tune-sched-atom.cc: ...here.
32220         * config/i386/x86-tune-sched-bd.c: Moved to...
32221         * config/i386/x86-tune-sched-bd.cc: ...here.
32222         * config/i386/x86-tune-sched-core.c: Moved to...
32223         * config/i386/x86-tune-sched-core.cc: ...here.
32224         * config/i386/x86-tune-sched.c: Moved to...
32225         * config/i386/x86-tune-sched.cc: ...here.
32226         * config/ia64/ia64-c.c: Moved to...
32227         * config/ia64/ia64-c.cc: ...here.
32228         * config/ia64/ia64.c: Moved to...
32229         * config/ia64/ia64.cc: ...here.
32230         * config/iq2000/iq2000.c: Moved to...
32231         * config/iq2000/iq2000.cc: ...here.
32232         * config/linux.c: Moved to...
32233         * config/linux.cc: ...here.
32234         * config/lm32/lm32.c: Moved to...
32235         * config/lm32/lm32.cc: ...here.
32236         * config/m32c/m32c-pragma.c: Moved to...
32237         * config/m32c/m32c-pragma.cc: ...here.
32238         * config/m32c/m32c.c: Moved to...
32239         * config/m32c/m32c.cc: ...here.
32240         * config/m32r/m32r.c: Moved to...
32241         * config/m32r/m32r.cc: ...here.
32242         * config/m68k/m68k.c: Moved to...
32243         * config/m68k/m68k.cc: ...here.
32244         * config/mcore/mcore.c: Moved to...
32245         * config/mcore/mcore.cc: ...here.
32246         * config/microblaze/microblaze-c.c: Moved to...
32247         * config/microblaze/microblaze-c.cc: ...here.
32248         * config/microblaze/microblaze.c: Moved to...
32249         * config/microblaze/microblaze.cc: ...here.
32250         * config/mips/driver-native.c: Moved to...
32251         * config/mips/driver-native.cc: ...here.
32252         * config/mips/frame-header-opt.c: Moved to...
32253         * config/mips/frame-header-opt.cc: ...here.
32254         * config/mips/mips-d.c: Moved to...
32255         * config/mips/mips-d.cc: ...here.
32256         * config/mips/mips.c: Moved to...
32257         * config/mips/mips.cc: ...here.
32258         * config/mmix/mmix.c: Moved to...
32259         * config/mmix/mmix.cc: ...here.
32260         * config/mn10300/mn10300.c: Moved to...
32261         * config/mn10300/mn10300.cc: ...here.
32262         * config/moxie/moxie.c: Moved to...
32263         * config/moxie/moxie.cc: ...here.
32264         * config/msp430/driver-msp430.c: Moved to...
32265         * config/msp430/driver-msp430.cc: ...here.
32266         * config/msp430/msp430-c.c: Moved to...
32267         * config/msp430/msp430-c.cc: ...here.
32268         * config/msp430/msp430-devices.c: Moved to...
32269         * config/msp430/msp430-devices.cc: ...here.
32270         * config/msp430/msp430.c: Moved to...
32271         * config/msp430/msp430.cc: ...here.
32272         * config/nds32/nds32-cost.c: Moved to...
32273         * config/nds32/nds32-cost.cc: ...here.
32274         * config/nds32/nds32-fp-as-gp.c: Moved to...
32275         * config/nds32/nds32-fp-as-gp.cc: ...here.
32276         * config/nds32/nds32-intrinsic.c: Moved to...
32277         * config/nds32/nds32-intrinsic.cc: ...here.
32278         * config/nds32/nds32-isr.c: Moved to...
32279         * config/nds32/nds32-isr.cc: ...here.
32280         * config/nds32/nds32-md-auxiliary.c: Moved to...
32281         * config/nds32/nds32-md-auxiliary.cc: ...here.
32282         * config/nds32/nds32-memory-manipulation.c: Moved to...
32283         * config/nds32/nds32-memory-manipulation.cc: ...here.
32284         * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
32285         * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
32286         * config/nds32/nds32-predicates.c: Moved to...
32287         * config/nds32/nds32-predicates.cc: ...here.
32288         * config/nds32/nds32-relax-opt.c: Moved to...
32289         * config/nds32/nds32-relax-opt.cc: ...here.
32290         * config/nds32/nds32-utils.c: Moved to...
32291         * config/nds32/nds32-utils.cc: ...here.
32292         * config/nds32/nds32.c: Moved to...
32293         * config/nds32/nds32.cc: ...here.
32294         * config/netbsd-d.c: Moved to...
32295         * config/netbsd-d.cc: ...here.
32296         * config/netbsd.c: Moved to...
32297         * config/netbsd.cc: ...here.
32298         * config/nios2/nios2.c: Moved to...
32299         * config/nios2/nios2.cc: ...here.
32300         * config/nvptx/mkoffload.c: Moved to...
32301         * config/nvptx/mkoffload.cc: ...here.
32302         * config/nvptx/nvptx-c.c: Moved to...
32303         * config/nvptx/nvptx-c.cc: ...here.
32304         * config/nvptx/nvptx.c: Moved to...
32305         * config/nvptx/nvptx.cc: ...here.
32306         * config/openbsd-d.c: Moved to...
32307         * config/openbsd-d.cc: ...here.
32308         * config/or1k/or1k.c: Moved to...
32309         * config/or1k/or1k.cc: ...here.
32310         * config/pa/pa-d.c: Moved to...
32311         * config/pa/pa-d.cc: ...here.
32312         * config/pa/pa.c: Moved to...
32313         * config/pa/pa.cc: ...here.
32314         * config/pdp11/pdp11.c: Moved to...
32315         * config/pdp11/pdp11.cc: ...here.
32316         * config/pru/pru-passes.c: Moved to...
32317         * config/pru/pru-passes.cc: ...here.
32318         * config/pru/pru-pragma.c: Moved to...
32319         * config/pru/pru-pragma.cc: ...here.
32320         * config/pru/pru.c: Moved to...
32321         * config/pru/pru.cc: ...here.
32322         * config/riscv/riscv-builtins.c: Moved to...
32323         * config/riscv/riscv-builtins.cc: ...here.
32324         * config/riscv/riscv-c.c: Moved to...
32325         * config/riscv/riscv-c.cc: ...here.
32326         * config/riscv/riscv-d.c: Moved to...
32327         * config/riscv/riscv-d.cc: ...here.
32328         * config/riscv/riscv-shorten-memrefs.c: Moved to...
32329         * config/riscv/riscv-shorten-memrefs.cc: ...here.
32330         * config/riscv/riscv-sr.c: Moved to...
32331         * config/riscv/riscv-sr.cc: ...here.
32332         * config/riscv/riscv.c: Moved to...
32333         * config/riscv/riscv.cc: ...here.
32334         * config/rl78/rl78-c.c: Moved to...
32335         * config/rl78/rl78-c.cc: ...here.
32336         * config/rl78/rl78.c: Moved to...
32337         * config/rl78/rl78.cc: ...here.
32338         * config/rs6000/driver-rs6000.c: Moved to...
32339         * config/rs6000/driver-rs6000.cc: ...here.
32340         * config/rs6000/host-darwin.c: Moved to...
32341         * config/rs6000/host-darwin.cc: ...here.
32342         * config/rs6000/host-ppc64-darwin.c: Moved to...
32343         * config/rs6000/host-ppc64-darwin.cc: ...here.
32344         * config/rs6000/rbtree.c: Moved to...
32345         * config/rs6000/rbtree.cc: ...here.
32346         * config/rs6000/rs6000-c.c: Moved to...
32347         * config/rs6000/rs6000-c.cc: ...here.
32348         * config/rs6000/rs6000-call.c: Moved to...
32349         * config/rs6000/rs6000-call.cc: ...here.
32350         * config/rs6000/rs6000-d.c: Moved to...
32351         * config/rs6000/rs6000-d.cc: ...here.
32352         * config/rs6000/rs6000-gen-builtins.c: Moved to...
32353         * config/rs6000/rs6000-gen-builtins.cc: ...here.
32354         * config/rs6000/rs6000-linux.c: Moved to...
32355         * config/rs6000/rs6000-linux.cc: ...here.
32356         * config/rs6000/rs6000-logue.c: Moved to...
32357         * config/rs6000/rs6000-logue.cc: ...here.
32358         * config/rs6000/rs6000-p8swap.c: Moved to...
32359         * config/rs6000/rs6000-p8swap.cc: ...here.
32360         * config/rs6000/rs6000-pcrel-opt.c: Moved to...
32361         * config/rs6000/rs6000-pcrel-opt.cc: ...here.
32362         * config/rs6000/rs6000-string.c: Moved to...
32363         * config/rs6000/rs6000-string.cc: ...here.
32364         * config/rs6000/rs6000.c: Moved to...
32365         * config/rs6000/rs6000.cc: ...here.
32366         * config/rx/rx.c: Moved to...
32367         * config/rx/rx.cc: ...here.
32368         * config/s390/driver-native.c: Moved to...
32369         * config/s390/driver-native.cc: ...here.
32370         * config/s390/s390-c.c: Moved to...
32371         * config/s390/s390-c.cc: ...here.
32372         * config/s390/s390-d.c: Moved to...
32373         * config/s390/s390-d.cc: ...here.
32374         * config/s390/s390.c: Moved to...
32375         * config/s390/s390.cc: ...here.
32376         * config/sh/divtab-sh4-300.c: Moved to...
32377         * config/sh/divtab-sh4-300.cc: ...here.
32378         * config/sh/divtab-sh4.c: Moved to...
32379         * config/sh/divtab-sh4.cc: ...here.
32380         * config/sh/divtab.c: Moved to...
32381         * config/sh/divtab.cc: ...here.
32382         * config/sh/sh-c.c: Moved to...
32383         * config/sh/sh-c.cc: ...here.
32384         * config/sh/sh.c: Moved to...
32385         * config/sh/sh.cc: ...here.
32386         * config/sol2-c.c: Moved to...
32387         * config/sol2-c.cc: ...here.
32388         * config/sol2-cxx.c: Moved to...
32389         * config/sol2-cxx.cc: ...here.
32390         * config/sol2-d.c: Moved to...
32391         * config/sol2-d.cc: ...here.
32392         * config/sol2-stubs.c: Moved to...
32393         * config/sol2-stubs.cc: ...here.
32394         * config/sol2.c: Moved to...
32395         * config/sol2.cc: ...here.
32396         * config/sparc/driver-sparc.c: Moved to...
32397         * config/sparc/driver-sparc.cc: ...here.
32398         * config/sparc/sparc-c.c: Moved to...
32399         * config/sparc/sparc-c.cc: ...here.
32400         * config/sparc/sparc-d.c: Moved to...
32401         * config/sparc/sparc-d.cc: ...here.
32402         * config/sparc/sparc.c: Moved to...
32403         * config/sparc/sparc.cc: ...here.
32404         * config/stormy16/stormy16.c: Moved to...
32405         * config/stormy16/stormy16.cc: ...here.
32406         * config/tilegx/mul-tables.c: Moved to...
32407         * config/tilegx/mul-tables.cc: ...here.
32408         * config/tilegx/tilegx-c.c: Moved to...
32409         * config/tilegx/tilegx-c.cc: ...here.
32410         * config/tilegx/tilegx.c: Moved to...
32411         * config/tilegx/tilegx.cc: ...here.
32412         * config/tilepro/mul-tables.c: Moved to...
32413         * config/tilepro/mul-tables.cc: ...here.
32414         * config/tilepro/tilepro-c.c: Moved to...
32415         * config/tilepro/tilepro-c.cc: ...here.
32416         * config/tilepro/tilepro.c: Moved to...
32417         * config/tilepro/tilepro.cc: ...here.
32418         * config/v850/v850-c.c: Moved to...
32419         * config/v850/v850-c.cc: ...here.
32420         * config/v850/v850.c: Moved to...
32421         * config/v850/v850.cc: ...here.
32422         * config/vax/vax.c: Moved to...
32423         * config/vax/vax.cc: ...here.
32424         * config/visium/visium.c: Moved to...
32425         * config/visium/visium.cc: ...here.
32426         * config/vms/vms-c.c: Moved to...
32427         * config/vms/vms-c.cc: ...here.
32428         * config/vms/vms-f.c: Moved to...
32429         * config/vms/vms-f.cc: ...here.
32430         * config/vms/vms.c: Moved to...
32431         * config/vms/vms.cc: ...here.
32432         * config/vxworks-c.c: Moved to...
32433         * config/vxworks-c.cc: ...here.
32434         * config/vxworks.c: Moved to...
32435         * config/vxworks.cc: ...here.
32436         * config/winnt-c.c: Moved to...
32437         * config/winnt-c.cc: ...here.
32438         * config/xtensa/xtensa.c: Moved to...
32439         * config/xtensa/xtensa.cc: ...here.
32440         * context.c: Moved to...
32441         * context.cc: ...here.
32442         * convert.c: Moved to...
32443         * convert.cc: ...here.
32444         * coverage.c: Moved to...
32445         * coverage.cc: ...here.
32446         * cppbuiltin.c: Moved to...
32447         * cppbuiltin.cc: ...here.
32448         * cppdefault.c: Moved to...
32449         * cppdefault.cc: ...here.
32450         * cprop.c: Moved to...
32451         * cprop.cc: ...here.
32452         * cse.c: Moved to...
32453         * cse.cc: ...here.
32454         * cselib.c: Moved to...
32455         * cselib.cc: ...here.
32456         * ctfc.c: Moved to...
32457         * ctfc.cc: ...here.
32458         * ctfout.c: Moved to...
32459         * ctfout.cc: ...here.
32460         * data-streamer-in.c: Moved to...
32461         * data-streamer-in.cc: ...here.
32462         * data-streamer-out.c: Moved to...
32463         * data-streamer-out.cc: ...here.
32464         * data-streamer.c: Moved to...
32465         * data-streamer.cc: ...here.
32466         * dbgcnt.c: Moved to...
32467         * dbgcnt.cc: ...here.
32468         * dbxout.c: Moved to...
32469         * dbxout.cc: ...here.
32470         * dce.c: Moved to...
32471         * dce.cc: ...here.
32472         * ddg.c: Moved to...
32473         * ddg.cc: ...here.
32474         * debug.c: Moved to...
32475         * debug.cc: ...here.
32476         * df-core.c: Moved to...
32477         * df-core.cc: ...here.
32478         * df-problems.c: Moved to...
32479         * df-problems.cc: ...here.
32480         * df-scan.c: Moved to...
32481         * df-scan.cc: ...here.
32482         * dfp.c: Moved to...
32483         * dfp.cc: ...here.
32484         * diagnostic-color.c: Moved to...
32485         * diagnostic-color.cc: ...here.
32486         * diagnostic-show-locus.c: Moved to...
32487         * diagnostic-show-locus.cc: ...here.
32488         * diagnostic-spec.c: Moved to...
32489         * diagnostic-spec.cc: ...here.
32490         * diagnostic.c: Moved to...
32491         * diagnostic.cc: ...here.
32492         * dojump.c: Moved to...
32493         * dojump.cc: ...here.
32494         * dominance.c: Moved to...
32495         * dominance.cc: ...here.
32496         * domwalk.c: Moved to...
32497         * domwalk.cc: ...here.
32498         * double-int.c: Moved to...
32499         * double-int.cc: ...here.
32500         * dse.c: Moved to...
32501         * dse.cc: ...here.
32502         * dumpfile.c: Moved to...
32503         * dumpfile.cc: ...here.
32504         * dwarf2asm.c: Moved to...
32505         * dwarf2asm.cc: ...here.
32506         * dwarf2cfi.c: Moved to...
32507         * dwarf2cfi.cc: ...here.
32508         * dwarf2ctf.c: Moved to...
32509         * dwarf2ctf.cc: ...here.
32510         * dwarf2out.c: Moved to...
32511         * dwarf2out.cc: ...here.
32512         * early-remat.c: Moved to...
32513         * early-remat.cc: ...here.
32514         * edit-context.c: Moved to...
32515         * edit-context.cc: ...here.
32516         * emit-rtl.c: Moved to...
32517         * emit-rtl.cc: ...here.
32518         * errors.c: Moved to...
32519         * errors.cc: ...here.
32520         * et-forest.c: Moved to...
32521         * et-forest.cc: ...here.
32522         * except.c: Moved to...
32523         * except.cc: ...here.
32524         * explow.c: Moved to...
32525         * explow.cc: ...here.
32526         * expmed.c: Moved to...
32527         * expmed.cc: ...here.
32528         * expr.c: Moved to...
32529         * expr.cc: ...here.
32530         * fibonacci_heap.c: Moved to...
32531         * fibonacci_heap.cc: ...here.
32532         * file-find.c: Moved to...
32533         * file-find.cc: ...here.
32534         * file-prefix-map.c: Moved to...
32535         * file-prefix-map.cc: ...here.
32536         * final.c: Moved to...
32537         * final.cc: ...here.
32538         * fixed-value.c: Moved to...
32539         * fixed-value.cc: ...here.
32540         * fold-const-call.c: Moved to...
32541         * fold-const-call.cc: ...here.
32542         * fold-const.c: Moved to...
32543         * fold-const.cc: ...here.
32544         * fp-test.c: Moved to...
32545         * fp-test.cc: ...here.
32546         * function-tests.c: Moved to...
32547         * function-tests.cc: ...here.
32548         * function.c: Moved to...
32549         * function.cc: ...here.
32550         * fwprop.c: Moved to...
32551         * fwprop.cc: ...here.
32552         * gcc-ar.c: Moved to...
32553         * gcc-ar.cc: ...here.
32554         * gcc-main.c: Moved to...
32555         * gcc-main.cc: ...here.
32556         * gcc-rich-location.c: Moved to...
32557         * gcc-rich-location.cc: ...here.
32558         * gcc.c: Moved to...
32559         * gcc.cc: ...here.
32560         * gcov-dump.c: Moved to...
32561         * gcov-dump.cc: ...here.
32562         * gcov-io.c: Moved to...
32563         * gcov-io.cc: ...here.
32564         * gcov-tool.c: Moved to...
32565         * gcov-tool.cc: ...here.
32566         * gcov.c: Moved to...
32567         * gcov.cc: ...here.
32568         * gcse-common.c: Moved to...
32569         * gcse-common.cc: ...here.
32570         * gcse.c: Moved to...
32571         * gcse.cc: ...here.
32572         * genattr-common.c: Moved to...
32573         * genattr-common.cc: ...here.
32574         * genattr.c: Moved to...
32575         * genattr.cc: ...here.
32576         * genattrtab.c: Moved to...
32577         * genattrtab.cc: ...here.
32578         * genautomata.c: Moved to...
32579         * genautomata.cc: ...here.
32580         * gencfn-macros.c: Moved to...
32581         * gencfn-macros.cc: ...here.
32582         * gencheck.c: Moved to...
32583         * gencheck.cc: ...here.
32584         * genchecksum.c: Moved to...
32585         * genchecksum.cc: ...here.
32586         * gencodes.c: Moved to...
32587         * gencodes.cc: ...here.
32588         * genconditions.c: Moved to...
32589         * genconditions.cc: ...here.
32590         * genconfig.c: Moved to...
32591         * genconfig.cc: ...here.
32592         * genconstants.c: Moved to...
32593         * genconstants.cc: ...here.
32594         * genemit.c: Moved to...
32595         * genemit.cc: ...here.
32596         * genenums.c: Moved to...
32597         * genenums.cc: ...here.
32598         * generic-match-head.c: Moved to...
32599         * generic-match-head.cc: ...here.
32600         * genextract.c: Moved to...
32601         * genextract.cc: ...here.
32602         * genflags.c: Moved to...
32603         * genflags.cc: ...here.
32604         * gengenrtl.c: Moved to...
32605         * gengenrtl.cc: ...here.
32606         * gengtype-parse.c: Moved to...
32607         * gengtype-parse.cc: ...here.
32608         * gengtype-state.c: Moved to...
32609         * gengtype-state.cc: ...here.
32610         * gengtype.c: Moved to...
32611         * gengtype.cc: ...here.
32612         * genhooks.c: Moved to...
32613         * genhooks.cc: ...here.
32614         * genmatch.c: Moved to...
32615         * genmatch.cc: ...here.
32616         * genmddeps.c: Moved to...
32617         * genmddeps.cc: ...here.
32618         * genmddump.c: Moved to...
32619         * genmddump.cc: ...here.
32620         * genmodes.c: Moved to...
32621         * genmodes.cc: ...here.
32622         * genopinit.c: Moved to...
32623         * genopinit.cc: ...here.
32624         * genoutput.c: Moved to...
32625         * genoutput.cc: ...here.
32626         * genpeep.c: Moved to...
32627         * genpeep.cc: ...here.
32628         * genpreds.c: Moved to...
32629         * genpreds.cc: ...here.
32630         * genrecog.c: Moved to...
32631         * genrecog.cc: ...here.
32632         * gensupport.c: Moved to...
32633         * gensupport.cc: ...here.
32634         * gentarget-def.c: Moved to...
32635         * gentarget-def.cc: ...here.
32636         * genversion.c: Moved to...
32637         * genversion.cc: ...here.
32638         * ggc-common.c: Moved to...
32639         * ggc-common.cc: ...here.
32640         * ggc-none.c: Moved to...
32641         * ggc-none.cc: ...here.
32642         * ggc-page.c: Moved to...
32643         * ggc-page.cc: ...here.
32644         * ggc-tests.c: Moved to...
32645         * ggc-tests.cc: ...here.
32646         * gimple-builder.c: Moved to...
32647         * gimple-builder.cc: ...here.
32648         * gimple-expr.c: Moved to...
32649         * gimple-expr.cc: ...here.
32650         * gimple-fold.c: Moved to...
32651         * gimple-fold.cc: ...here.
32652         * gimple-iterator.c: Moved to...
32653         * gimple-iterator.cc: ...here.
32654         * gimple-laddress.c: Moved to...
32655         * gimple-laddress.cc: ...here.
32656         * gimple-loop-jam.c: Moved to...
32657         * gimple-loop-jam.cc: ...here.
32658         * gimple-low.c: Moved to...
32659         * gimple-low.cc: ...here.
32660         * gimple-match-head.c: Moved to...
32661         * gimple-match-head.cc: ...here.
32662         * gimple-pretty-print.c: Moved to...
32663         * gimple-pretty-print.cc: ...here.
32664         * gimple-ssa-backprop.c: Moved to...
32665         * gimple-ssa-backprop.cc: ...here.
32666         * gimple-ssa-evrp-analyze.c: Moved to...
32667         * gimple-ssa-evrp-analyze.cc: ...here.
32668         * gimple-ssa-evrp.c: Moved to...
32669         * gimple-ssa-evrp.cc: ...here.
32670         * gimple-ssa-isolate-paths.c: Moved to...
32671         * gimple-ssa-isolate-paths.cc: ...here.
32672         * gimple-ssa-nonnull-compare.c: Moved to...
32673         * gimple-ssa-nonnull-compare.cc: ...here.
32674         * gimple-ssa-split-paths.c: Moved to...
32675         * gimple-ssa-split-paths.cc: ...here.
32676         * gimple-ssa-sprintf.c: Moved to...
32677         * gimple-ssa-sprintf.cc: ...here.
32678         * gimple-ssa-store-merging.c: Moved to...
32679         * gimple-ssa-store-merging.cc: ...here.
32680         * gimple-ssa-strength-reduction.c: Moved to...
32681         * gimple-ssa-strength-reduction.cc: ...here.
32682         * gimple-ssa-warn-alloca.c: Moved to...
32683         * gimple-ssa-warn-alloca.cc: ...here.
32684         * gimple-ssa-warn-restrict.c: Moved to...
32685         * gimple-ssa-warn-restrict.cc: ...here.
32686         * gimple-streamer-in.c: Moved to...
32687         * gimple-streamer-in.cc: ...here.
32688         * gimple-streamer-out.c: Moved to...
32689         * gimple-streamer-out.cc: ...here.
32690         * gimple-walk.c: Moved to...
32691         * gimple-walk.cc: ...here.
32692         * gimple-warn-recursion.c: Moved to...
32693         * gimple-warn-recursion.cc: ...here.
32694         * gimple.c: Moved to...
32695         * gimple.cc: ...here.
32696         * gimplify-me.c: Moved to...
32697         * gimplify-me.cc: ...here.
32698         * gimplify.c: Moved to...
32699         * gimplify.cc: ...here.
32700         * godump.c: Moved to...
32701         * godump.cc: ...here.
32702         * graph.c: Moved to...
32703         * graph.cc: ...here.
32704         * graphds.c: Moved to...
32705         * graphds.cc: ...here.
32706         * graphite-dependences.c: Moved to...
32707         * graphite-dependences.cc: ...here.
32708         * graphite-isl-ast-to-gimple.c: Moved to...
32709         * graphite-isl-ast-to-gimple.cc: ...here.
32710         * graphite-optimize-isl.c: Moved to...
32711         * graphite-optimize-isl.cc: ...here.
32712         * graphite-poly.c: Moved to...
32713         * graphite-poly.cc: ...here.
32714         * graphite-scop-detection.c: Moved to...
32715         * graphite-scop-detection.cc: ...here.
32716         * graphite-sese-to-poly.c: Moved to...
32717         * graphite-sese-to-poly.cc: ...here.
32718         * graphite.c: Moved to...
32719         * graphite.cc: ...here.
32720         * haifa-sched.c: Moved to...
32721         * haifa-sched.cc: ...here.
32722         * hash-map-tests.c: Moved to...
32723         * hash-map-tests.cc: ...here.
32724         * hash-set-tests.c: Moved to...
32725         * hash-set-tests.cc: ...here.
32726         * hash-table.c: Moved to...
32727         * hash-table.cc: ...here.
32728         * hooks.c: Moved to...
32729         * hooks.cc: ...here.
32730         * host-default.c: Moved to...
32731         * host-default.cc: ...here.
32732         * hw-doloop.c: Moved to...
32733         * hw-doloop.cc: ...here.
32734         * hwint.c: Moved to...
32735         * hwint.cc: ...here.
32736         * ifcvt.c: Moved to...
32737         * ifcvt.cc: ...here.
32738         * inchash.c: Moved to...
32739         * inchash.cc: ...here.
32740         * incpath.c: Moved to...
32741         * incpath.cc: ...here.
32742         * init-regs.c: Moved to...
32743         * init-regs.cc: ...here.
32744         * input.c: Moved to...
32745         * input.cc: ...here.
32746         * internal-fn.c: Moved to...
32747         * internal-fn.cc: ...here.
32748         * intl.c: Moved to...
32749         * intl.cc: ...here.
32750         * ipa-comdats.c: Moved to...
32751         * ipa-comdats.cc: ...here.
32752         * ipa-cp.c: Moved to...
32753         * ipa-cp.cc: ...here.
32754         * ipa-devirt.c: Moved to...
32755         * ipa-devirt.cc: ...here.
32756         * ipa-fnsummary.c: Moved to...
32757         * ipa-fnsummary.cc: ...here.
32758         * ipa-icf-gimple.c: Moved to...
32759         * ipa-icf-gimple.cc: ...here.
32760         * ipa-icf.c: Moved to...
32761         * ipa-icf.cc: ...here.
32762         * ipa-inline-analysis.c: Moved to...
32763         * ipa-inline-analysis.cc: ...here.
32764         * ipa-inline-transform.c: Moved to...
32765         * ipa-inline-transform.cc: ...here.
32766         * ipa-inline.c: Moved to...
32767         * ipa-inline.cc: ...here.
32768         * ipa-modref-tree.c: Moved to...
32769         * ipa-modref-tree.cc: ...here.
32770         * ipa-modref.c: Moved to...
32771         * ipa-modref.cc: ...here.
32772         * ipa-param-manipulation.c: Moved to...
32773         * ipa-param-manipulation.cc: ...here.
32774         * ipa-polymorphic-call.c: Moved to...
32775         * ipa-polymorphic-call.cc: ...here.
32776         * ipa-predicate.c: Moved to...
32777         * ipa-predicate.cc: ...here.
32778         * ipa-profile.c: Moved to...
32779         * ipa-profile.cc: ...here.
32780         * ipa-prop.c: Moved to...
32781         * ipa-prop.cc: ...here.
32782         * ipa-pure-const.c: Moved to...
32783         * ipa-pure-const.cc: ...here.
32784         * ipa-ref.c: Moved to...
32785         * ipa-ref.cc: ...here.
32786         * ipa-reference.c: Moved to...
32787         * ipa-reference.cc: ...here.
32788         * ipa-split.c: Moved to...
32789         * ipa-split.cc: ...here.
32790         * ipa-sra.c: Moved to...
32791         * ipa-sra.cc: ...here.
32792         * ipa-utils.c: Moved to...
32793         * ipa-utils.cc: ...here.
32794         * ipa-visibility.c: Moved to...
32795         * ipa-visibility.cc: ...here.
32796         * ipa.c: Moved to...
32797         * ipa.cc: ...here.
32798         * ira-build.c: Moved to...
32799         * ira-build.cc: ...here.
32800         * ira-color.c: Moved to...
32801         * ira-color.cc: ...here.
32802         * ira-conflicts.c: Moved to...
32803         * ira-conflicts.cc: ...here.
32804         * ira-costs.c: Moved to...
32805         * ira-costs.cc: ...here.
32806         * ira-emit.c: Moved to...
32807         * ira-emit.cc: ...here.
32808         * ira-lives.c: Moved to...
32809         * ira-lives.cc: ...here.
32810         * ira.c: Moved to...
32811         * ira.cc: ...here.
32812         * jump.c: Moved to...
32813         * jump.cc: ...here.
32814         * langhooks.c: Moved to...
32815         * langhooks.cc: ...here.
32816         * lcm.c: Moved to...
32817         * lcm.cc: ...here.
32818         * lists.c: Moved to...
32819         * lists.cc: ...here.
32820         * loop-doloop.c: Moved to...
32821         * loop-doloop.cc: ...here.
32822         * loop-init.c: Moved to...
32823         * loop-init.cc: ...here.
32824         * loop-invariant.c: Moved to...
32825         * loop-invariant.cc: ...here.
32826         * loop-iv.c: Moved to...
32827         * loop-iv.cc: ...here.
32828         * loop-unroll.c: Moved to...
32829         * loop-unroll.cc: ...here.
32830         * lower-subreg.c: Moved to...
32831         * lower-subreg.cc: ...here.
32832         * lra-assigns.c: Moved to...
32833         * lra-assigns.cc: ...here.
32834         * lra-coalesce.c: Moved to...
32835         * lra-coalesce.cc: ...here.
32836         * lra-constraints.c: Moved to...
32837         * lra-constraints.cc: ...here.
32838         * lra-eliminations.c: Moved to...
32839         * lra-eliminations.cc: ...here.
32840         * lra-lives.c: Moved to...
32841         * lra-lives.cc: ...here.
32842         * lra-remat.c: Moved to...
32843         * lra-remat.cc: ...here.
32844         * lra-spills.c: Moved to...
32845         * lra-spills.cc: ...here.
32846         * lra.c: Moved to...
32847         * lra.cc: ...here.
32848         * lto-cgraph.c: Moved to...
32849         * lto-cgraph.cc: ...here.
32850         * lto-compress.c: Moved to...
32851         * lto-compress.cc: ...here.
32852         * lto-opts.c: Moved to...
32853         * lto-opts.cc: ...here.
32854         * lto-section-in.c: Moved to...
32855         * lto-section-in.cc: ...here.
32856         * lto-section-out.c: Moved to...
32857         * lto-section-out.cc: ...here.
32858         * lto-streamer-in.c: Moved to...
32859         * lto-streamer-in.cc: ...here.
32860         * lto-streamer-out.c: Moved to...
32861         * lto-streamer-out.cc: ...here.
32862         * lto-streamer.c: Moved to...
32863         * lto-streamer.cc: ...here.
32864         * lto-wrapper.c: Moved to...
32865         * lto-wrapper.cc: ...here.
32866         * main.c: Moved to...
32867         * main.cc: ...here.
32868         * mcf.c: Moved to...
32869         * mcf.cc: ...here.
32870         * mode-switching.c: Moved to...
32871         * mode-switching.cc: ...here.
32872         * modulo-sched.c: Moved to...
32873         * modulo-sched.cc: ...here.
32874         * multiple_target.c: Moved to...
32875         * multiple_target.cc: ...here.
32876         * omp-expand.c: Moved to...
32877         * omp-expand.cc: ...here.
32878         * omp-general.c: Moved to...
32879         * omp-general.cc: ...here.
32880         * omp-low.c: Moved to...
32881         * omp-low.cc: ...here.
32882         * omp-offload.c: Moved to...
32883         * omp-offload.cc: ...here.
32884         * omp-simd-clone.c: Moved to...
32885         * omp-simd-clone.cc: ...here.
32886         * opt-suggestions.c: Moved to...
32887         * opt-suggestions.cc: ...here.
32888         * optabs-libfuncs.c: Moved to...
32889         * optabs-libfuncs.cc: ...here.
32890         * optabs-query.c: Moved to...
32891         * optabs-query.cc: ...here.
32892         * optabs-tree.c: Moved to...
32893         * optabs-tree.cc: ...here.
32894         * optabs.c: Moved to...
32895         * optabs.cc: ...here.
32896         * opts-common.c: Moved to...
32897         * opts-common.cc: ...here.
32898         * opts-global.c: Moved to...
32899         * opts-global.cc: ...here.
32900         * opts.c: Moved to...
32901         * opts.cc: ...here.
32902         * passes.c: Moved to...
32903         * passes.cc: ...here.
32904         * plugin.c: Moved to...
32905         * plugin.cc: ...here.
32906         * postreload-gcse.c: Moved to...
32907         * postreload-gcse.cc: ...here.
32908         * postreload.c: Moved to...
32909         * postreload.cc: ...here.
32910         * predict.c: Moved to...
32911         * predict.cc: ...here.
32912         * prefix.c: Moved to...
32913         * prefix.cc: ...here.
32914         * pretty-print.c: Moved to...
32915         * pretty-print.cc: ...here.
32916         * print-rtl-function.c: Moved to...
32917         * print-rtl-function.cc: ...here.
32918         * print-rtl.c: Moved to...
32919         * print-rtl.cc: ...here.
32920         * print-tree.c: Moved to...
32921         * print-tree.cc: ...here.
32922         * profile-count.c: Moved to...
32923         * profile-count.cc: ...here.
32924         * profile.c: Moved to...
32925         * profile.cc: ...here.
32926         * read-md.c: Moved to...
32927         * read-md.cc: ...here.
32928         * read-rtl-function.c: Moved to...
32929         * read-rtl-function.cc: ...here.
32930         * read-rtl.c: Moved to...
32931         * read-rtl.cc: ...here.
32932         * real.c: Moved to...
32933         * real.cc: ...here.
32934         * realmpfr.c: Moved to...
32935         * realmpfr.cc: ...here.
32936         * recog.c: Moved to...
32937         * recog.cc: ...here.
32938         * ree.c: Moved to...
32939         * ree.cc: ...here.
32940         * reg-stack.c: Moved to...
32941         * reg-stack.cc: ...here.
32942         * regcprop.c: Moved to...
32943         * regcprop.cc: ...here.
32944         * reginfo.c: Moved to...
32945         * reginfo.cc: ...here.
32946         * regrename.c: Moved to...
32947         * regrename.cc: ...here.
32948         * regstat.c: Moved to...
32949         * regstat.cc: ...here.
32950         * reload.c: Moved to...
32951         * reload.cc: ...here.
32952         * reload1.c: Moved to...
32953         * reload1.cc: ...here.
32954         * reorg.c: Moved to...
32955         * reorg.cc: ...here.
32956         * resource.c: Moved to...
32957         * resource.cc: ...here.
32958         * rtl-error.c: Moved to...
32959         * rtl-error.cc: ...here.
32960         * rtl-tests.c: Moved to...
32961         * rtl-tests.cc: ...here.
32962         * rtl.c: Moved to...
32963         * rtl.cc: ...here.
32964         * rtlanal.c: Moved to...
32965         * rtlanal.cc: ...here.
32966         * rtlhash.c: Moved to...
32967         * rtlhash.cc: ...here.
32968         * rtlhooks.c: Moved to...
32969         * rtlhooks.cc: ...here.
32970         * rtx-vector-builder.c: Moved to...
32971         * rtx-vector-builder.cc: ...here.
32972         * run-rtl-passes.c: Moved to...
32973         * run-rtl-passes.cc: ...here.
32974         * sancov.c: Moved to...
32975         * sancov.cc: ...here.
32976         * sanopt.c: Moved to...
32977         * sanopt.cc: ...here.
32978         * sbitmap.c: Moved to...
32979         * sbitmap.cc: ...here.
32980         * sched-deps.c: Moved to...
32981         * sched-deps.cc: ...here.
32982         * sched-ebb.c: Moved to...
32983         * sched-ebb.cc: ...here.
32984         * sched-rgn.c: Moved to...
32985         * sched-rgn.cc: ...here.
32986         * sel-sched-dump.c: Moved to...
32987         * sel-sched-dump.cc: ...here.
32988         * sel-sched-ir.c: Moved to...
32989         * sel-sched-ir.cc: ...here.
32990         * sel-sched.c: Moved to...
32991         * sel-sched.cc: ...here.
32992         * selftest-diagnostic.c: Moved to...
32993         * selftest-diagnostic.cc: ...here.
32994         * selftest-rtl.c: Moved to...
32995         * selftest-rtl.cc: ...here.
32996         * selftest-run-tests.c: Moved to...
32997         * selftest-run-tests.cc: ...here.
32998         * selftest.c: Moved to...
32999         * selftest.cc: ...here.
33000         * sese.c: Moved to...
33001         * sese.cc: ...here.
33002         * shrink-wrap.c: Moved to...
33003         * shrink-wrap.cc: ...here.
33004         * simplify-rtx.c: Moved to...
33005         * simplify-rtx.cc: ...here.
33006         * sparseset.c: Moved to...
33007         * sparseset.cc: ...here.
33008         * spellcheck-tree.c: Moved to...
33009         * spellcheck-tree.cc: ...here.
33010         * spellcheck.c: Moved to...
33011         * spellcheck.cc: ...here.
33012         * sreal.c: Moved to...
33013         * sreal.cc: ...here.
33014         * stack-ptr-mod.c: Moved to...
33015         * stack-ptr-mod.cc: ...here.
33016         * statistics.c: Moved to...
33017         * statistics.cc: ...here.
33018         * stmt.c: Moved to...
33019         * stmt.cc: ...here.
33020         * stor-layout.c: Moved to...
33021         * stor-layout.cc: ...here.
33022         * store-motion.c: Moved to...
33023         * store-motion.cc: ...here.
33024         * streamer-hooks.c: Moved to...
33025         * streamer-hooks.cc: ...here.
33026         * stringpool.c: Moved to...
33027         * stringpool.cc: ...here.
33028         * substring-locations.c: Moved to...
33029         * substring-locations.cc: ...here.
33030         * symtab.c: Moved to...
33031         * symtab.cc: ...here.
33032         * target-globals.c: Moved to...
33033         * target-globals.cc: ...here.
33034         * targhooks.c: Moved to...
33035         * targhooks.cc: ...here.
33036         * timevar.c: Moved to...
33037         * timevar.cc: ...here.
33038         * toplev.c: Moved to...
33039         * toplev.cc: ...here.
33040         * tracer.c: Moved to...
33041         * tracer.cc: ...here.
33042         * trans-mem.c: Moved to...
33043         * trans-mem.cc: ...here.
33044         * tree-affine.c: Moved to...
33045         * tree-affine.cc: ...here.
33046         * tree-call-cdce.c: Moved to...
33047         * tree-call-cdce.cc: ...here.
33048         * tree-cfg.c: Moved to...
33049         * tree-cfg.cc: ...here.
33050         * tree-cfgcleanup.c: Moved to...
33051         * tree-cfgcleanup.cc: ...here.
33052         * tree-chrec.c: Moved to...
33053         * tree-chrec.cc: ...here.
33054         * tree-complex.c: Moved to...
33055         * tree-complex.cc: ...here.
33056         * tree-data-ref.c: Moved to...
33057         * tree-data-ref.cc: ...here.
33058         * tree-dfa.c: Moved to...
33059         * tree-dfa.cc: ...here.
33060         * tree-diagnostic.c: Moved to...
33061         * tree-diagnostic.cc: ...here.
33062         * tree-dump.c: Moved to...
33063         * tree-dump.cc: ...here.
33064         * tree-eh.c: Moved to...
33065         * tree-eh.cc: ...here.
33066         * tree-emutls.c: Moved to...
33067         * tree-emutls.cc: ...here.
33068         * tree-if-conv.c: Moved to...
33069         * tree-if-conv.cc: ...here.
33070         * tree-inline.c: Moved to...
33071         * tree-inline.cc: ...here.
33072         * tree-into-ssa.c: Moved to...
33073         * tree-into-ssa.cc: ...here.
33074         * tree-iterator.c: Moved to...
33075         * tree-iterator.cc: ...here.
33076         * tree-loop-distribution.c: Moved to...
33077         * tree-loop-distribution.cc: ...here.
33078         * tree-nested.c: Moved to...
33079         * tree-nested.cc: ...here.
33080         * tree-nrv.c: Moved to...
33081         * tree-nrv.cc: ...here.
33082         * tree-object-size.c: Moved to...
33083         * tree-object-size.cc: ...here.
33084         * tree-outof-ssa.c: Moved to...
33085         * tree-outof-ssa.cc: ...here.
33086         * tree-parloops.c: Moved to...
33087         * tree-parloops.cc: ...here.
33088         * tree-phinodes.c: Moved to...
33089         * tree-phinodes.cc: ...here.
33090         * tree-predcom.c: Moved to...
33091         * tree-predcom.cc: ...here.
33092         * tree-pretty-print.c: Moved to...
33093         * tree-pretty-print.cc: ...here.
33094         * tree-profile.c: Moved to...
33095         * tree-profile.cc: ...here.
33096         * tree-scalar-evolution.c: Moved to...
33097         * tree-scalar-evolution.cc: ...here.
33098         * tree-sra.c: Moved to...
33099         * tree-sra.cc: ...here.
33100         * tree-ssa-address.c: Moved to...
33101         * tree-ssa-address.cc: ...here.
33102         * tree-ssa-alias.c: Moved to...
33103         * tree-ssa-alias.cc: ...here.
33104         * tree-ssa-ccp.c: Moved to...
33105         * tree-ssa-ccp.cc: ...here.
33106         * tree-ssa-coalesce.c: Moved to...
33107         * tree-ssa-coalesce.cc: ...here.
33108         * tree-ssa-copy.c: Moved to...
33109         * tree-ssa-copy.cc: ...here.
33110         * tree-ssa-dce.c: Moved to...
33111         * tree-ssa-dce.cc: ...here.
33112         * tree-ssa-dom.c: Moved to...
33113         * tree-ssa-dom.cc: ...here.
33114         * tree-ssa-dse.c: Moved to...
33115         * tree-ssa-dse.cc: ...here.
33116         * tree-ssa-forwprop.c: Moved to...
33117         * tree-ssa-forwprop.cc: ...here.
33118         * tree-ssa-ifcombine.c: Moved to...
33119         * tree-ssa-ifcombine.cc: ...here.
33120         * tree-ssa-live.c: Moved to...
33121         * tree-ssa-live.cc: ...here.
33122         * tree-ssa-loop-ch.c: Moved to...
33123         * tree-ssa-loop-ch.cc: ...here.
33124         * tree-ssa-loop-im.c: Moved to...
33125         * tree-ssa-loop-im.cc: ...here.
33126         * tree-ssa-loop-ivcanon.c: Moved to...
33127         * tree-ssa-loop-ivcanon.cc: ...here.
33128         * tree-ssa-loop-ivopts.c: Moved to...
33129         * tree-ssa-loop-ivopts.cc: ...here.
33130         * tree-ssa-loop-manip.c: Moved to...
33131         * tree-ssa-loop-manip.cc: ...here.
33132         * tree-ssa-loop-niter.c: Moved to...
33133         * tree-ssa-loop-niter.cc: ...here.
33134         * tree-ssa-loop-prefetch.c: Moved to...
33135         * tree-ssa-loop-prefetch.cc: ...here.
33136         * tree-ssa-loop-split.c: Moved to...
33137         * tree-ssa-loop-split.cc: ...here.
33138         * tree-ssa-loop-unswitch.c: Moved to...
33139         * tree-ssa-loop-unswitch.cc: ...here.
33140         * tree-ssa-loop.c: Moved to...
33141         * tree-ssa-loop.cc: ...here.
33142         * tree-ssa-math-opts.c: Moved to...
33143         * tree-ssa-math-opts.cc: ...here.
33144         * tree-ssa-operands.c: Moved to...
33145         * tree-ssa-operands.cc: ...here.
33146         * tree-ssa-phiopt.c: Moved to...
33147         * tree-ssa-phiopt.cc: ...here.
33148         * tree-ssa-phiprop.c: Moved to...
33149         * tree-ssa-phiprop.cc: ...here.
33150         * tree-ssa-pre.c: Moved to...
33151         * tree-ssa-pre.cc: ...here.
33152         * tree-ssa-propagate.c: Moved to...
33153         * tree-ssa-propagate.cc: ...here.
33154         * tree-ssa-reassoc.c: Moved to...
33155         * tree-ssa-reassoc.cc: ...here.
33156         * tree-ssa-sccvn.c: Moved to...
33157         * tree-ssa-sccvn.cc: ...here.
33158         * tree-ssa-scopedtables.c: Moved to...
33159         * tree-ssa-scopedtables.cc: ...here.
33160         * tree-ssa-sink.c: Moved to...
33161         * tree-ssa-sink.cc: ...here.
33162         * tree-ssa-strlen.c: Moved to...
33163         * tree-ssa-strlen.cc: ...here.
33164         * tree-ssa-structalias.c: Moved to...
33165         * tree-ssa-structalias.cc: ...here.
33166         * tree-ssa-tail-merge.c: Moved to...
33167         * tree-ssa-tail-merge.cc: ...here.
33168         * tree-ssa-ter.c: Moved to...
33169         * tree-ssa-ter.cc: ...here.
33170         * tree-ssa-threadbackward.c: Moved to...
33171         * tree-ssa-threadbackward.cc: ...here.
33172         * tree-ssa-threadedge.c: Moved to...
33173         * tree-ssa-threadedge.cc: ...here.
33174         * tree-ssa-threadupdate.c: Moved to...
33175         * tree-ssa-threadupdate.cc: ...here.
33176         * tree-ssa-uncprop.c: Moved to...
33177         * tree-ssa-uncprop.cc: ...here.
33178         * tree-ssa-uninit.c: Moved to...
33179         * tree-ssa-uninit.cc: ...here.
33180         * tree-ssa.c: Moved to...
33181         * tree-ssa.cc: ...here.
33182         * tree-ssanames.c: Moved to...
33183         * tree-ssanames.cc: ...here.
33184         * tree-stdarg.c: Moved to...
33185         * tree-stdarg.cc: ...here.
33186         * tree-streamer-in.c: Moved to...
33187         * tree-streamer-in.cc: ...here.
33188         * tree-streamer-out.c: Moved to...
33189         * tree-streamer-out.cc: ...here.
33190         * tree-streamer.c: Moved to...
33191         * tree-streamer.cc: ...here.
33192         * tree-switch-conversion.c: Moved to...
33193         * tree-switch-conversion.cc: ...here.
33194         * tree-tailcall.c: Moved to...
33195         * tree-tailcall.cc: ...here.
33196         * tree-vect-data-refs.c: Moved to...
33197         * tree-vect-data-refs.cc: ...here.
33198         * tree-vect-generic.c: Moved to...
33199         * tree-vect-generic.cc: ...here.
33200         * tree-vect-loop-manip.c: Moved to...
33201         * tree-vect-loop-manip.cc: ...here.
33202         * tree-vect-loop.c: Moved to...
33203         * tree-vect-loop.cc: ...here.
33204         * tree-vect-patterns.c: Moved to...
33205         * tree-vect-patterns.cc: ...here.
33206         * tree-vect-slp-patterns.c: Moved to...
33207         * tree-vect-slp-patterns.cc: ...here.
33208         * tree-vect-slp.c: Moved to...
33209         * tree-vect-slp.cc: ...here.
33210         * tree-vect-stmts.c: Moved to...
33211         * tree-vect-stmts.cc: ...here.
33212         * tree-vector-builder.c: Moved to...
33213         * tree-vector-builder.cc: ...here.
33214         * tree-vectorizer.c: Moved to...
33215         * tree-vectorizer.cc: ...here.
33216         * tree-vrp.c: Moved to...
33217         * tree-vrp.cc: ...here.
33218         * tree.c: Moved to...
33219         * tree.cc: ...here.
33220         * tsan.c: Moved to...
33221         * tsan.cc: ...here.
33222         * typed-splay-tree.c: Moved to...
33223         * typed-splay-tree.cc: ...here.
33224         * ubsan.c: Moved to...
33225         * ubsan.cc: ...here.
33226         * valtrack.c: Moved to...
33227         * valtrack.cc: ...here.
33228         * value-prof.c: Moved to...
33229         * value-prof.cc: ...here.
33230         * var-tracking.c: Moved to...
33231         * var-tracking.cc: ...here.
33232         * varasm.c: Moved to...
33233         * varasm.cc: ...here.
33234         * varpool.c: Moved to...
33235         * varpool.cc: ...here.
33236         * vec-perm-indices.c: Moved to...
33237         * vec-perm-indices.cc: ...here.
33238         * vec.c: Moved to...
33239         * vec.cc: ...here.
33240         * vmsdbgout.c: Moved to...
33241         * vmsdbgout.cc: ...here.
33242         * vr-values.c: Moved to...
33243         * vr-values.cc: ...here.
33244         * vtable-verify.c: Moved to...
33245         * vtable-verify.cc: ...here.
33246         * web.c: Moved to...
33247         * web.cc: ...here.
33248         * xcoffout.c: Moved to...
33249         * xcoffout.cc: ...here.
33251 2022-01-17  qing zhao  <qing.zhao@oracle.com>
33253         * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
33254         .DEFERRED_INIT call with an anonymous SSA_NAME specially.
33255         (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
33256         specially.
33257         (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
33258         (warn_uninitialized_vars): Likewise.
33259         (warn_uninitialized_phi): Likewise.
33261 2022-01-17  Jason Merrill  <jason@redhat.com>
33263         * diagnostic.h (struct diagnostic_context): Add includes_seen.
33264         * diagnostic.c (diagnostic_initialize): Initialize it.
33265         (diagnostic_finish): Clean it up.
33266         (includes_seen): New function.
33267         (diagnostic_report_current_module): Use it.
33269 2022-01-17  Richard Biener  <rguenther@suse.de>
33271         PR middle-end/101292
33272         * diagnostic-spec.c (copy_warning): Make sure to not
33273         reference old hashtable content on possible resize.
33274         * warning-control.cc (copy_warning): Likewise.
33276 2022-01-17  Jakub Jelinek  <jakub@redhat.com>
33278         PR target/103973
33279         * tree-cfg.h (cond_only_block_p): Declare.
33280         * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
33281         * tree-cfg.c (cond_only_block_p): ... here.  No longer static.
33282         * optabs.def (spaceship_optab): New optab.
33283         * internal-fn.def (SPACESHIP): New internal function.
33284         * internal-fn.h (expand_SPACESHIP): Declare.
33285         * internal-fn.c (expand_PHI): Formatting fix.
33286         (expand_SPACESHIP): New function.
33287         * tree-ssa-math-opts.c (optimize_spaceship): New function.
33288         (math_opts_dom_walker::after_dom_children): Use it.
33289         * config/i386/i386.md (spaceship<mode>3): New define_expand.
33290         * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
33291         * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
33292         * doc/md.texi (spaceship@var{m}3): Document.
33294 2022-01-17  Kewen Lin  <linkw@linux.ibm.com>
33296         * config/rs6000/altivec.md (altivec_vreveti2): Remove.
33297         * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
33298         *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
33299         known constant values to simplify code.
33301 2022-01-17  Haochen Gui  <guihaoc@gcc.gnu.org>
33303         PR target/103124
33304         * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
33306 2022-01-16  wwwhhhyyy  <hongyu.wang@intel.com>
33308         * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
33309         * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
33310         Insert zero-idiom in output template when attr enabled, set new attribute to
33311         true for non-mask/maskz insn.
33312         (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
33313         Likewise.
33314         (avx512dq_mul<mode>3<mask_name>): Likewise.
33315         (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
33316         (avx2_perm<mode>_1<mask_name>): Likewise.
33317         (avx512f_perm<mode>_1<mask_name>): Likewise.
33318         (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
33319         (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
33320         Likewise.
33321         (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
33322         (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
33323         Likewise.
33324         * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
33325         subst_attr.
33326         (mask4_dest_false_dep_for_glc_cond): Likewise.
33327         (mask6_dest_false_dep_for_glc_cond): Likewise.
33328         (mask10_dest_false_dep_for_glc_cond): Likewise.
33329         (maskc_dest_false_dep_for_glc_cond): Likewise.
33330         (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
33331         (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
33332         * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
33333         DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
33335 2022-01-15  Martin Sebor  <msebor@redhat.com>
33337         PR c/63272
33338         * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
33339         -Wdangling-pointer.
33340         * doc/invoke.texi (-Wdangling-pointer): Document new option.
33341         * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
33342         (pass_waccess::check_pointer_uses): New function.
33343         (pass_waccess::gimple_call_return_arg): New function.
33344         (pass_waccess::gimple_call_return_arg_ref): New function.
33345         (pass_waccess::check_call_dangling): New function.
33346         (pass_waccess::check_dangling_uses): New function overloads.
33347         (pass_waccess::check_dangling_stores): New function.
33348         (pass_waccess::check_dangling_stores): New function.
33349         (pass_waccess::m_clobbers): New data member.
33350         (pass_waccess::m_func): New data member.
33351         (pass_waccess::m_run_number): New data member.
33352         (pass_waccess::m_check_dangling_p): New data member.
33353         (pass_waccess::check_alloca): Check m_early_checks_p.
33354         (pass_waccess::check_alloc_size_call): Same.
33355         (pass_waccess::check_strcat): Same.
33356         (pass_waccess::check_strncat): Same.
33357         (pass_waccess::check_stxcpy): Same.
33358         (pass_waccess::check_stxncpy): Same.
33359         (pass_waccess::check_strncmp): Same.
33360         (pass_waccess::check_memop_access): Same.
33361         (pass_waccess::check_read_access): Same.
33362         (pass_waccess::check_builtin): Call check_pointer_uses.
33363         (pass_waccess::warn_invalid_pointer): Add arguments.
33364         (is_auto_decl): New function.
33365         (pass_waccess::check_stmt): New function.
33366         (pass_waccess::check_block): Call check_stmt.
33367         (pass_waccess::execute): Call check_dangling_uses,
33368         check_dangling_stores.  Empty m_clobbers.
33369         * passes.def (pass_warn_access): Invoke pass two more times.
33371 2022-01-15  Martin Sebor  <msebor@redhat.com>
33373         PR tree-optimization/80532
33374         * common.opt (-Wuse-after-free): New options.
33375         * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
33376         OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
33377         * diagnostic-spec.h (NW_DANGLING): New enumerator.
33378         * doc/invoke.texi (-Wuse-after-free): Document new option.
33379         * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
33380         (pass_waccess::check_call_access): ...to this.
33381         (pass_waccess::check): Rename...
33382         (pass_waccess::check_block): ...to this.
33383         (pass_waccess::check_pointer_uses): New function.
33384         (pass_waccess::gimple_call_return_arg): New function.
33385         (pass_waccess::warn_invalid_pointer): New function.
33386         (pass_waccess::check_builtin): Handle free and realloc.
33387         (gimple_use_after_inval_p): New function.
33388         (get_realloc_lhs): New function.
33389         (maybe_warn_mismatched_realloc): New function.
33390         (pointers_related_p): New function.
33391         (pass_waccess::check_call): Call check_pointer_uses.
33392         (pass_waccess::execute): Compute and free dominance info.
33394 2022-01-15  Uroš Bizjak  <ubizjak@gmail.com>
33396         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
33397         expand_simple_unop and expand_simple_binop instead of manually
33398         constructing NOT, AND and IOR RTXes.  Use vector_all_ones_operand
33399         consistently.  Eliminate common subexpressions and simplify code.
33400         * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
33401         (<any_logic:code><MODEF:mode>3): Make public.
33403 2022-01-14  Eric Botcazou  <ebotcazou@adacore.com>
33405         * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
33406         reverse flag as "reverse" for the sake of consistency.
33407         * ipa-sra.c: Fix copyright year.
33408         (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
33409         (dump_isra_access): Tweak dump line.
33410         (isra_write_node_summary): Write the reverse flag.
33411         (isra_read_node_info): Read it.
33412         (pull_accesses_from_callee): Test its consistency and copy it.
33414 2022-01-14  Richard Sandiford  <richard.sandiford@arm.com>
33416         PR middle-end/104026
33417         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
33418         partial_load_store_bias.
33420 2022-01-14  Martin Sebor  <msebor@redhat.com>
33422         PR middle-end/101475
33423         * pointer-query.cc (handle_component_ref): Use the size of
33424         the enclosing object if it's smaller than the member.
33426 2022-01-14  Martin Liska  <mliska@suse.cz>
33428         * configure: Regenerate.
33430 2022-01-14  Uroš Bizjak  <ubizjak@gmail.com>
33432         * config/i386/i386.md (*add<mode>_1_slp"):
33433         Mark alternative 1 output operand earlyclobbered.
33434         (*sub<mode>_1_slp): Ditto.
33435         (*and<mode>_1_slp): Ditto.
33436         (*<code><mode>_1_slp): Ditto.
33437         (*neg<mode>_1_slp): Ditto.
33438         (*one_cmpl<mode>_1_slp): Ditto.
33439         (*ashl<mode>3_1_slp): Ditto.
33440         (*<insn><mode>3_1_slp): Ditto.
33441         (*<insn><mode>3_1_slp): Ditto.
33443 2022-01-14  Kewen Lin  <linkw@linux.ibm.com>
33445         PR tree-optimization/104015
33446         * tree-vect-loop.c (vect_analyze_loop): Check
33447         param_vect_partial_vector_usage for supports_partial_vectors.
33449 2022-01-14  Jakub Jelinek  <jakub@redhat.com>
33451         PR c++/89074
33452         * fold-const.c (address_compare): Punt on comparison of address of
33453         one object with address of end of another object if
33454         folding_initializer.
33456 2022-01-14  Jakub Jelinek  <jakub@redhat.com>
33458         PR target/98737
33459         * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
33460         __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
33461         and __atomic_op_fetch (p, x, y) iop x into
33462         __atomic_fetch_op (p, x, y).
33464 2022-01-14  Claudiu Zissulescu  <claziss@synopsys.com>
33466         * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
33467         (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
33468         (INCOMING_RETURN_ADDR_RTX): Likewise.
33469         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
33471 2022-01-14  Claudiu Zissulescu  <claziss@synopsys.com>
33473         * config/arc/arc.c (arc_compute_frame_size): Remove condition when
33474         computin checking accumulator regs.
33475         (arc_expand_prologue): Update comments.
33476         (arc_expand_epilogue): Likewise.
33478 2022-01-14  Roger Sayle  <roger@nextmovesoftware.com>
33479             Uroš Bizjak  <ubizjak@gmail.com>
33481         * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
33482         (ix86_expand_ti_to_v1ti): Use force_reg.
33483         (ix86_expand_v1ti_shift): Use force_reg.
33484         (ix86_expand_v1ti_rotate): Use force_reg.
33485         (ix86_expand_v1ti_ashiftrt): Provide new three operation
33486         implementations for shifts by 111..126 bits.  Use force_reg.
33488 2022-01-14  Martin Liska  <mliska@suse.cz>
33490         * common/config/arm/arm-common.c (arm_target_mode): Fix
33491         warning: unterminated quoting directive [-Wformat=].
33493 2022-01-14  Siddhesh Poyarekar  <siddhesh@gotplt.org>
33495         PR tree-optimization/104009
33496         * tree-object-size.c (compute_builtin_object_size): Bail out on
33497         negative offset.
33498         (plus_stmt_object_size): Return maximum of wholesize and minimum
33499         of 0 for negative offset.
33501 2022-01-14  liuhongt  <hongtao.liu@intel.com>
33503         PR target/104001
33504         PR target/94790
33505         PR target/104014
33506         * config/i386/i386.md (*xor2andn): Refine predicate of
33507         operands[0] from nonimmediate_operand to
33508         register_operand, remove TARGET_AVX512BW from condition.
33510 2022-01-14  David Malcolm  <dmalcolm@redhat.com>
33512         * doc/extend.texi (Function Attributes): Note that "tainted_args" can
33513         be used on field decls.
33514         (Common Function Attributes): Add entry on "tainted_args" attribute.
33516 2022-01-13  Anthony Sharp  <anthonysharp15@gmail.com>
33517             Jason Merrill  <jason@redhat.com>
33519         PR c++/70417
33520         * doc/invoke.texi: Documentation for Wmissing-template-keyword.
33522 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
33524         PR target/103861
33525         * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
33526         (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
33527         * config/i386/mmx.md (<any_shift:insn>v2qi):
33528         New insn_and_split pattern.
33530 2022-01-13  Robin Dapp  <rdapp@linux.ibm.com>
33532         * internal-fn.c (expand_partial_load_optab_fn): Add bias.
33533         (expand_partial_store_optab_fn): Likewise.
33534         (internal_len_load_store_bias): New function.
33535         * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
33536         (internal_len_load_store_bias): New function.
33537         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
33538         (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
33539         * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
33540         (vect_estimate_min_profitable_iters): Account for bias.
33541         (vect_get_loop_len): Add bias-adjusted length.
33542         * tree-vect-stmts.c (vectorizable_store): Use.
33543         (vectorizable_load): Use.
33544         * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
33545         (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
33546         * config/rs6000/vsx.md: Use const0 bias predicate.
33547         * doc/md.texi: Document bias value.
33549 2022-01-13  Andrew MacLeod  <amacleod@redhat.com>
33551         PR tree-optimization/83072
33552         PR tree-optimization/83073
33553         PR tree-optimization/97909
33554         * fold-const.c (expr_not_equal_to): Use a multi-range class.
33556 2022-01-13  Andrew MacLeod  <amacleod@redhat.com>
33558         PR tree-optimization/96707
33559         * range-op.cc (operator_rshift::lhs_op1_relation): New.
33561 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
33563         * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
33564         Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
33565         (negv2qi splitters): Use lowpart_subreg instead of
33566         gen_lowpart to create subreg.
33567         (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
33568         Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
33569         (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
33570         gen_lowpart to create subreg.
33571         * config/i386/i386.md (*subqi_ext<mode>_2): Move.
33573 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
33575         PR target/104003
33576         * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
33578 2022-01-13  Martin Liska  <mliska@suse.cz>
33580         * common/config/arm/arm-common.c (arm_target_mode): Wrap
33581         keywords with %<, %> and remove trailing punctuation char.
33582         (arm_canon_arch_option_1): Likewise.
33583         (arm_asm_auto_mfpu): Likewise.
33584         * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
33585         * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
33586         (use_vfp_abi): Likewise.
33587         (aapcs_vfp_is_call_or_return_candidate): Likewise.
33588         (arm_handle_cmse_nonsecure_entry): Likewise.
33589         (arm_handle_cmse_nonsecure_call): Likewise.
33590         (thumb1_md_asm_adjust): Likewise.
33592 2022-01-13  Paul A. Clarke  <pc@us.ibm.com>
33594         * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
33595         _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
33596         _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
33597         _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
33598         _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
33599         _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
33600         (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
33601         _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
33602         macro.
33604 2022-01-13  Jakub Jelinek  <jakub@redhat.com>
33606         PR tree-optimization/103989
33607         * tree-inline.c (setup_one_parameter): Don't copy parms with
33608         empty type.
33610 2022-01-13  Thomas Schwinge  <thomas@codesourcery.com>
33612         * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
33613         'TYPE_ADDR_SPACE' for offloading.
33614         * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
33615         'TYPE_ADDR_SPACE' for offloading.
33617 2022-01-13  Julian Brown  <julian@codesourcery.com>
33618             Thomas Schwinge  <thomas@codesourcery.com>
33620         * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
33621         of...
33622         (add_async_clauses_and_wait): ...here. Call new outlined function.
33623         (decompose_kernels_region_body): Add wait at the end of
33624         explicitly-asynchronous kernels regions.
33626 2022-01-13  Thomas Schwinge  <thomas@codesourcery.com>
33628         PR middle-end/100280
33629         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
33630         Mark variables used in synthesized data clauses as addressable.
33632 2022-01-13  Martin Liska  <mliska@suse.cz>
33634         * config/epiphany/epiphany.c (epiphany_mode_priority):
33635         Use gcc_unreachable for not handled cases.
33637 2022-01-13  Martin Liska  <mliska@suse.cz>
33639         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
33640         Use %qs format specifier.
33641         (epiphany_override_options): Wrap keyword in %<, %>.
33643 2022-01-13  Haochen Jiang  <haochen.jiang@intel.com>
33645         PR target/94790
33646         * config/i386/i386.md (*xor2andn): New define_insn_and_split.
33648 2022-01-13  Xionghu Luo  <luoxhu@linux.ibm.com>
33650         * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
33652 2022-01-12  Uroš Bizjak  <ubizjak@gmail.com>
33654         PR target/100637
33655         PR target/103861
33656         * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
33657         (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
33658         when constructing vector logic RTXes.
33659         (expand_vec_perm_pshufb2): Ditto.
33660         * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
33661         (<plusminus:insn>v2qi3): Ditto.
33662         (vcond<mode><mode>): Re-enable for TARGET_SSE2.
33663         (vcondu<mode><mode>): Ditto.
33664         (vcond_mask_<mode><mode>): Ditto.
33665         (one_cmpl<VI_32:mode>2): Remove expander.
33666         (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
33667         Use VI_16_32 mode iterator.
33668         (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
33669         Use lowpart_subreg instead of gen_lowpart to create subreg.
33670         (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
33671         "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
33672         Disparage GPR alternative a bit.  Add CC clobber.
33673         (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
33674         Use lowpart_subreg instead of gen_lowpart to create subreg.
33675         (*<any_logic:code><VI_16_32:mode>3): Merge from
33676         "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
33677         using VI_16_32 mode iterator.  Disparage GPR alternative a bit.
33678         Add CC clobber.
33679         (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
33680         iterator.  Use lowpart_subreg instead of gen_lowpart to create subreg.
33682 2022-01-12  Clément Chigot  <clement.chigot@atos.net>
33684         * configure.ac: Check sizeof ino_t and dev_t.
33685         (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
33686         syscall being able to handle 64bit inodes.
33687         * config.in: Regenerate.
33688         * configure: Regenerate.
33689         * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
33690         (remove_duplicates): Use it.
33692 2022-01-12  Andrew MacLeod  <amacleod@redhat.com>
33694         PR tree-optimization/103551
33695         * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
33697 2022-01-12  Richard Biener  <rguenther@suse.de>
33699         PR tree-optimization/103990
33700         * tree-pass.h (tail_merge_optimize): Drop unused argument.
33701         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
33702         * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
33703         and adjust call to tail_merge_optimize.
33705 2022-01-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
33707         * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
33708         does not add autovectorize_vector_modes.
33710 2022-01-12  Martin Liska  <mliska@suse.cz>
33712         * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
33713         %qs where possible.
33714         (aarch64_parse_sve_width_string): Likewise.
33715         (aarch64_override_options_internal): Likewise.
33716         (aarch64_print_hint_for_extensions): Likewise.
33717         (aarch64_validate_sls_mitigation): Likewise.
33718         (aarch64_handle_attr_arch): Likewise.
33719         (aarch64_handle_attr_cpu): Likewise.
33720         (aarch64_handle_attr_tune): Likewise.
33721         (aarch64_handle_attr_isa_flags): Likewise.
33723 2022-01-12  Martin Liska  <mliska@suse.cz>
33725         * config.gcc: Include elfos.h before ${tm_file}.
33727 2022-01-12  Hans-Peter Nilsson  <hp@axis.com>
33729         * config/cris/cris.c: Quote identifiers in parameters to error
33730         and internal_error, and remove extraneous spaces with punctuation.
33731         * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
33732         expression to internal_error, pass it as a parameter instead of
33733         appending it to the format part.
33735 2022-01-12  Hans-Peter Nilsson  <hp@axis.com>
33737         * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
33738         parameter to as_a.
33740 2022-01-11  qing zhao  <qing.zhao@oracle.com>
33742         * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
33743         Change the 3rd argument of function .DEFERRED_INIT to the name of the
33744         decl.
33745         (gimplify_decl_expr): Delete the 3rd argument when call
33746         gimple_add_init_for_auto_var.
33747         * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
33748         the 3rd argument change of function .DEFERRED_INIT.
33749         * tree-cfg.c (verify_gimple_call): Update comments and verification
33750         to reflect the 3rd argument change of function .DEFERRED_INIT.
33751         * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
33752         (sra_modify_deferred_init): Change the 3rd argument of function
33753         .DEFERRED_INIT to the name of the decl.
33755 2022-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
33757         * flag-types.h (enum gfc_convert): Add flags for
33758         conversion.
33760 2022-01-11  Michael Meissner  <meissner@the-meissners.org>
33762         * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
33763         checks for only C/C++ front ends before allowing the long double
33764         format to change without a warning.
33766 2022-01-11  Richard Sandiford  <richard.sandiford@arm.com>
33768         PR rtl-optimization/103974
33769         * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
33770         extra argument, default true, that says whether old-reload
33771         targets should be excluded.
33772         * ira-color.c (color_pass): Pass false.
33774 2022-01-11  Uroš Bizjak  <ubizjak@gmail.com>
33776         PR target/103861
33777         * config/i386/mmx.md (vcond<mode><mode>):
33778         Use VI_16_32 mode iterator.  Enable for TARGET_SSE4_1.
33779         (vcondu<mode><mode>): Ditto.
33780         (vcond_mask_<mode><mode>): Ditto.
33781         (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
33782         (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
33783         Use VI_16_32 mode iterator.
33784         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
33785         Update for rename.  Handle V2QImode.
33786         (expand_vec_perm_blend): Update for rename.
33788 2022-01-11  Jakub Jelinek  <jakub@redhat.com>
33790         PR c++/101597
33791         * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
33793 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
33795         PR middle-end/70090
33796         * tree-object-size.c (size_valid_p): New function.
33797         (size_for_offset): Remove OFFSET constness assertion.
33798         (addr_object_size): Build dynamic expressions for object
33799         sizes and use size_valid_p to decide if it is valid for the
33800         given OBJECT_SIZE_TYPE.
33801         (compute_builtin_object_size): Allow dynamic offsets when
33802         computing size at O0.
33803         (call_object_size): Call size_valid_p.
33804         (plus_stmt_object_size): Allow non-constant offset and use
33805         size_valid_p to decide if it is valid for the given
33806         OBJECT_SIZE_TYPE.
33808 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
33810         PR middle-end/70090
33811         * tree-object-size.c (alloc_object_size): Make and return
33812         non-constant size expression.
33813         (call_object_size): Return expression or unknown based on
33814         whether dynamic object size is requested.
33816 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
33818         PR middle-end/70090
33819         * tree-object-size.c: Include tree-dfa.h.
33820         (parm_object_size): New function.
33821         (collect_object_sizes_for): Call it.
33823 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
33825         PR middle-end/70090
33826         * builtins.c (fold_builtin_object_size): Adjust for dynamic size
33827         expressions.
33828         * tree-object-size.c: Include gimplify-me.h.
33829         (struct object_size_info): New member UNKNOWNS.
33830         (size_initval_p, size_usable_p, object_sizes_get_raw): New
33831         functions.
33832         (object_sizes_get): Return suitable gimple variable for
33833         object size.
33834         (bundle_sizes): New function.
33835         (object_sizes_set): Use it and handle dynamic object size
33836         expressions.
33837         (object_sizes_set_temp): New function.
33838         (size_for_offset): Adjust for dynamic size expressions.
33839         (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
33840         New functions.
33841         (compute_builtin_object_size): Call gimplify_size_expressions
33842         for OST_DYNAMIC.
33843         (dynamic_object_size): New function.
33844         (cond_expr_object_size): Use it.
33845         (phi_dynamic_object_size): New function.
33846         (collect_object_sizes_for): Call it for OST_DYNAMIC.  Adjust to
33847         accommodate dynamic object sizes.
33849 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
33850             Jakub Jelinek  <jakub@redhat.com>
33852         PR tree-optimization/103961
33853         * tree-object-size.c (plus_stmt_object_size): Always avoid
33854         computing offset for -1 size.
33856 2022-01-11  Andrew MacLeod  <amacleod@redhat.com>
33858         PR tree-optimization/103821
33859         * range-op.cc (range_operator::fold_range): Only do precise ranges
33860         when there are not too many subranges.
33862 2022-01-11  Richard Sandiford  <richard.sandiford@arm.com>
33864         * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
33865         definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
33867 2022-01-11  Roger Sayle  <roger@nextmovesoftware.com>
33868             Richard Biener  <rguenther@suse.de>
33870         * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
33871         highpart_mults_inserted field.
33872         (convert_mult_to_highpart): New function to convert right shift
33873         of a widening multiply into a MULT_HIGHPART_EXPR.
33874         (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
33875         Call new convert_mult_to_highpart function.
33876         (pass_optimize_widening_mul::execute): Add a statistics counter
33877         for tracking "highpart multiplications inserted" events.
33879 2022-01-11  Xionghu Luo  <luoxhu@linux.ibm.com>
33881         PR target/102239
33882         * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
33883         declare.
33884         * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
33885         function.
33886         * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
33888 2022-01-11  Olivier Hainque  <hainque@adacore.com>
33890         * gcc.c (driver_handle_option): State --sysroot as
33891         validated.
33893 2022-01-11  Kewen Lin  <linkw@linux.ibm.com>
33895         * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
33896         useless related to option -mno-power10.
33898 2022-01-11  Haochen Jiang  <haochen.jiang@intel.com>
33900         PR target/53652
33901         * config/i386/sse.md (*andnot<mode>3): Extend predicate of
33902         operands[1] from register_operand to vector_operand.
33904 2022-01-10  Uroš Bizjak  <ubizjak@gmail.com>
33906         PR target/103861
33907         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
33908         Handle V2QImode.
33909         * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
33910         Use VI1_16_32 mode iterator.
33911         (*eq<mode>3): Ditto.
33912         (*gt<mode>3): Ditto.
33913         (*xop_maskcmp<mode>3): Ditto.
33914         (*xop_maskcmp_uns<mode>3): Ditto.
33915         (vec_cmp<mode><mode>): Ditto.
33916         (vec_cmpu<mode><mode>): Ditto.
33918 2022-01-10  Richard Biener  <rguenther@suse.de>
33920         PR tree-optimization/103948
33921         * tree-vect-generic.c (expand_vector_condition): Return true if
33922         all ones vector is returned for true, all zeros vector for false
33923         and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
33925 2022-01-10  Paul A. Clarke  <pc@us.ibm.com>
33927         * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
33928         when _ARCH_PWR10. Use signed types.
33929         (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
33930         (_mm_blendv_pd): Likewise.
33932 2022-01-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
33934         * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
33935         epilogue costing.
33936         * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
33937         epilogues, unless we are guaranteed that we can't have partial vectors.
33938         * genopinit.c: (partial_vectors_supported): Generate new function.
33940 2022-01-10  Jakub Jelinek  <jakub@redhat.com>
33942         PR target/102024
33943         * config/i386/i386.c (classify_argument): Add zero_width_bitfields
33944         argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
33945         always ignore them, when seeing other zero sized bitfields, either
33946         set zero_width_bitfields to 1 and ignore it or if equal to 2 process
33947         it.  Pass it to recursive calls.  Add wrapper
33948         with old arguments and diagnose ABI differences for C structures
33949         with zero width bitfields.  Formatting fixes.
33951 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
33953         PR rtl-optimization/98782
33954         * ira-int.h (ira_soft_conflict): Declare.
33955         * ira-color.c (max_soft_conflict_loop_depth): New constant.
33956         (ira_soft_conflict): New function.
33957         (spill_soft_conflicts): Likewise.
33958         (assign_hard_reg): Use them to handle the case described by
33959         the comment above ira_soft_conflict.
33960         (improve_allocation): Likewise.
33961         * ira.c (check_allocation): Allow allocnos with "soft" conflicts
33962         to share the same register.
33964 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
33966         PR rtl-optimization/98782
33967         * ira-int.h (ira_caller_save_cost): New function.
33968         (ira_caller_save_loop_spill_p): Likewise.
33969         * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
33970         cheaper to spill a call-clobbered register throughout a loop rather
33971         than spill it around each individual call.  If so, treat all
33972         call-clobbered registers as conflicts and...
33973         (propagate_allocno_info): ...do not propagate call information
33974         from the child to the parent.
33975         * ira-color.c (move_spill_restore): Update accordingly.
33976         * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
33978 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
33980         PR rtl-optimization/98782
33981         * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
33982         (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
33983         (ira_single_region_allocno_p): New function.
33984         (ira_total_conflict_hard_regs): Likewise.
33985         * ira-build.c (ira_create_allocno): Initialize
33986         ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
33987         (ira_propagate_hard_reg_costs): New function.
33988         (propagate_allocno_info): Use it.  Try to avoid propagating
33989         hard register conflicts to parent allocnos if we can handle
33990         the conflicts by spilling instead.  Limit the propagated
33991         register costs to the cost of spilling throughout the child loop.
33992         * ira-color.c (color_pass): Use ira_single_region_allocno_p to
33993         test whether a child and parent allocno can share the same
33994         register.
33995         (move_spill_restore): Adjust for the new behavior of
33996         propagate_allocno_info.
33998 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
34000         PR rtl-optimization/98782
34001         * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
34002         extracted from...
34003         * ira-color.c (color_pass): ...here.
34005 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
34007         PR rtl-optimization/98782
34008         * ira-color.c (color_pass): Add comments to describe the spill costs.
34009         (move_spill_restore): Likewise.  Fix reversed calculation.
34011 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
34013         PR rtl-optimization/98782
34014         * ira-int.h (ira_loop_border_costs): New class.
34015         * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
34016         New constructor.
34017         (calculate_allocno_spill_cost): Use ira_loop_border_costs.
34018         (color_pass): Likewise.
34019         (move_spill_restore): Likewise.
34021 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
34023         PR target/103465
34024         * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
34026 2022-01-10  Richard Biener  <rguenther@suse.de>
34028         PR tree-optimization/100359
34029         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
34030         Allow non-growing peeling with !allow_peel and UL_ALL.
34032 2022-01-08  Roger Sayle  <roger@nextmovesoftware.com>
34034         * config/i386/i386-expand.c (ix86_expand_vector_move): Add
34035         special case for TImode to V1TImode moves, going via V2DImode.
34037 2022-01-08  Jakub Jelinek  <jakub@redhat.com>
34039         PR c++/89074
34040         * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
34041         simplification.
34043 2022-01-08  David Malcolm  <dmalcolm@redhat.com>
34045         * doc/analyzer.texi
34046         (Special Functions for Debugging the Analyzer): Document
34047         __analyzer_dump_escaped.
34049 2022-01-08  David Malcolm  <dmalcolm@redhat.com>
34051         * doc/analyzer.texi (Other Debugging Techniques): Document
34052         region::is_named_decl_p.
34054 2022-01-07  Andrew Pinski  <apinski@marvell.com>
34056         PR target/102941
34057         * config/arm/aarch-common.c (arm_md_asm_adjust):
34058         Use a temp if !REG_P.
34060 2022-01-07  Uroš Bizjak  <ubizjak@gmail.com>
34062         * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
34063         (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
34065 2022-01-07  liuhongt  <hongtao.liu@intel.com>
34067         PR rtl-optimization/103750
34068         * fwprop.c (forward_propagate_into): Allow propagations from
34069         inner loop to outer loop.
34071 2022-01-07  Roger Sayle  <roger@nextmovesoftware.com>
34073         * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
34075 2022-01-07  Haochen Gui  <guihaoc@gcc.gnu.org>
34077         * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
34078         (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
34079         Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
34081 2022-01-07  liuhongt  <hongtao.liu@intel.com>
34083         * config/i386/sse.md
34084         (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
34085         UNSPEC_PCMP_UNSIGNED.
34087 2022-01-07  liuhongt  <hongtao.liu@intel.com>
34089         PR target/103753
34090         * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
34091         gen_avx2_pblendph_1 when elt == 0.
34092         * config/i386/sse.md (avx2_pblendph): Rename to ..
34093         (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
34094         (*avx2_pblendw): Rename to ..
34095         (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
34096         (avx2_pblendw): Rename to ..
34097         (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
34098         (blendsuf): Removed.
34099         (sse4_1_pblend<blendsuf>): Renamed to ..
34100         (sse4_1_pblend<ssemodesuffix>): .. this.
34102 2022-01-06  H.J. Lu  <hjl.tools@gmail.com>
34104         PR target/103925
34105         * config/i386/i386.c (ix86_output_indirect_function_return):
34106         Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
34108 2022-01-06  H.J. Lu  <hjl.tools@gmail.com>
34110         PR target/102952
34111         * config/i386/i386-opts.h (harden_sls): Replace
34112         harden_sls_indirect_branch with harden_sls_indirect_jmp.
34113         * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
34114         Likewise.
34115         (ix86_output_indirect_jmp): Likewise.
34116         (ix86_output_call_insn): Likewise.
34117         * config/i386/i386.opt: Replace indirect-branch with
34118         indirect-jmp.  Replace harden_sls_indirect_branch with
34119         harden_sls_indirect_jmp.
34120         * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
34121         indirect-jmp.
34123 2022-01-06  Uroš Bizjak  <ubizjak@gmail.com>
34125         * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
34126         Add %q modifier for operands in general registers.
34127         <MODE_SI>: Add %q modifier for operands in general registers.
34128         * config/i386/i386.md (*movhi_internal): Change type attribute of
34129         xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
34130         to SImode for non-avx512fp16 targets.
34131         (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
34132         * config/i386/mmx.md (*movv2qi_internal):
34133         Ditto for xmm-gpr interunit alternatives 8,9.
34135 2022-01-06  Kito Cheng  <kito.cheng@sifive.com>
34137         * common/config/riscv/riscv-common.c (riscv_implied_info): Add
34138         vector extensions.
34139         (riscv_ext_version_table): Add version info for vector extensions.
34140         (riscv_ext_flag_table): Add option mask for vector extensions.
34141         * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
34142         (MASK_VECTOR_EEW_64): New.
34143         (MASK_VECTOR_EEW_FP_32): New.
34144         (MASK_VECTOR_EEW_FP_64): New.
34145         (MASK_ZVL32B): New.
34146         (MASK_ZVL64B): New.
34147         (MASK_ZVL128B): New.
34148         (MASK_ZVL256B): New.
34149         (MASK_ZVL512B): New.
34150         (MASK_ZVL1024B): New.
34151         (MASK_ZVL2048B): New.
34152         (MASK_ZVL4096B): New.
34153         (MASK_ZVL8192B): New.
34154         (MASK_ZVL16384B): New.
34155         (MASK_ZVL32768B): New.
34156         (MASK_ZVL65536B): New.
34157         (TARGET_ZVL32B): New.
34158         (TARGET_ZVL64B): New.
34159         (TARGET_ZVL128B): New.
34160         (TARGET_ZVL256B): New.
34161         (TARGET_ZVL512B): New.
34162         (TARGET_ZVL1024B): New.
34163         (TARGET_ZVL2048B): New.
34164         (TARGET_ZVL4096B): New.
34165         (TARGET_ZVL8192B): New.
34166         (TARGET_ZVL16384B): New.
34167         (TARGET_ZVL32768B): New.
34168         (TARGET_ZVL65536B): New.
34169         * config/riscv/riscv.opt (Mask(VECTOR)): New.
34170         (riscv_vector_eew_flags): New.
34171         (riscv_zvl_flags): New.
34173 2022-01-06  Kito Cheng  <kito.cheng@sifive.com>
34175         * common/config/riscv/riscv-common.c
34176         (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
34177         digit.
34179 2022-01-06  Jakub Jelinek  <jakub@redhat.com>
34181         PR tree-optimization/103899
34182         * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
34183         warning by moving context variable to the only spot where it is used
34184         and moving gcc_assert into if body.
34186 2022-01-06  Jakub Jelinek  <jakub@redhat.com>
34188         PR rtl-optimization/103908
34189         * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
34190         asm goto.
34192 2022-01-05  Bill Schmidt  <wschmidt@linux.ibm.com>
34194         PR target/103622
34195         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
34196         Skip over instances with undefined function types.
34198 2022-01-05  Andrew Pinski  <apinski@marvell.com>
34200         PR target/103910
34201         * config/i386/i386.h (x86_mfence): Mark with GTY.
34203 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
34205         PR target/103861
34206         * config/i386/mmx.md (VI_16_32): New mode iterator.
34207         (VI1_16_32): Ditto.
34208         (mmxvecsize): Handle V2QI mode.
34209         (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
34210         Use VI1_16_32 mode iterator.
34211         (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
34212         Use VI1_16_32 mode iterator.
34213         (abs<mode>2): Use VI_16_32 mode iterator.
34214         (uavgv2qi3_ceil): New insn pattern.
34216 2022-01-05  Martin Sebor  <msebor@redhat.com>
34218         * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
34219         %qs to avoid -Wformat-diag.
34221 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
34223         PR target/103915
34224         * config/i386/mmx.md (one_cmplv2qi2): Change
34225         alternatives 1,2 type from sselog to sselog1.
34227 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
34229         PR target/103905
34230         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
34231         narrow mode remapped elements for !one_operand_p case.
34233 2022-01-05  Richard Biener  <rguenther@suse.de>
34235         PR tree-optimization/103816
34236         * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
34237         check DR_GROUP_GAP compute for overflow and representability.
34239 2022-01-05  Jakub Jelinek  <jakub@redhat.com>
34241         PR fortran/103691
34242         * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
34243         for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
34244         it can do unwanted rhs folding like &a[0] into &2.0 etc.
34246 2022-01-05  Kewen Lin  <linkw@linux.ibm.com>
34248         PR ipa/102059
34249         * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
34250         (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
34251         (rs6000_need_ipa_fn_target_info): New function.
34252         (rs6000_update_ipa_fn_target_info): Likewise.
34253         (rs6000_can_inline_p): Adjust for ipa function summary target info.
34254         * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
34255         * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
34256         summary target info.
34257         (analyze_function_body): Adjust for ipa function summary target info
34258         and call hook rs6000_need_ipa_fn_target_info and
34259         rs6000_update_ipa_fn_target_info.
34260         (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
34261         target info.
34262         (inline_read_section): Likewise.
34263         (ipa_fn_summary_write): Likewise.
34264         * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
34265         * doc/tm.texi: Regenerate.
34266         * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
34267         (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
34268         * target.def (update_ipa_fn_target_info): New hook.
34269         (need_ipa_fn_target_info): Likewise.
34270         * targhooks.c (default_need_ipa_fn_target_info): New function.
34271         (default_update_ipa_fn_target_info): Likewise.
34272         * targhooks.h (default_update_ipa_fn_target_info): New declare.
34273         (default_need_ipa_fn_target_info): Likewise.
34275 2022-01-04  Martin Sebor  <msebor@redhat.com>
34277         PR middle-end/99612
34278         * builtins.c (get_memmodel): Move warning code to
34279         gimple-ssa-warn-access.cc.
34280         (expand_builtin_atomic_compare_exchange): Same.
34281         (expand_ifn_atomic_compare_exchange): Same.
34282         (expand_builtin_atomic_load): Same.
34283         (expand_builtin_atomic_store): Same.
34284         (expand_builtin_atomic_clear): Same.
34285         * doc/extend.texi (__atomic_exchange_n): Update valid memory
34286         models.
34287         * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
34288         (struct memmodel_pair): New struct.
34289         (memmodel_name): New function.
34290         (pass_waccess::maybe_warn_memmodel): New function.
34291         (pass_waccess::check_atomic_memmodel): New function.
34292         (pass_waccess::check_atomic_builtin): Handle memory model.
34293         * input.c (expansion_point_location_if_in_system_header): Return
34294         original location if expansion location is in a system header.
34296 2022-01-04  Uroš Bizjak  <ubizjak@gmail.com>
34298         PR target/103861
34299         * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
34300         (one_cmplv2qi3 splitters): New post-reload splitters.
34301         (*andnotv2qi3): New insn pattern.
34302         (andnotv2qi3 splitters): New post-reload splitters.
34303         (<any_logic:code>v2qi3): New insn pattern.
34304         (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
34306 2022-01-04  Richard Biener  <rguenther@suse.de>
34308         PR tree-optimization/103800
34309         * tree-vect-loop.c (vectorizable_phi): Remove assert and
34310         expand comment.
34312 2022-01-04  Richard Biener  <rguenther@suse.de>
34314         PR tree-optimization/103690
34315         * tree-pass.h (tail_merge_optimize): Adjust.
34316         * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
34317         to re-split critical edges, move CFG cleanup ...
34318         * tree-ssa-pre.c (pass_pre::execute): ... here, before
34319         simple_dce_from_worklist and delay freeing inserted_exprs from
34320         ...
34321         (fini_pre): .. here.
34323 2022-01-04  Roger Sayle  <roger@nextmovesoftware.com>
34325         * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
34326         * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
34327         (setcc_from_bi): Remove SImode specific pattern.
34328         (setcc<mode>_from_bi): Provide more general HSDIM pattern.
34329         (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
34330         for sign- and zero-extending BImode predicates to integers.
34331         (setcc_int<mode>): Remove previous (-1-based) instructions.
34332         (cstorebi4): Remove BImode to SImode specific expander.
34333         (cstore<mode>4): Fix indentation.  Expand using setccsi_from_bi.
34334         (cstore<mode>4): For both integer and floating point modes.
34336 2022-01-04  Olivier Hainque  <hainque@adacore.com>
34338         * gcc.c (driver_handle_option): do_save --sysroot.
34340 2022-01-04  Richard Biener  <rguenther@suse.de>
34342         PR tree-optimization/103864
34343         PR tree-optimization/103544
34344         * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
34345         reductions wrapped in conversions from SLP handling.
34346         (vect_analyze_slp): Revert PR103544 change.
34348 2022-01-04  Jakub Jelinek  <jakub@redhat.com>
34350         PR rtl-optimization/103860
34351         * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
34352         uselessly for blocks for which it has been called already.
34354 2022-01-04  Cui,Lili  <lili.cui@intel.com>
34356         * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
34357         to Alderlake and Rocketlake.
34359 2022-01-04  Chung-Lin Tang  <cltang@codesourcery.com>
34361         PR middle-end/103643
34362         * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
34363         OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
34365 2022-01-04  liuhongt  <hongtao.liu@intel.com>
34367         PR target/103895
34368         * config/i386/sse.md (*bit_and_float_vector_all_ones):
34369         Force_reg operand 1 to avoid ICE.
34371 2022-01-04  Jason Merrill  <jason@redhat.com>
34373         * tree-pretty-print.c (do_niy): Add spc parameter.
34374         (NIY): Pass it.
34375         (print_call_name): Add spc local variable.
34377 2022-01-03  Uroš Bizjak  <ubizjak@gmail.com>
34379         PR target/103894
34380         * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
34381         (mov<V_32:mode>_internal): Ditto.
34382         (*push<V_32:mode>_rex64): Ditto.
34383         (movmisalign<V_32:mode>): Ditto.
34384         (*push<V_32:mode>_rex64 splitter): Enable for
34385         TARGET_64BIT && TARGET_SSE.
34386         (*push<V_32:mode>2): Remove insn pattern.
34388 2022-01-03  Andrew Pinski  <apinski@marvell.com>
34390         PR c/33193
34391         * doc/extend.texi: Extend the documentation about Complex
34392         types for casting and also rewrite the __real__/__imag__
34393         expression portion to use tables.
34394         Move __builtin_complex to the Complex type section.
34396 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
34398         PR target/98737
34399         * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
34400         ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
34401         New internal fns.
34402         * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
34403         ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
34404         ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
34405         * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
34406         expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
34407         expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
34408         functions.
34409         * optabs.def (atomic_add_fetch_cmp_0_optab,
34410         atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
34411         atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
34412         direct optabs.
34413         * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
34414         * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
34415         * tree-ssa-ccp.c: Include internal-fn.h.
34416         (optimize_atomic_bit_test_and): Add . before internal fn call
34417         in function comment.  Change return type from void to bool and
34418         return true only if successfully replaced.
34419         (optimize_atomic_op_fetch_cmp_0): New function.
34420         (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
34421         for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
34422         BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
34423         for *XOR* ones only if optimize_atomic_bit_test_and failed.
34424         * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
34425         atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
34426         (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
34427         atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
34428         * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
34429         atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
34430         atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
34431         new named patterns.
34433 2022-01-03  Richard Biener  <rguenther@suse.de>
34435         PR middle-end/103851
34436         * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
34438 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
34440         PR c++/94716
34441         * symtab.c: Include fold-const.h.
34442         (symtab_node::equal_address_to): If folding_initializer is true,
34443         handle it like memory_accessed.  Simplify.
34445 2022-01-03  Martin Liska  <mliska@suse.cz>
34447         * doc/extend.texi: Use ; for function declarations.
34449 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
34451         PR c++/103600
34452         * symtab.c (symtab_node::equal_address_to): Return 0 if one of
34453         VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
34455 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
34457         * gcc.c (process_command): Update copyright notice dates.
34458         * gcov-dump.c (print_version): Ditto.
34459         * gcov.c (print_version): Ditto.
34460         * gcov-tool.c (print_version): Ditto.
34461         * gengtype.c (create_file): Ditto.
34462         * doc/cpp.texi: Bump @copying's copyright year.
34463         * doc/cppinternals.texi: Ditto.
34464         * doc/gcc.texi: Ditto.
34465         * doc/gccint.texi: Ditto.
34466         * doc/gcov.texi: Ditto.
34467         * doc/install.texi: Ditto.
34468         * doc/invoke.texi: Ditto.
34470 2022-01-02  Uroš Bizjak  <ubizjak@gmail.com>
34472         PR target/103861
34473         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
34474         (VALID_INT_MODE_P): Ditto.
34475         * config/i386/i386.c (ix86_secondary_reload): Handle
34476         V2QImode reloads from SSE register to memory.
34477         (vector_mode_supported_p): Always return true for V2QImode.
34478         * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
34479         (*negqi_ext<mode>_2): Ditto.
34480         * config/i386/mmx.md (movv2qi): New expander.
34481         (movmisalignv2qi): Ditto.
34482         (*movv2qi_internal): New insn pattern.
34483         (*pushv2qi2): Ditto.
34484         (negv2qi2 and splitters): Ditto.
34485         (<plusminus:insn>v2qi3 and splitters): Ditto.
34487 2022-01-02  John David Anglin  <danglin@gcc.gnu.org>
34489         * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
34490         sync_lock_test_and_set libfunc. Call convert_memory_address to
34491         convert memory address to Pmode.
34492         (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
34495 Copyright (C) 2022 Free Software Foundation, Inc.
34497 Copying and distribution of this file, with or without modification,
34498 are permitted in any medium without royalty provided the copyright
34499 notice and this notice are preserved.