c++: top level bind when rewriting coroutines [PR106188]
[official-gcc.git] / gcc / ChangeLog
blob2b22b70f33453a30efae58c8d38d30924e363e04
1 2022-09-06  Richard Biener  <rguenther@suse.de>
3         PR tree-optimization/106754
4         * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
5         New function, split out from compute_control_dep_chain.  Handle
6         loop-exit like conditions here by pushing to the control vector.
7         (compute_control_dep_chain): Adjust and streamline dumping.
8         In the wrapper perform a post-dominator walk as well.
9         (uninit_analysis::init_use_preds): Remove premature early exit.
11 2022-09-06  Max Filippov  <jcmvbkbc@gmail.com>
13         * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
15 2022-09-06  Aldy Hernandez  <aldyh@redhat.com>
17         * range-op-float.cc (build_le): Handle NANs and going past infinity.
18         (build_lt): Same.
19         (build_ge): Same.
20         (build_gt): Same.
21         (foperator_lt::op1_range): Avoid adjustments to range if build_*
22         returned false.
23         (foperator_lt::op2_range): Same.
24         (foperator_le::op1_range): Same.
25         (foperator_le::op2_range): Same.
26         (foperator_gt::op1_range): Same.
27         (foperator_gt::op2_range): Same.
29 2022-09-06  Richard Biener  <rguenther@suse.de>
31         * gimple-predicate-analysis.cc (compute_control_dep_chain):
32         Add output flag to indicate whether we possibly have dropped
33         any chains.  Return whether the info is complete from the
34         wrapping overload.
35         (uninit_analysis::init_use_preds): Adjust accordingly, with
36         a workaround for PR106754.
37         (uninit_analysis::init_from_phi_def): Properly guard the
38         case where we complete an empty chain.
40 2022-09-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
42         * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
44 2022-09-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
46         * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
47         type with same element type as arg0, and length as op2.
49 2022-09-06  Richard Biener  <rguenther@suse.de>
51         PR tree-optimization/106844
52         * gimple-predicate-analysis.cc (compute_control_dep_chain):
53         Return whether we found a chain.
55 2022-09-06  Richard Biener  <rguenther@suse.de>
57         PR tree-optimization/106841
58         * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
59         scatter/gather offset.
61 2022-09-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
63         * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
65 2022-09-06  Jakub Jelinek  <jakub@redhat.com>
67         * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
68         (gimple_omp_subcode):  Use GIMPLE_OMP_ORDERED instead of
69         GIMPLE_OMP_TEAMS as upper bound.
70         (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
71         inline functions.
72         * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
73         NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
74         (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
75         with NULL OMP_ORDERED_BODY.
76         * omp-low.cc (check_omp_nesting_restrictions): Use
77         gimple_omp_ordered_standalone_p test instead of
78         omp_find_clause (..., OMP_CLAUSE_DOACROSS).
79         (lower_omp_ordered): Likewise.
80         * omp-expand.cc (expand_omp, build_omp_regions_1,
81         omp_make_gimple_edges): Likewise.
83 2022-09-06  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
85         * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
86         (cskyv2_addcc_invert): Likewise.
88 2022-09-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
90         * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
91         `insn'.
92         (bpf_expand_epilogue): Likewise.
94 2022-09-06  liuhongt  <hongtao.liu@intel.com>
96         * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
97         Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
98         * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
99         (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
100         (avx512f_vcvtps2ph512_mask_sae): New expander
102 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
104         * gimple-range-fold.cc
105         (fold_using_range::range_of_builtin_int_call): Ignore sign bit
106         when there's the possibility of a NAN.
108 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
110         * gimple-range-fold.cc
111         (fold_using_range::range_of_builtin_int_call): Fold a set signbit
112         in __builtin_signbit to nonzero.
114 2022-09-05  Alexander Monakov  <amonakov@ispras.ru>
116         PR target/106453
117         * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
118         bits of operand 0 are consumed, and the result is zero-extended
119         to 64 bits.
121 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
123         PR middle-end/106831
124         * value-range.h (frange::supports_p): Disable decimal floats.
125         * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
126         check.
127         (frange_drop_ninf): Same.
129 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
131         PR middle-end/106824
132         * value-range.cc (frange::set_nan): Set undefined when updating a
133         NAN to a non-NAN.
135 2022-09-05  Kito Cheng  <kito.cheng@sifive.com>
137         * config/riscv/riscv.cc (riscv_option_override): Fix wrong
138         condition for MASK_DIV and simplify incompatible checking.
139         * config/riscv/riscv.md (muldi3): Adding parentheses.
141 2022-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
143         * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
144         string is a valid -mcpu string and emit hint.
146 2022-09-05  LiaoShihua  <shihua@iscas.ac.cn>
148         * common/config/riscv/riscv-common.cc: Add Zmmul.
149         * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
150         (TARGET_ZMMUL): Ditto.
151         * config/riscv/riscv.cc (riscv_option_override):Ditto.
152         * config/riscv/riscv.md: Add Zmmul
153         * config/riscv/riscv.opt: Ditto.
155 2022-09-05  Richard Biener  <rguenther@suse.de>
157         * tree-cfg.h (get_cases_for_edge): Declare.
158         * tree-cfg.cc (get_cases_for_edge): Export.
159         * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
160         Start and end recording case labels.
161         * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
162         (predicate::init_from_control_deps): Use get_cases_for_edge.
164 2022-09-05  Richard Biener  <rguenther@suse.de>
166         * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
167         (compute_control_dep_chain): Move uninit-control-dep-attempts
168         checking where it also counts the post-dominator check
169         invocations.
171 2022-09-05  Richard Biener  <rguenther@suse.de>
173         * gimple-predicate-analysis.h (predicate::debug): New.
174         (predicate::dump): Add FILE * argument, add base overload.
175         * gimple-predicate-analysis.cc (debug): New.
176         (dump_pred_info): Add FILE * argument.
177         (dump_pred_chain): Likewise.
178         (predicate::dump): Split out preamble into overload.  Add
179         FILE * argument.
180         (predicate::debug): New.
181         (predicate::simplify): Adjust.
182         (predicate::normalize): Likewise.
183         (predicate::init_from_control_deps): Likewise.
185 2022-09-05  Richard Sandiford  <richard.sandiford@arm.com>
187         * config/aarch64/aarch64-protos.h
188         (aarch64_init_simd_builtins): Remove prototype.
189         * config/aarch64/aarch64-builtins.cc
190         (aarch64_simd_builtins_initialized_p): Delete.
191         (aarch64_init_simd_builtins): Make static.  Remove protection
192         against multiple calls.
193         * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
194         lazy SIMD builtin initialization.
195         * config/aarch64/aarch64.cc
196         (aarch64_option_valid_attribute_p): Likewise.
198 2022-09-05  Xi Ruoyao  <xry111@xry111.site>
200         * config/loongarch/genopts/loongarch.opt.in: Add
201         -mdirect-extern-access option.
202         * config/loongarch/loongarch.opt: Regenerate.
203         * config/loongarch/loongarch.cc
204         (loongarch_symbol_binds_local_p): Return true if
205         TARGET_DIRECT_EXTERN_ACCESS.
206         (loongarch_option_override_internal): Complain if
207         -mdirect-extern-access is used with -fPIC or -fpic.
208         * doc/invoke.texi: Document -mdirect-extern-access for
209         LoongArch.
211 2022-09-05  Martin Liska  <mliska@suse.cz>
213         * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
214           DEBUGGER_REGNO.
215         * doc/tm.texi: Regenerate.
217 2022-09-05  Martin Liska  <mliska@suse.cz>
219         * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
220         Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
221         (aarch64_debugger_regno): Likewise.
222         * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
223         (aarch64_debugger_regno): Likewise.
224         * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
225         (DEBUGGER_REGNO): Likewise.
226         (DWARF_FRAME_REGNUM): Likewise.
227         * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
228         * config/arc/arc.cc (arc_init_reg_tables): Likewise.
229         * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
230         (DEBUGGER_REGNO): Likewise.
231         * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
232         (arm_debugger_regno): Likewise.
233         * config/arm/arm.cc (arm_dbx_regno): Likewise.
234         (arm_debugger_regno): Likewise.
235         * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
236         (DEBUGGER_REGNO): Likewise.
237         * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
238         (DEBUGGER_REGNO): Likewise.
239         * config/c6x/c6x.cc: Likewise.
240         * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
241         (DEBUGGER_REGNO): Likewise.
242         * config/cris/cris.h (enum reg_class): Likewise.
243         (DBX_REGISTER_NUMBER): Likewise.
244         (DEBUGGER_REGNO): Likewise.
245         * config/csky/csky.cc (enum reg_class): Likewise.
246         * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
247         (DBX_REGISTER_NUMBER): Likewise.
248         (DEBUGGER_REGNO): Likewise.
249         * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
250         (DEBUGGER_REGNO): Likewise.
251         * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
252         (DEBUGGER_REGNO): Likewise.
253         * config/gcn/gcn.cc (print_operand): Likewise.
254         * config/i386/bsd.h (ASM_QUAD): Likewise.
255         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
256         (DEBUGGER_REGNO): Likewise.
257         (DWARF_FRAME_REGNUM): Likewise.
258         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
259         (DEBUGGER_REGNO): Likewise.
260         * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
261         (DEBUGGER_REGNO): Likewise.
262         * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
263         (DEBUGGER_REGNO): Likewise.
264         * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
265         (DEBUGGER_REGNO): Likewise.
266         * config/i386/gas.h: Likewise.
267         * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
268         (DEBUGGER_REGNO): Likewise.
269         * config/i386/i386.cc (enum reg_class): Likewise.
270         * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
271         (DEBUGGER_REGNO): Likewise.
272         * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
273         (DEBUGGER_REGNO): Likewise.
274         * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
275         (DEBUGGER_REGNO): Likewise.
276         * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
277         (DEBUGGER_REGNO): Likewise.
278         * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
279         (DEBUGGER_REGNO): Likewise.
280         * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
281         (DEBUGGER_REGNO): Likewise.
282         * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
283         (DEBUGGER_REGNO): Likewise.
284         * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
285         (DEBUGGER_REGNO): Likewise.
286         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
287         (DEBUGGER_REGNO): Likewise.
288         * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
289         (DEBUGGER_REGNO): Likewise.
290         * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
291         (ia64_debugger_regno): Likewise.
292         * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
293         (ia64_dbx_regno): Likewise.
294         (ia64_debugger_regno): Likewise.
295         (process_cfa_adjust_cfa): Likewise.
296         (process_cfa_register): Likewise.
297         (ia64_asm_unwind_emit): Likewise.
298         * config/ia64/ia64.h: Likewise.
299         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
300         (DEBUGGER_REGNO): Likewise.
301         * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
302         (DEBUGGER_REGNO): Likewise.
303         * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
304         * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
305         (DEBUGGER_REGNO): Likewise.
306         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
307         (DEBUGGER_REGNO): Likewise.
308         * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
309         (DEBUGGER_REGNO): Likewise.
310         (__transfer_from_trampoline): Likewise.
311         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
312         (DEBUGGER_REGNO): Likewise.
313         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
314         (DBX_REGISTER_NUMBER): Likewise.
315         (DEBUGGER_REGNO): Likewise.
316         * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
317         * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
318         (DEBUGGER_REGNO): Likewise.
319         (GP_DBX_FIRST): Likewise.
320         (GP_DEBUGGER_FIRST): Likewise.
321         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
322         (DEBUGGER_REGNO): Likewise.
323         * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
324         (mmix_debugger_regno): Likewise.
325         * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
326         (mmix_debugger_regno): Likewise.
327         * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
328         (DEBUGGER_REGNO): Likewise.
329         * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
330         (nds32_debugger_regno): Likewise.
331         * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
332         (nds32_debugger_regno): Likewise.
333         (nds32_use_blocks_for_constant_p): Likewise.
334         * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
335         (DEBUGGER_REGNO): Likewise.
336         * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
337         (DEBUGGER_REGNO): Likewise.
338         * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
339         (DEBUGGER_REGNO): Likewise.
340         * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
341         (DEBUGGER_REGNO): Likewise.
342         * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
343         (DEBUGGER_REGNO): Likewise.
344         * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
345         (rs6000_debugger_regno): Likewise.
346         * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
347         (rs6000_debugger_regno): Likewise.
348         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
349         (DEBUGGER_REGNO): Likewise.
350         (DWARF2_FRAME_REG_OUT): Likewise.
351         * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
352         (DEBUGGER_REGNO): Likewise.
353         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
354         (DEBUGGER_REGNO): Likewise.
355         * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
356         (DEBUGGER_REGNO): Likewise.
357         * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
358         (DEBUGGER_REGNO): Likewise.
359         (SH_DBX_REGISTER_NUMBER): Likewise.
360         (SH_DEBUGGER_REGNO): Likewise.
361         * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
362         (DEBUGGER_REGNO): Likewise.
363         * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
364         (DEBUGGER_REGNO): Likewise.
365         * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
366         (DEBUGGER_REGNO): Likewise.
367         * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
368         (DEBUGGER_REGNO): Likewise.
369         * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
370         (xtensa_debugger_regno): Likewise.
371         * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
372         (xtensa_debugger_regno): Likewise.
373         * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
374         (DEBUGGER_REGNO): Likewise.
375         * defaults.h (DBX_REGISTER_NUMBER): Likewise.
376         (DEBUGGER_REGNO): Likewise.
377         (DWARF_FRAME_REGNUM): Likewise.
378         * doc/tm.texi: Likewise.
379         * doc/tm.texi.in: Likewise.
380         * dwarf2out.cc (dbx_reg_number): Likewise.
381         (debugger_reg_number): Likewise.
382         (reg_loc_descriptor): Likewise.
383         (multiple_reg_loc_descriptor): Likewise.
384         (mem_loc_descriptor): Likewise.
385         * except.cc: Likewise.
387 2022-09-05  konglin1  <lingling.kong@intel.com>
389         PR target/106742
390         * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
391         Handle V8BF mode.
392         (expand_vec_perm_broadcast_1): Ditto.
393         * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
394         (vec_set<mode>_0): Add @ to it.
395         (@vec_set<mode>_0): Ditto.
396         (vec_interleave_high<mode><mask_name>): Ditto.
397         (@vec_interleave_high<mode><mask_name>): Ditto.
398         (vec_interleave_low<mode><mask_name>): Ditto.
399         (@vec_interleave_low<mode><mask_name>): Ditto.
400         * config/i386/subst.md (SUBST_V): Add BF vector mode.
402 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
404         * value-range.cc (early_nan_resolve): Remove.
405         (frange::intersect): Handle NANs.
407 2022-09-04  Aldy Hernandez  <aldyh@redhat.com>
409         * value-range.cc (frange::union_): Do not drop properties when
410         unioning a NAN with something else.
411         (range_tests_signed_zeros): Add tests.
413 2022-09-04  Aldy Hernandez  <aldyh@redhat.com>
415         * real.cc (encode_ieee_single): Use real_isdenormal.
416         (encode_ieee_double): Same.
417         (encode_ieee_extended): Same.
418         (encode_ieee_quad): Same.
419         (encode_ieee_half): Same.
420         (encode_arm_bfloat_half): Same.
421         * real.h (real_isdenormal): New.
423 2022-09-03  Aldy Hernandez  <aldyh@redhat.com>
425         * value-range.cc (frange::singleton_p): Move NAN check to the top.
427 2022-09-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
429         * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
431 2022-09-03  Jakub Jelinek  <jakub@redhat.com>
433         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
434         (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
435         and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
436         (enum omp_clause_doacross_kind): New type.
437         (struct tree_omp_clause): Add subcode.doacross_kind member.
438         * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
439         (OMP_CLAUSE_DOACROSS_KIND): Define.
440         (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
441         (OMP_CLAUSE_DOACROSS_DEPEND): Define.
442         (OMP_CLAUSE_ORDERED_DOACROSS): Define.
443         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
444         OMP_CLAUSE_DOACROSS entries.
445         * tree-nested.cc (convert_nonlocal_omp_clauses,
446         convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
447         * tree-pretty-print.cc (dump_omp_clause): Don't handle
448         OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.  Handle
449         OMP_CLAUSE_DOACROSS.
450         * gimplify.cc (gimplify_omp_depend): Don't handle
451         OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
452         (gimplify_scan_omp_clauses): Likewise.  Handle OMP_CLAUSE_DOACROSS.
453         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
454         (find_standalone_omp_ordered): New function.
455         (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
456         body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
457         set OMP_CLAUSE_ORDERED_DOACROSS.
458         (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
459         OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
460         diagnostics that presence or absence of ordered clause parameter
461         is irrelevant.  Handle doacross(sink:omp_cur_iteration-1).  Use
462         actual user name of the clause - doacross or depend - in diagnostics.
463         * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
464         if !OMP_CLAUSE_ORDERED_DOACROSS (t).  If
465         OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
466         set fd->ordered to -1 and set it after the loop in that case to
467         fd->collapse.
468         * omp-low.cc (check_omp_nesting_restrictions): Don't handle
469         OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
470         OMP_CLAUSE_DOACROSS.  Use actual user name of the clause - doacross
471         or depend - in diagnostics.  Diagnose mixing of stand-alone and
472         block associated ordered constructs binding to the same loop.
473         (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
474         instead handle OMP_CLAUSE_DOACROSS.
475         (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
476         OMP_CLAUSE_DEPEND.
477         (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
478         OMP_CLAUSE_DEPEND_SINK.
479         * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
480         doacross(sink:omp_cur_iteration-1).
481         (expand_omp_ordered_source_sink): Use
482         OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
483         OMP_CLAUSE_DEPEND_SINK_NEGATIVE.  Use actual user name of the clause
484         - doacross or depend - in diagnostics.
485         (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
486         OMP_CLAUSE_DEPEND.
487         (build_omp_regions_1): Likewise.
488         (omp_make_gimple_edges): Likewise.
489         * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
490         * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
491         * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
493 2022-09-02  David Malcolm  <dmalcolm@redhat.com>
495         PR c/90885
496         * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
498 2022-09-02  Iain Buclaw  <ibuclaw@gdcproject.org>
500         PR d/105659
501         * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
502         * config/aarch64/aarch64-d.cc: Include tm_d.h.
503         * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
504         config/aarch64/aarch64-d.h.
505         (aarch64_d_register_target_info): Likewise.
506         * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
507         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
508         * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
509         tm_p.h.
510         * config/arm/arm-protos.h (arm_d_target_versions): Move to
511         config/arm/arm-d.h.
512         (arm_d_register_target_info): Likewise.
513         * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
514         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
515         * config/default-d.cc: Remove memmodel.h include.
516         * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
517         * config/glibc-d.cc: Likewise.
518         * config/i386/i386-d.cc: Include tm_d.h.
519         * config/i386/i386-protos.h (ix86_d_target_versions): Move to
520         config/i386/i386-d.h.
521         (ix86_d_register_target_info): Likewise.
522         (ix86_d_has_stdcall_convention): Likewise.
523         * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
524         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
525         (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
526         * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
527         * config/mips/mips-d.cc: Include tm_d.h.
528         * config/mips/mips-protos.h (mips_d_target_versions): Move to
529         config/mips/mips-d.h.
530         (mips_d_register_target_info): Likewise.
531         * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
532         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
533         * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
534         * config/openbsd-d.cc: Likewise.
535         * config/pa/pa-d.cc: Include tm_d.h.
536         * config/pa/pa-protos.h (pa_d_target_versions): Move to
537         config/pa/pa-d.h.
538         (pa_d_register_target_info): Likewise.
539         * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
540         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
541         * config/riscv/riscv-d.cc: Include tm_d.h.
542         * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
543         config/riscv/riscv-d.h.
544         (riscv_d_register_target_info): Likewise.
545         * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
546         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
547         * config/rs6000/rs6000-d.cc: Include tm_d.h.
548         * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
549         config/rs6000/rs6000-d.h.
550         (rs6000_d_register_target_info): Likewise.
551         * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
552         (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
553         * config/s390/s390-d.cc: Include tm_d.h.
554         * config/s390/s390-protos.h (s390_d_target_versions): Move to
555         config/s390/s390-d.h.
556         (s390_d_register_target_info): Likewise.
557         * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
558         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
559         * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
560         * config/sparc/sparc-d.cc: Include tm_d.h.
561         * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
562         config/sparc/sparc-d.h.
563         (sparc_d_register_target_info): Likewise.
564         * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
565         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
566         * configure: Regenerate.
567         * configure.ac (tm_d_file): Remove defaults.h.
568         (tm_d_include_list): Remove options.h and insn-constants.h.
569         * config/aarch64/aarch64-d.h: New file.
570         * config/arm/arm-d.h: New file.
571         * config/i386/i386-d.h: New file.
572         * config/mips/mips-d.h: New file.
573         * config/pa/pa-d.h: New file.
574         * config/riscv/riscv-d.h: New file.
575         * config/rs6000/rs6000-d.h: New file.
576         * config/s390/s390-d.h: New file.
577         * config/sparc/sparc-d.h: New file.
579 2022-09-02  Aldy Hernandez  <aldyh@redhat.com>
581         * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
582         (fold_builtin_fpclassify): Same.
583         * fold-const-call.cc (fold_const_call_cc): Same.
584         * match.pd: Same.
585         * omp-low.cc (omp_reduction_init_op): Same.
586         * realmpfr.cc (real_from_mpfr): Same.
587         * tree.cc (build_complex_inf): Same.
589 2022-09-02  Peter Bergner  <bergner@linux.ibm.com>
591         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
592         NOP_EXPR for MMA pointer casting.
594 2022-09-02  Richard Sandiford  <richard.sandiford@arm.com>
596         * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
597         Reduce the fallback cost to 1.  Only use it if the number of
598         input lanes is equal to the number of output lanes.
600 2022-09-02  Richard Sandiford  <richard.sandiford@arm.com>
602         PR tree-optimization/106787
603         * tree-vect-slp.cc (vect_map_to_instance): New function, split out
604         from...
605         (vect_bb_partition_graph_r): ...here.  Replace the visited set
606         with a map from nodes to instances.  Ensure that a node only
607         appears in one partition.
608         (vect_bb_partition_graph): Update accordingly.
610 2022-09-02  Richard Biener  <rguenther@suse.de>
612         * timevar.def (TV_TREE_RPO_VN): New.
613         * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
614         * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
615         (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
616         (pass_fre::execute): Adjust.
617         * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
619 2022-09-02  Richard Biener  <rguenther@suse.de>
621         PR tree-optimization/106809
622         * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
623         more than one successor before doing extra work.
625 2022-09-02  Kito Cheng  <kito.cheng@sifive.com>
627         * common/config/riscv/riscv-common.cc: Include <vector>.
628         (struct riscv_multi_lib_info_t): New.
629         (riscv_subset_list::match_score): Ditto.
630         (find_last_appear_switch): Ditto.
631         (prefixed_with): Ditto.
632         (struct multi_lib_info_t): Ditto.
633         (riscv_current_arch_str): Ditto.
634         (riscv_current_abi_str): Ditto.
635         (riscv_multi_lib_info_t::parse): Ditto.
636         (riscv_check_cond): Ditto.
637         (riscv_check_conds): Ditto.
638         (riscv_compute_multilib): Ditto.
639         (TARGET_COMPUTE_MULTILIB): Defined.
640         * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
641         doing link.
642         (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
643         * config/riscv/riscv.h (riscv_multi_lib_check): New.
644         (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
645         * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
647 2022-09-02  Kito Cheng  <kito.cheng@sifive.com>
649         * common/common-target.def (compute_multilib): New.
650         * common/common-targhooks.h (default_compute_multilib): New.
651         * common/common-targhooks.cc (default_compute_multilib): New.
652         * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
653         * doc/tm.texi: Regen.
654         * gcc.cc: Include common/common-target.h.
655         (set_multilib_dir) Call targetm_common.compute_multilib.
656         (SWITCH_LIVE): Move to opts.h.
657         (SWITCH_FALSE): Ditto.
658         (SWITCH_IGNORE): Ditto.
659         (SWITCH_IGNORE_PERMANENTLY): Ditto.
660         (SWITCH_KEEP_FOR_GCC): Ditto.
661         (struct switchstr): Ditto.
662         * opts.h (SWITCH_LIVE): Move from gcc.c.
663         (SWITCH_FALSE): Ditto.
664         (SWITCH_IGNORE): Ditto.
665         (SWITCH_IGNORE_PERMANENTLY): Ditto.
666         (SWITCH_KEEP_FOR_GCC): Ditto.
667         (struct switchstr): Ditto.
669 2022-09-02  Martin Liska  <mliska@suse.cz>
671         * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
672         debugging format.
674 2022-09-02  Martin Liska  <mliska@suse.cz>
676         * Makefile.in: Remove -gstabs option support, DBX-related
677           macros and DBX debugging info support.
678         * collect2.cc (scan_prog_file): Likewise.
679         * common.opt: Likewise.
680         * config.gcc: Likewise.
681         * config.in: Likewise.
682         * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
683         * config/alpha/alpha.cc: Likewise.
684         * config/alpha/elf.h (ASM_SPEC): Likewise.
685         * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
686         (DBX_CONTIN_LENGTH): Likewise.
687         * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
688         (DBX_CONTIN_LENGTH): Likewise.
689         * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
690         * config/darwin.h (DSYMUTIL_SPEC): Likewise.
691         (ASM_DEBUG_SPEC): Likewise.
692         (DBX_DEBUGGING_INFO): Likewise.
693         (DBX_USE_BINCL): Likewise.
694         (DBX_CONTIN_LENGTH): Likewise.
695         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
696         * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
697         (DBX_CONTIN_LENGTH): Likewise.
698         * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
699         (DBX_CONTIN_LENGTH): Likewise.
700         * config/i386/gas.h (DBX_NO_XREFS): Likewise.
701         (DBX_CONTIN_LENGTH): Likewise.
702         * config/ia64/ia64.h: Likewise.
703         * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
704         * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
705         * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
706         (DBX_CONTIN_LENGTH): Likewise.
707         (DBX_CONTIN_CHAR): Likewise.
708         * config/mips/mips.cc (mips_output_filename): Likewise.
709         (mips_option_override): Likewise.
710         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
711         (DBX_DEBUGGING_INFO): Likewise.
712         (DBX_CONTIN_LENGTH): Likewise.
713         (DBX_REGISTER_NUMBER): Likewise.
714         (GP_DBX_FIRST): Likewise.
715         (FP_DBX_FIRST): Likewise.
716         (MD_DBX_FIRST): Likewise.
717         * config/nvptx/nvptx.cc: Likewise.
718         * config/openbsd.h (DBX_NO_XREFS): Likewise.
719         * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
720         * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
721         (DBX_CONTIN_LENGTH): Likewise.
722         * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
723         (DBX_USE_BINCL): Likewise.
724         (DBX_LINES_FUNCTION_RELATIVE): Likewise.
725         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
726         * config/pdp11/pdp11.cc: Likewise.
727         * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
728         (PREFERRED_DEBUGGING_TYPE): Likewise.
729         (DBX_CONTIN_LENGTH): Likewise.
730         * config/rs6000/rs6000-builtin.cc: Likewise.
731         * config/rs6000/rs6000-call.cc: Likewise.
732         * config/rs6000/rs6000-logue.cc (defined): Likewise.
733         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
734         (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
735         (rs6000_xcoff_declare_function_name): Likewise.
736         * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
737         (DBX_FUNCTION_FIRST): Likewise.
738         * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
739         * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
740         * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
741         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
742         * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
743         * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
744         * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
745         * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
746         * config/vax/vax.cc (vax_file_start): Likewise.
747         * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
748         (DBX_CONTIN_LENGTH): Likewise.
749         (DBX_CONTIN_CHAR): Likewise.
750         (DBX_NO_XREFS): Likewise.
751         (DBX_STATIC_STAB_DATA_SECTION): Likewise.
752         * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
753         (XCOFF_DEBUGGING_INFO): Likewise.
754         * configure: Regenerate. Likewise.
755         * configure.ac: Likewise.
756         * debug.h: Likewise.
757         * doc/install.texi: Likewise.
758         * doc/invoke.texi: Likewise.
759         * doc/passes.texi: Likewise.
760         * doc/tm.texi: Likewise.
761         * doc/tm.texi.in: Likewise.
762         * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
763         (dw2_asm_output_nstring): Likewise.
764         (USE_LINKONCE_INDIRECT): Likewise.
765         * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
766         (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
767         (output_fde): Likewise.
768         (output_call_frame_info): Likewise.
769         (have_macinfo): Likewise.
770         (add_AT_loc_list): Likewise.
771         (add_AT_view_list): Likewise.
772         (output_compilation_unit_header): Likewise.
773         (output_pubnames): Likewise.
774         (output_aranges): Likewise.
775         (output_line_info): Likewise.
776         (output_macinfo): Likewise.
777         (dwarf2out_finish): Likewise.
778         (dwarf2out_early_finish): Likewise.
779         * final.cc (final_scan_insn_1): Likewise.
780         (rest_of_handle_final): Likewise.
781         * flag-types.h (enum debug_info_type): Likewise.
782         (DBX_DEBUG): Likewise.
783         (XCOFF_DEBUG): Likewise.
784         * function.cc (defined): Likewise.
785         * gcc.cc (defined): Likewise.
786         (ASM_DEBUG_SPEC): Likewise.
787         (ASM_DEBUG_OPTION_SPEC): Likewise.
788         * opts.cc (common_handle_option): Likewise.
789         (set_debug_level): Likewise.
790         * system.h (fancy_abort): Likewise.
791         * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
792         (TARGET_ASM_DESTRUCTOR): Likewise.
793         * toplev.cc (defined): Likewise.
794         * varasm.cc: Likewise.
795         * config/dbxcoff.h: Removed.
796         * config/dbxelf.h: Removed.
797         * dbxout.cc: Removed.
798         * dbxout.h: Removed.
799         * gstab.h: Removed.
800         * stab.def: Removed.
801         * xcoffout.cc: Removed.
802         * xcoffout.h: Removed.
804 2022-09-02  Simon Rainer  <gcc.gnu@vvalter.com>
806         PR ipa/106627
807         * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
808         Set TREE_NOTHROW correctly for dispatcher declaration.
809         * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
810         Likewise.
812 2022-09-01  Tamar Christina  <tamar.christina@arm.com>
814         PR other/106782
815         * config/aarch64/aarch64.cc
816         (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
817         HOST_WIDE_INT_PRINT_UNSIGNED.
819 2022-09-01  Richard Sandiford  <richard.sandiford@arm.com>
821         * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
822         VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
823         to the number of vector elements, if that's a known constant.
824         (vect_optimize_slp_pass::is_compatible_layout): Remove associated
825         comment about zero SLP_TREE_LANES.
826         (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
827         all partition members when looking for potential layouts.
828         Handle existing permutes of fixed-length vectors.
830 2022-09-01  Uroš Bizjak  <ubizjak@gmail.com>
832         PR target/106707
833         * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
834         Do not convert a move pattern where both operands are AX_REG.
836 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
838         * range-op-float.cc (build_le): Convert to dconst*inf.
839         (build_ge): Same.
840         * value-range.cc (frange::set_signbit): Same.
841         (frange::normalize_kind): Same.
842         (range_tests_floats): Same.
843         * value-range.h (vrp_val_max): Same.
844         (vrp_val_min): Same.
845         (frange::set_varying): Same.
847 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
849         * emit-rtl.cc (init_emit_once): Initialize dconstinf and
850         dconstninf.
851         * real.h: Add dconstinf and dconstninf.
853 2022-09-01  Richard Biener  <rguenther@suse.de>
855         * gimple-predicate-analysis.cc (compute_control_dep_chain):
856         Remove cycle detection, instead avoid walking backedges.
858 2022-09-01  Richard Biener  <rguenther@suse.de>
860         * gimple-predicate-analysis.cc (compute_control_dep_chain):
861         New wrapping overload.
862         (uninit_analysis::init_use_preds): Simplify.
863         (uninit_analysis::init_from_phi_def): Likewise.
865 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
867         * gimple-range-fold.cc
868         (fold_using_range::range_of_builtin_int_call): Add case for
869         CFN_BUILT_IN_SIGNBIT.
871 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
873         * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
874         bit.
875         (foperator_not_equal::op1_range): Same.
876         * value-query.cc (range_query::get_tree_range): Set sign bit.
877         * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
878         * value-range.cc (frange::set_signbit): New.
879         (frange::set): Adjust for sign bit.
880         (frange::normalize_kind): Same.
881         (frange::union_): Remove useless comment.
882         (frange::intersect): Same.
883         (frange::contains_p): Adjust for sign bit.
884         (frange::singleton_p): Same.
885         (frange::verify_range): Same.
886         (range_tests_signbit): New tests.
887         (range_tests_floats): Call range_tests_signbit.
888         * value-range.h (class frange_props): Add signbit
889         (class frange): Same.
891 2022-09-01  Jakub Jelinek  <jakub@redhat.com>
893         PR other/106782
894         * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
895         instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
896         * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
897         derived types of gimple to gimple * to avoid -Wformat warnings.
898         * tree-vect-loop-manip.cc (vect_set_loop_condition,
899         vect_update_ivs_after_vectorizer): Likewise.
900         * tree-vect-stmts.cc (vectorizable_load): Likewise.
901         * tree-vect-patterns.cc (vect_split_statement,
902         vect_recog_mulhs_pattern, vect_recog_average_pattern,
903         vect_determine_precisions_from_range,
904         vect_determine_precisions_from_users): Likewise.
905         * gimple-loop-versioning.cc
906         (loop_versioning::analyze_term_using_scevs): Likewise.
907         * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
908         (vect_build_slp_tree): Cast slp_tree to void * to avoid
909         -Wformat warnings.
910         (optimize_load_redistribution_1, vect_match_slp_patterns,
911         vect_build_slp_instance, vect_optimize_slp_pass::materialize,
912         vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
913         vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
914         (vect_print_slp_tree): Likewise.  Also use
915         HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
916         * tree-vect-loop.cc (vect_determine_vectorization_factor,
917         vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
918         vectorizable_induction, vect_transform_loop): Cast pointers to derived
919         types of gimple to gimple * to avoid -Wformat warnings.
920         (vect_analyze_loop_2): Cast slp_tree to void * to avoid
921         -Wformat warnings.
922         (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
923         instead of %d.
924         * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
925         instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
926         instead of SLP_TREE_DEF_TYPE (node).
928 2022-09-01  Jakub Jelinek  <jakub@redhat.com>
930         PR c++/106655
931         * doc/invoke.texi (-Winvalid-utf8): Document it.
933 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
935         PR tree-optimization/106785
936         * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
937         (range_tests_floats): Same.
939 2022-09-01  konglin1  <lingling.kong@intel.com>
941         * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
942         recognition.
944 2022-09-01  Peter Bergner  <bergner@linux.ibm.com>
946         PR target/101322
947         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
948         Enforce the use of a valid MMA pointer type.
950 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
952         * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
953         registers.
955 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
957         * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
958         (riscv_output_move): Add csrr vlenb assembly.
959         * config/riscv/riscv.md (move_type): Add csrr vlenb type.
960         (ext): New attribute.
961         (ext_enabled): Ditto.
962         (enabled): Ditto.
964 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
966         * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
967         "vr" constraint.
968         (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
969         (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
970         (vp): Add poly constraint.
972 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
974         * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
976 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
978         * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
979         configuration according to TARGET_MIN_VLEN.
980         * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
982 2022-08-31  Martin Liska  <mliska@suse.cz>
984         * config.build: Remove deprecated ports.
985         * config.gcc: Likewise.
986         * config.host: Likewise.
987         * configure.ac: Likewise.
988         * configure: Regenerate.
989         * config/pa/pa-hpux10.h: Removed.
990         * config/pa/pa-hpux10.opt: Removed.
991         * config/pa/t-dce-thr: Removed.
993 2022-08-31  Martin Liska  <mliska@suse.cz>
995         * Makefile.in: Always install limits.h and syslimits.h to
996         include folder.
997         * configure.ac: Assign STMP_FIXINC blank if
998         --disable-fixincludes is used.
999         * configure: Regenerate.
1001 2022-08-31  Richard Biener  <rguenther@suse.de>
1003         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
1004         Assert the guard_bb isn't empty and has more than one successor.
1005         Drop appropriate parts of the predicate when an edge fails to
1006         register a predicate.
1007         (predicate::dump): Dump empty predicate as TRUE.
1009 2022-08-31  Richard Biener  <rguenther@suse.de>
1011         PR tree-optimization/90994
1012         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
1013         Ignore exceptional control flow and skip the edge for the purpose of
1014         predicate generation also for non-calls.
1016 2022-08-31  Aldy Hernandez  <aldyh@redhat.com>
1018         * value-range-storage.cc (frange_storage_slot::set_frange): Save
1019         endpoints.
1020         (frange_storage_slot::get_frange): Restore endpoints.
1021         * value-range-storage.h (class frange_storage_slot): Add endpoint
1022         fields.
1024 2022-08-31  Martin Liska  <mliska@suse.cz>
1026         PR tree-optimization/106789
1027         * range-op-float.cc (default_frelop_fold_range): Remove the
1028           function.
1030 2022-08-31  Martin Liska  <mliska@suse.cz>
1032         * value-range.h: Add more override keywords.
1034 2022-08-31  Martin Liska  <mliska@suse.cz>
1036         * value-range.h: Add override.
1038 2022-08-31  Richard Biener  <rguenther@suse.de>
1040         PR tree-optimization/65244
1041         * gimple-predicate-analysis.h (predicate::init_from_control_deps):
1042         Add argument to specify whether the predicate is for the USE.
1043         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
1044         Also include predicates effective fallthru control edges when
1045         the predicate is for the USE.
1047 2022-08-31  Richard Biener  <rguenther@suse.de>
1049         PR tree-optimization/73550
1050         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
1051         Sanitize debug dumping.  Handle case labels with a CASE_HIGH.
1052         (predicate::dump): Adjust for better readability.
1054 2022-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1055             Jakub Jelinek  <jakub@redhat.com>
1057         * omp-simd-clone.cc (simd_clone_adjust_return_type,
1058         simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
1059         instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
1061 2022-08-31  Richard Sandiford  <richard.sandiford@arm.com>
1063         * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
1064         argument.
1066 2022-08-31  zhongjuzhe  <juzhe.zhong@rivai.ai>
1068         * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
1069         initialize const_vf to 0.
1071 2022-08-31  Martin Liska  <mliska@suse.cz>
1073         * config.gcc: Remove cr16.
1075 2022-08-30  Martin Jambor  <mjambor@suse.cz>
1077         * vec.h (array_slice): Add constructors for non-const reference to
1078         heap vector and pointers to heap vectors.
1080 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
1082         * value-range.cc (early_nan_resolve): Change comment.
1083         (frange::union_): Handle union when one side is a NAN.
1084         (range_tests_nan): Add tests for NAN union.
1086 2022-08-30  Andrew Stubbs  <ams@codesourcery.com>
1088         * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
1089         (gcn_simd_clone_adjust): New.
1090         (gcn_simd_clone_usable): New.
1091         (TARGET_SIMD_CLONE_ADJUST): New.
1092         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
1093         (TARGET_SIMD_CLONE_USABLE): New.
1095 2022-08-30  Andrew Stubbs  <ams@codesourcery.com>
1097         * doc/tm.texi: Regenerate.
1098         * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
1099         vecsize.
1100         (simd_clone_adjust_argument_types): Likewise.
1101         * target.def (compute_vecsize_and_simdlen): Document the new
1102         vecsize_int and vecsize_float semantics.
1104 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
1106         * expmed.cc (store_bit_field_1): Fix byte offset calculation
1107         for undefined structures.
1109 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
1111         * params.opt (-param=vect-max-layout-candidates=): New parameter.
1112         * doc/invoke.texi (vect-max-layout-candidates): Document it.
1113         * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
1114         (auto_load_permutation_t): Likewise.
1115         * tree-vect-slp.cc (vect_slp_node_weight): New function.
1116         (slpg_layout_cost): New class.
1117         (slpg_vertex): Replace perm_in and perm_out with partition,
1118         out_degree, weight and out_weight.
1119         (slpg_partition_info, slpg_partition_layout_costs): New classes.
1120         (vect_optimize_slp_pass): Likewise, cannibalizing some part of
1121         the previous vect_optimize_slp.
1122         (vect_optimize_slp): Use it.
1124 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
1126         * hash-traits.h (vec_hash_base): New class.
1127         (vec_free_hash_base): Likewise.
1129 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
1131         * hash-traits.h (int_hash_base): New struct, split out from...
1132         (int_hash): ...this class, which now inherits from int_hash_base.
1133         * hash-map-traits.h (unbounded_hashmap_traits): Take a template
1134         parameter for the key that provides hash and equality functions.
1135         (unbounded_int_hashmap_traits): Turn into a type alias of
1136         unbounded_hashmap_traits.
1138 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
1140         * graphds.cc (graphds_scc): Add a pass-back parameter for the
1141         final node order.
1142         * graphds.h (graphds_scc): Update prototype accordingly.
1144 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
1146         * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
1147         (vect_transform_slp_perm_load): ...here.  Use SLP_TREE_VECTYPE instead
1148         of STMT_VINFO_VECTYPE.
1150 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
1152         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
1153         (vectorizable_slp_permutation): ...here.
1155 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
1157         * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
1158         that the requested number of units is interoperable with the requested
1159         prevailing mode.
1161 2022-08-30  Martin Liska  <mliska@suse.cz>
1163         * config.gcc: Remove the port.
1164         * config/m32c/rtems.h: Removed.
1166 2022-08-30  Richard Biener  <rguenther@suse.de>
1168         PR tree-optimization/73550
1169         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
1170         Do not apply MAX_NUM_CHAINS again.
1172 2022-08-30  Richard Biener  <rguenther@suse.de>
1174         * gimple-predicate-analysis.cc (format_edge_vec): Dump
1175         both source and destination.
1176         (dump_dep_chains): Remove.
1177         (uninit_analysis::init_use_preds): Remove redundant
1178         dumping of chains.
1180 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
1182         * value-range-storage.cc (frange_storage_slot::get_frange): Use
1183         frange_nan.
1184         * value-range.cc (frange::set_nan): New.
1185         (frange_nan): Move to header file.
1186         (range_tests_nan): Adjust frange_nan callers to pass type.
1187         New test.
1188         * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
1189         (frange_nan): New.
1191 2022-08-30  Richard Biener  <rguenther@suse.de>
1193         PR tree-optimization/67196
1194         * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
1195         Simplify and normalize use prediates before first use.
1197 2022-08-30  Richard Biener  <rguenther@suse.de>
1199         * gimple-predicate-analysis.cc (dump_pred_chain): Fix
1200         parentizing and AND prepending.
1201         (predicate::dump): Do not dump the GENERIC expanded
1202         predicate, properly parentize and prepend ORs to the
1203         piecewise predicate dump.
1204         (build_pred_expr): Remove.
1206 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
1208         * range-op-float.cc (finite_operand_p): New.
1209         (build_le): New.
1210         (build_lt): New.
1211         (build_ge): New.
1212         (build_gt): New.
1213         (foperator_equal::fold_range): New implementation with endpoints.
1214         (foperator_equal::op1_range): Same.
1215         (foperator_not_equal::fold_range): Same.
1216         (foperator_not_equal::op1_range): Same.
1217         (foperator_lt::fold_range): Same.
1218         (foperator_lt::op1_range): Same.
1219         (foperator_lt::op2_range): Same.
1220         (foperator_le::fold_range): Same.
1221         (foperator_le::op1_range): Same.
1222         (foperator_le::op2_range): Same.
1223         (foperator_gt::fold_range): Same.
1224         (foperator_gt::op1_range): Same.
1225         (foperator_gt::op2_range): Same.
1226         (foperator_ge::fold_range): Same.
1227         (foperator_ge::op1_range): Same.
1228         (foperator_ge::op2_range): Same.
1230 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
1232         * range-op-float.cc (frange_set_nan): New.
1233         (frange_drop_inf): New.
1234         (frange_drop_ninf): New.
1235         (foperator_equal::op1_range): Adjust for endpoints.
1236         (foperator_lt::op1_range): Same.
1237         (foperator_lt::op2_range): Same.
1238         (foperator_gt::op1_range): Same.
1239         (foperator_gt::op2_range): Same.
1240         (foperator_unordered::op1_range): Same.
1241         * value-query.cc (range_query::get_tree_range): Same.
1242         * value-range-pretty-print.cc (vrange_printer::visit): Same.
1243         * value-range-storage.cc (frange_storage_slot::get_frange): Same.
1244         * value-range.cc (frange::set): Same.
1245         (frange::normalize_kind): Same.
1246         (frange::union_): Same.
1247         (frange::intersect): Same.
1248         (frange::operator=): Same.
1249         (early_nan_resolve): New.
1250         (frange::contains_p): New.
1251         (frange::singleton_p): New.
1252         (frange::set_nonzero): New.
1253         (frange::nonzero_p): New.
1254         (frange::set_zero): New.
1255         (frange::zero_p): New.
1256         (frange::set_nonnegative): New.
1257         (frange_float): New.
1258         (frange_nan): New.
1259         (range_tests_nan): New.
1260         (range_tests_signed_zeros): New.
1261         (range_tests_floats): New.
1262         (range_tests): New.
1263         * value-range.h (frange::lower_bound): New.
1264         (frange::upper_bound): New.
1265         (vrp_val_min): Use real_inf with a sign instead of negating inf.
1266         (frange::frange): New.
1267         (frange::set_varying): Adjust for endpoints.
1268         (real_max_representable): New.
1269         (real_min_representable): New.
1271 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
1273         * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
1274         for real zero.
1276 2022-08-30  Martin Liska  <mliska@suse.cz>
1278         * config/s390/s390.cc (s390_rtx_costs): Use proper type as
1279           argument.
1281 2022-08-30  Richard Biener  <rguenther@suse.de>
1283         * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
1284         the set of fallthru reachable blocks from function entry
1285         and use that to determine wlims.always_executed.
1287 2022-08-30  Richard Biener  <rguenther@suse.de>
1289         PR tree-optimization/56654
1290         * tree-ssa-uninit.cc (cand_cmp): New.
1291         (find_uninit_use): First process all PHIs and collect candidate
1292         stmts, then sort those after RPO.
1293         (warn_uninitialized_phi): Pass on bb_to_rpo.
1294         (execute_late_warn_uninitialized): Compute and pass on
1295         reverse lookup of RPO number from basic block index.
1297 2022-08-30  Richard Biener  <rguenther@suse.de>
1299         * gimple-predicate-analysis.h (uninit_analysis::operator()):
1300         Remove.
1301         * gimple-predicate-analysis.cc
1302         (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
1303         simplify a bit.
1304         * tree-ssa-uninit.cc (defined_args): New global.
1305         (compute_uninit_opnds_pos): Mask with the recorded set
1306         of guarded maybe-uninitialized uses.
1307         (uninit_undef_val_t::operator()): Remove.
1308         (find_uninit_use): Process all PHI uses, recording the
1309         guarded ones and marking the PHI result as uninitialized
1310         consistently.
1311         (warn_uninitialized_phi): Adjust.
1312         (execute_late_warn_uninitialized): Get rid of the PHI worklist
1313         and instead walk the function in RPO order.
1314         * spellcheck.h (best_match::m_best_candidate_len): Initialize.
1316 2022-08-30  Tamar Christina  <tamar.christina@arm.com>
1318         PR tree-optimization/106744
1319         * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
1321 2022-08-30  Tamar Christina  <tamar.christina@arm.com>
1323         * expmed.cc (store_bit_field_1): Initialize regnum to 0.
1325 2022-08-29  David Faust  <david.faust@oracle.com>
1327         PR target/106745
1328         * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
1329         computation of index for anonymous members.
1331 2022-08-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
1333         * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
1334         target macro.
1336 2022-08-29  H.J. Lu  <hjl.tools@gmail.com>
1338         PR target/106748
1339         * config/i386/i386-expand.cc
1340         (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
1341         * config/i386/sse.md (V_256H): Add V16BF.
1343 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
1345         * config/s390/s390.cc (s390_address_cost): Declare.
1346         (s390_hard_regno_nregs): Declare.
1347         (s390_rtx_costs): Add handling for REG and MEM in SET.
1349 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
1351         * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
1352         (is_reverse_perm_mask): New function.
1353         (expand_perm_with_rot): Recognize reverse pattern.
1354         (expand_perm_with_vstbrq): New function.
1355         (expand_perm_with_vster): Use vler/vster for element reversal on z15.
1356         (vectorize_vec_perm_const_1): Use.
1357         (s390_vectorize_vec_perm_const): Add expand functions.
1358         * config/s390/vx-builtins.md: Prefer vster over vler.
1360 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
1362         * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
1363         * config/s390/vector.md: Rewrite patterns to use vec_select.
1364         * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
1365         Likewise.
1367 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
1369         PR target/100869
1370         * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
1371         (rotl<mode>3_di): New pattern.
1372         * config/s390/vx-builtins.md: Use vpdi and verll for reversing
1373         elements.
1375 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
1377         * config/s390/s390.cc (s390_issue_rate): Add z15.
1379 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
1381         * common/config/s390/s390-common.cc: Enable -funroll-loops and
1382         -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
1383         * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
1384         loops larger than 12 instructions.
1385         (s390_override_options_after_change): Set unroll options.
1386         (s390_option_override_internal): Likewise.
1387         * config/s390/s390.opt: Document munroll-only-small-loops.
1389 2022-08-29  Richard Biener  <rguenther@suse.de>
1391         * gimple-predicate-analysis.cc (is_loop_exit,
1392         find_control_equiv_block): Inline into single caller ...
1393         (uninit_analysis::init_use_preds): ... here and refactor.
1395 2022-08-29  Richard Biener  <rguenther@suse.de>
1397         * gimple-predicate-analysis.cc (compute_control_dep_chain):
1398         Inline is_loop_exit and refactor, add comment about
1399         loop exits.
1401 2022-08-29  Kito Cheng  <kito.cheng@sifive.com>
1403         * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
1404         (riscv_frame_info::reset(void)): New.
1405         (riscv_compute_frame_info): Use riscv_frame_info::reset instead
1406         of memset when clean frame.
1408 2022-08-29  zhongjuzhe  <juzhe.zhong@rivai.ai>
1410         * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
1411         (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
1412         (riscv_address_insns): Add RVV modes condition.
1413         (riscv_binary_cost): Ditto.
1414         (riscv_rtx_costs): Adjust cost for RVV.
1415         (riscv_secondary_memory_needed): Add RVV modes condition.
1416         (riscv_hard_regno_nregs): Add RVV register allocation.
1417         (riscv_hard_regno_mode_ok): Add RVV register allocation.
1418         (riscv_class_max_nregs): Add RVV register allocation.
1419         * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
1420         (UNITS_PER_V_REG): New macro.
1421         (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
1422         (V_REG_FIRST): New macro.
1423         (V_REG_LAST): Ditto.
1424         (V_REG_NUM): Ditto.
1425         (V_REG_P): Ditto.
1426         (VL_REG_P): Ditto.
1427         (VTYPE_REG_P): Ditto.
1428         (RISCV_DWARF_VL): Ditto.
1429         (RISCV_DWARF_VTYPE): Ditto.
1430         (enum reg_class): Add RVV register types.
1431         (REG_CLASS_CONTENTS): Add RVV register types.
1432         * config/riscv/riscv.md: Add VL/VTYPE register number constants.
1434 2022-08-29  zhongjuzhe  <juzhe.zhong@rivai.ai>
1436         * config/riscv/riscv.md: Add new type for vector instructions.
1438 2022-08-28  Peter Bergner  <bergner@linux.ibm.com>
1440         PR target/106017
1441         * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
1442         of MMA pointer conversions.
1444 2022-08-27  Xi Ruoyao  <xry111@xry111.site>
1446         * config/i386/gcc-auto-profile: Regenerate.
1448 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
1450         * real.cc (real_iszero): New.
1451         * real.h (real_iszero): New.
1453 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
1455         * real.cc (real_isinf): New overload.
1456         (real_inf): Add sign argument.
1457         * real.h (real_isinf): New overload.
1458         (real_inf): Add sign argument.
1460 2022-08-26  Marek Polacek  <polacek@redhat.com>
1462         PR c++/81159
1463         * doc/invoke.texi: Document -Wself-move.
1465 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
1467         * value-range.cc (vrange::set): Set varying.
1468         (vrange::set_nonzero): Same.
1469         (vrange::set_zero): Same.
1470         (vrange::set_nonnegative): Same.
1472 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
1474         * range-op-float.cc (foperator_equal::op1_range): Do not blindly
1475         copy op2 range when honoring signed zeros.
1477 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
1479         * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
1480         add newline.
1481         (profitable_path_p): Same.
1483 2022-08-26  Richard Biener  <rguenther@suse.de>
1485         * gimple-predicate-analysis.h
1486         (uninit_analysis::use_cannot_happen): Remove.
1487         * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
1488         (uninit_analysis::use_cannot_happen): Likewise.
1489         (uninit_analysis::is_use_guarded): Do not call
1490         use_cannot_happen.
1491         (dump_predicates): Remove.
1492         (simple_control_dep_chain): Remove edge overload.
1494 2022-08-26  Tobias Burnus  <tobias@codesourcery.com>
1496         * internal-fn.cc (expand_GOMP_TARGET_REV): New.
1497         * internal-fn.def (GOMP_TARGET_REV): New.
1498         * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
1499         'omp target device_ancestor_host' as in_other_partition and don't
1500         error if absent.
1501         * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
1502         * omp-expand.cc (expand_omp_target): For reverse offload, remove
1503         sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
1504         empty-body nohost function.
1505         * omp-offload.cc (execute_omp_device_lower): Handle
1506         IFN_GOMP_TARGET_REV.
1507         (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
1508         nullify fn argument for reverse offload
1510 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
1512         * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
1513         * builtins.cc (expand_builtin_issignaling): New function.
1514         (expand_builtin_signbit): Don't overwrite target.
1515         (expand_builtin): Handle BUILT_IN_ISSIGNALING.
1516         (fold_builtin_classify): Likewise.
1517         (fold_builtin_1): Likewise.
1518         * optabs.def (issignaling_optab): New.
1519         * fold-const-call.cc (fold_const_call_ss): Handle
1520         BUILT_IN_ISSIGNALING.
1521         * config/i386/i386.md (issignalingxf2): New expander.
1522         * doc/extend.texi (__builtin_issignaling): Document.
1523         (__builtin_isinf, __builtin_isnan): Clarify behavior with
1524         -ffinite-math-only.
1525         * doc/md.texi (issignaling<mode>2): Likewise.
1527 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
1529         PR tree-optimization/106099
1530         * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
1531         * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
1532         __builtin_trap to avoid the need of vops.
1534 2022-08-26  Richard Biener  <rguenther@suse.de>
1536         * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
1537         New helper.
1538         (compute_control_dep_chain): Adjust to honor marked region
1539         if provided.
1540         (uninit_analysis::init_from_phi_def): Pre-mark the dominating
1541         region to improve compute_control_dep_chain walking.
1542         * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
1544 2022-08-26  Richard Biener  <rguenther@suse.de>
1546         * gimple-predicate-analysis.cc
1547         (uninit_analysis::collect_phi_def_edges): Only expand a
1548         PHI def edge when it is possibly undefined.
1550 2022-08-26  Martin Liska  <mliska@suse.cz>
1552         * doc/extend.texi: Remove cr16 related stuff.
1553         * doc/install.texi: Likewise.
1554         * doc/invoke.texi: Likewise.
1555         * doc/md.texi: Likewise.
1556         * function-tests.cc (test_expansion_to_rtl): Likewise.
1557         * common/config/cr16/cr16-common.cc: Removed.
1558         * config/cr16/constraints.md: Removed.
1559         * config/cr16/cr16-protos.h: Removed.
1560         * config/cr16/cr16.cc: Removed.
1561         * config/cr16/cr16.h: Removed.
1562         * config/cr16/cr16.md: Removed.
1563         * config/cr16/cr16.opt: Removed.
1564         * config/cr16/predicates.md: Removed.
1565         * config/cr16/t-cr16: Removed.
1567 2022-08-26  liuhongt  <hongtao.liu@intel.com>
1569         PR target/106704
1570         * config/i386/i386-builtin.def (BDESC): Add
1571         CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
1572         corresponding builtins.
1573         * config/i386/i386.cc (ix86_gimple_fold_builtin):
1574         Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
1575         IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
1577 2022-08-25  Marek Polacek  <polacek@redhat.com>
1579         * ginclude/stddef.h: Define nullptr_t.
1581 2022-08-25  Joseph Myers  <joseph@codesourcery.com>
1583         * gimplify.cc (gimplify_modify_expr): Convert initialization from
1584         a variable-size CONSTRUCTOR to memset before call to
1585         gimplify_modify_expr_rhs.
1587 2022-08-25  Jason Merrill  <jason@redhat.com>
1589         * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
1591 2022-08-25  Andreas Krebbel  <krebbel@linux.ibm.com>
1593         PR target/106101
1594         * config/s390/predicates.md (subreg_register_operand): New
1595         predicate.
1596         * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
1597         function prototype.
1598         * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
1599         (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
1600         gen_lowpart.
1601         * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
1602         ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
1603         ("movstrictqi", "movstricthi", "movstrictsi"): Use the
1604         subreg_register_operand predicate instead of register_operand.
1606 2022-08-25  Xi Ruoyao  <xry111@xry111.site>
1608         * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
1609         Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
1610         * config/loongarch/loongarch.cc (loongarch_attribute_table):
1611         New attribute table.
1612         (TARGET_ATTRIBUTE_TABLE): Define the target hook.
1613         (loongarch_handle_model_attribute): New static function.
1614         (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
1615         model attribute of SYMBOL_REF_DECL into account returning
1616         SYMBOL_PCREL or SYMBOL_PCREL64.
1617         (loongarch_use_anchors_for_symbol_p): New static function.
1618         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
1619         (loongarch_symbol_extreme_p): New static function.
1620         (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
1621         (loongarch_symbol_insns): Likewise.
1622         (loongarch_split_symbol_type): Likewise.
1623         (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
1624         TARGET_CMODEL_EXTREME for PC-relative addressing.
1625         (loongarch_print_operand_reloc): Likewise.
1626         * doc/extend.texi (Variable Attributes): Document new
1627         LoongArch specific attribute.
1629 2022-08-25  Xi Ruoyao  <xry111@xry111.site>
1631         * config/loongarch/loongarch.cc (loongarch_classify_symbol):
1632         Return early if the rtx is not SYMBOL_REF.
1634 2022-08-25  Richard Biener  <rguenther@suse.de>
1636         PR tree-optimization/106737
1637         * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
1638         verify SSA form.
1640 2022-08-25  Chenghua Xu  <xuchenghua@loongson.cn>
1642         PR target/106459
1643         * config/loongarch/loongarch.cc (loongarch_build_integer):
1644         Use HOST_WIDE_INT.
1645         * config/loongarch/loongarch.h (IMM_REACH): Likewise.
1646         (HWIT_1U): New Defined.
1647         (LU12I_OPERAND): Use HOST_WIDE_INT.
1648         (LU32I_OPERAND): Likewise.
1649         (LU52I_OPERAND): Likewise.
1650         (HWIT_UC_0xFFF): Likwise.
1652 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1654         PR target/106632
1655         PR target/106588
1656         * config/riscv/bitmanip.md (*shNadduw): Use n constraint
1657         instead of i.
1658         (*slliuw): Likewise.
1659         (*bexti): Likewise. Also add a check for operands[2] to be less
1660         than the mode bitsize.
1662 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1664         * config/riscv/constraints.md (DbS): New constraint.
1665         (DnS): New constraint.
1666         * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
1667         (*bclr<mode>): Likewise.
1668         (*binvi<mode>): Likewise.
1670 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1672         PR target/106586
1673         * config/riscv/predicates.md (single_bit_mask_operand):
1674         Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
1675         (not_single_bit_mask_operand): Likewise.
1676         * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
1677         1<<31 for 32bits as it is already handled.
1678         Call trunc_int_for_mode on the upper part after the subtraction.
1679         (riscv_move_integer): Call trunc_int_for_mode before generating
1680         the integer just make sure the constant has been sign extended
1681         corectly.
1682         (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
1683         addition for the new rhs.
1684         * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
1685         then mask off the upper 32bits of the HWI as it will be sign extended.
1687 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1689         * config/riscv/constraints.md (DsS): New constraint.
1690         (DsD): New constraint.
1691         * config/riscv/iterators.md (shiftm1c): New iterator.
1692         * config/riscv/bitmanip.md (*bset<mode>_mask):
1693         Use shiftm1c.
1694         (*bset<mode>_1_mask): Likewise.
1696 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1698         * config/riscv/constraints.md (Ds3): New constraint.
1699         * config/riscv/predicates.md (imm123_operand): New predicate.
1700         * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
1701         (*shNadduw): Likewise.
1703 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1705         * config/riscv/riscv.cc (riscv_print_operand):
1706         Handle '~'.
1707         (riscv_print_operand_punct_valid_p): New function
1708         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1709         * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
1710         Use %~ instead of conditional the pattern on TARGET_64BIT.
1711         (rotrsi3): Likewise.
1712         (rotlsi3): Likewise.
1713         * config/riscv/riscv.md: Add ~ to the list of modifiers.
1714         (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
1715         (subsi3): Likewise.
1716         (negsi2): Likewise.
1717         (mulsi3): Likewise.
1718         (optab>si3/any_div): Likewise.
1719         (*add<mode>hi3): Likewise.
1720         (<optab>si3/any_shift): Likewise.
1722 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1724         * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
1725         keep the list in riscv.md in sync with this list.
1726         * config/riscv/riscv.md: Add list of modifiers as comments.
1728 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1730         * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
1731         * config/riscv/iterators.md: Here.
1733 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1735         * config/riscv/bitmanip.md
1736         (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
1737         tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
1738         * config/riscv/iterators.md: Here.
1740 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1742         * config/riscv/riscv.md (GPR): Move to new file.
1743         (P, X, BR): Likewise.
1744         (MOVE32, MOVE64, SHORT): Likewise.
1745         (HISI, SUPERQI, SUBX): Likewise.
1746         (ANYI, ANYF, SOFTF): Likewise.
1747         (size, load, default_load): Likewise.
1748         (softload, store, softstore): Likewise.
1749         (reg, fmt, ifmt, amo): Likewise.
1750         (UNITMODE, HALFMODE): Likewise.
1751         (RINT, rint_pattern, rint_rm): Likewise.
1752         (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
1753         (any_extend, any_shiftrt, any_shift): Likewise.
1754         (any_bitwise): Likewise.
1755         (any_div, any_mod): Likewise.
1756         (any_gt, any_ge, any_lt, any_le): Likewise.
1757         (u, su): Likewise.
1758         (optab, insn): Likewise.
1759         * config/riscv/iterators.md: New file.
1761 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1763         PR target/106601
1764         * config/riscv/bitmanip.md (bswaphi2): New pattern.
1766 2022-08-24  Andrew Pinski  <apinski@marvell.com>
1768         PR target/106600
1769         * config/riscv/bitmanip.md (bswap<mode>2): Remove
1770         condition on TARGET_64BIT as X is already conditional there.
1772 2022-08-24  Joseph Myers  <joseph@codesourcery.com>
1774         * tree.cc (build_real): Give DFP dconst0 the minimum quantum
1775         exponent for the type.
1777 2022-08-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
1779         PR target/106733
1780         * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
1781         constants as legitimate addresses for functions.
1782         (bpf_small_register_classes_for_mode_p): Define target hook.
1784 2022-08-24  Richard Biener  <rguenther@suse.de>
1786         * gimple-predicate-analysis.cc: Move predicate normalization
1787         after the comment documenting it.
1789 2022-08-24  Richard Biener  <rguenther@suse.de>
1791         * gimple-predicate-analysis.h (predicate): Split out
1792         non-predicate related functionality into ..
1793         (uninit_analysis): .. this new class.
1794         * gimple-predicate-analysis.cc: Refactor into two classes.
1795         * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
1797 2022-08-24  Richard Biener  <rguenther@suse.de>
1799         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
1800         Do simple_control_dep_chain only up to cd_root, add the PHI
1801         operand edge to the chains like init_from_phi_def does.
1802         (predicate::is_use_guarded): Speedup early out, avoid half-way
1803         initializing the PHI def predicate.
1805 2022-08-24  Jakub Jelinek  <jakub@redhat.com>
1807         PR target/106721
1808         * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
1809         Change V32HF, V16HF and V8HF entries from "f" to "i".
1810         (iptr): Add V32BF, V16BF, V8BF and BF entries.
1811         (i128vldq): Add V16HF and V16BF entries.
1812         (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
1813         mask_opernad3 -> mask_operand3.
1815 2022-08-24  Martin Liska  <mliska@suse.cz>
1816             Jørgen Kvalsvik  <j@lambda.is>
1818         * gcov.cc (add_line_counts): Add group functions to coverage
1819         summary.
1820         (accumulate_line_counts): Similarly for files.
1822 2022-08-24  Lulu Cheng  <chenglulu@loongson.cn>
1824         * config/loongarch/genopts/loongarch-strings: Support code model medium.
1825         * config/loongarch/genopts/loongarch.opt.in: Likewise.
1826         * config/loongarch/loongarch-def.c: Likewise.
1827         * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
1828         (CMODEL_EXTREME): Likewise.
1829         (N_CMODEL_TYPES): Likewise.
1830         (CMODEL_MEDIUM): Likewise.
1831         * config/loongarch/loongarch-opts.cc: Likewise.
1832         * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
1833         * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
1834         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
1835         Tls symbol Loading support medium mode.
1836         (loongarch_legitimize_call_address): When medium mode, make a symbolic
1837         jump with two instructions.
1838         (loongarch_option_override_internal): Support medium.
1839         * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
1840         (@sibcall_internal_1<mode>): New function call templates added to support
1841         medium mode.
1842         (@sibcall_value_internal_1<mode>): Likewise.
1843         (@sibcall_value_multiple_internal_1<mode>): Likewise.
1844         (@call_internal_1<mode>): Likewise.
1845         (@call_value_internal_1<mode>): Likewise.
1846         (@call_value_multiple_internal_1<mode>): Likewise.
1847         * config/loongarch/loongarch.opt: Support medium.
1848         * config/loongarch/predicates.md: Add processing about medium mode.
1849         * doc/invoke.texi: Document for '-mcmodel=medium'.
1851 2022-08-24  Richard Biener  <rguenther@suse.de>
1853         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
1854         Start the compute_control_dep_chain walk from the immediate
1855         dominator of the PHI.
1857 2022-08-23  H.J. Lu  <hjl.tools@gmail.com>
1859         PR target/106714
1860         * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
1861         __PTRDIFF_TYPE__.
1862         (_tile_stream_loadd_internal): Likewise.
1863         (_tile_stored_internal): Likewise.
1865 2022-08-23  Richard Biener  <rguenther@suse.de>
1867         PR tree-optimization/106722
1868         * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
1869         MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
1870         * gimple-predicate-analysis.cc: ... here and document.
1871         (simple_control_dep_chain): New function, factored from
1872         predicate::use_cannot_happen.
1873         (predicate::use_cannot_happen): Adjust.
1874         (predicate::predicate): Use simple_control_dep_chain as fallback.
1876 2022-08-23  Aldy Hernandez  <aldyh@redhat.com>
1878         * range-op-float.cc (foperator_equal::op1_range): Set range to
1879         range of op2.
1881 2022-08-23  Richard Biener  <rguenther@suse.de>
1883         * gimple-predicate-analysis.cc (is_loop_exit): Split out
1884         from ...
1885         (is_non_loop_exit_postdominating): ... here.  Remove after
1886         inlining ...
1887         (find_control_equiv_block): ... here.
1888         (compute_control_dep_chain): ... and here.
1889         (predicate::is_use_guarded): Do not excempt loop exits
1890         from short-cutting the case of the use post-dominating the
1891         PHI definition.
1893 2022-08-23  Andrew MacLeod  <amacleod@redhat.com>
1895         PR tree-optimization/106687
1896         * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
1897         for the VREL_GT case as well.
1899 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
1901         * config/pru/pru.md (pru_<code>di3): New alternative for
1902         two operands but without earlyclobber.
1904 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
1906         * config/pru/pru.md (prumov<mode>, mov<mode>): Add
1907         variants for loading -1 consts.
1909 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
1911         PR target/106564
1912         * config/pru/constraints.md (Um): New constraint for -1.
1913         (Uf): New constraint for IOR fill-bytes constants.
1914         (Uz): New constraint for AND zero-bytes constants.
1915         * config/pru/predicates.md (const_fillbytes_operand): New
1916         predicate for IOR fill-bytes constants.
1917         (const_zerobytes_operand): New predicate for AND zero-bytes
1918         constants.
1919         * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
1920         (struct pru_byterange): New struct to describe a byte range.
1921         (pru_calc_byterange): New declaration.
1922         * config/pru/pru.cc (pru_rtx_costs): Add penalty for
1923         64-bit zero-extend.
1924         (pru_output_sign_extend): Remove.
1925         (pru_calc_byterange): New helper function to extract byte
1926         range info from a constant.
1927         (pru_print_operand): Remove 'y' and 'z' print modifiers.
1928         * config/pru/pru.md (zero_extendqidi2): New pattern.
1929         (zero_extendhidi2): New pattern.
1930         (zero_extendsidi2): New pattern.
1931         (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
1932         (@pru_ior_fillbytes<mode>): New pattern.
1933         (@pru_and_zerobytes<mode>): New pattern.
1934         (<code>di3): Rewrite as an expand and handle ZERO and FILL
1935         special cases.
1936         (pru_<code>di3): New name for <code>di3.
1937         (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
1938         handle bit-test for 64-bit registers.
1940 2022-08-22  Richard Biener  <rguenther@suse.de>
1942         * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
1943         (predicate::def_expr): Likewise.
1944         (predicate::use_expr): Likewise.
1945         (predicate::expr): Likewise.
1946         * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
1947         (predicate::use_expr): Likewise.
1948         (predicate::expr): Likewise.
1949         (predicate::is_use_guarded): Do not build m_use_expr.
1951 2022-08-22  Martin Liska  <mliska@suse.cz>
1953         PR lto/106700
1954         * configure.ac: Detect O_NONBLOCK flag for open.
1955         * config.in: Regenerate.
1956         * configure: Regenerate.
1957         * opts-common.cc (jobserver_info::connect): Set is_connected
1958           properly based on O_NONBLOCK.
1959         * opts-jobserver.h (struct jobserver_info): Add is_connected
1960           member variable.
1962 2022-08-22  zhongjuzhe  <juzhe.zhong@rivai.ai>
1964         * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
1965         and repeat value different.
1967 2022-08-22  Tobias Burnus  <tobias@codesourcery.com>
1969         PR lto/106686
1970         * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
1971         (tool_cleanup): Unlink offload_names.
1972         (compile_offload_image): Take filename argument to set it early.
1973         (compile_images_for_offload_targets): Update call; set
1974         offload_names to NULL after freeing the array.
1976 2022-08-22  Richard Biener  <rguenther@suse.de>
1978         PR tree-optimization/105937
1979         * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
1980         on backedges.
1981         (execute_late_warn_uninitialized): Mark backedges.
1983 2022-08-22  Richard Biener  <rguenther@suse.de>
1985         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
1986         If the use is guarded with multiple predicate paths compute
1987         the predicates intersection before going forward.  When
1988         compute_control_dep_chain wasn't able to come up with at
1989         least one path from function entry to the PHI edge compute
1990         a conservative sparse path instead.
1992 2022-08-20  Lulu Cheng  <chenglulu@loongson.cn>
1994         * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
1995         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
1996         Add extreme support for TLS GD and LD types.
1997         (loongarch_legitimize_tls_address): Add extreme support for TLS LE
1998         and IE.
1999         (loongarch_split_symbol): When compiling with -mcmodel=extreme,
2000         the symbol address will be obtained through five instructions.
2001         (loongarch_print_operand_reloc): Add support.
2002         (loongarch_print_operand): Add support.
2003         (loongarch_print_operand_address): Add support.
2004         (loongarch_option_override_internal): Set '-mcmodel=extreme' option
2005         incompatible with '-mno-explicit-relocs'.
2006         * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
2007         Loads bits 12-31 of data into registers.
2008         (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
2009         the source register.
2010         (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
2011         the source register.
2012         * config/loongarch/predicates.md: Symbols need to be decomposed
2013         when defining the macro TARGET_CMODEL_EXTREME
2014         * doc/invoke.texi: Modify the description information of cmodel in the document.
2015         Document -W[no-]extreme-plt.
2017 2022-08-19  Tobias Burnus  <tobias@codesourcery.com>
2019         * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
2020         files_to_cleanup.
2021         * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
2022         omp_requires_file to temp_files.
2023         * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
2024         (main): Remove local omp_requires_file var.
2025         (tool_cleanup): Handle omp_requires_file.
2027 2022-08-19  Aldy Hernandez  <aldyh@redhat.com>
2029         * gimple-range-path.cc (path_range_query::path_range_query):
2030         Remove constructor that takes edge.
2031         * gimple-range-path.h (class path_range_query): Same.
2032         * tree-ssa-loop-ch.cc (edge_range_query): New.
2033         (entry_loop_condition_is_static): Call edge_range_query.
2035 2022-08-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
2037         * config/xtensa/xtensa.h
2038         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
2039         Add new register class "ISC_REGS".
2040         * config/xtensa/constraints.md (c): Add new register constraint.
2041         * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
2042         (sibcall_internal, sibcall_value_internal):
2043         Change to use the new register constraint, and remove two split
2044         patterns for fixups that are no longer needed.
2046 2022-08-18  Maciej W. Rozycki  <macro@embecosm.com>
2048         * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
2049         pattern formatting.
2051 2022-08-18  Tim Lange  <mail@tim-lange.me>
2053         PR analyzer/106181
2054         * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
2056 2022-08-18  Aldy Hernandez  <aldyh@redhat.com>
2058         * gimple-range-path.cc (path_range_query::path_range_query): Add
2059         various constructors to take a path.
2060         (path_range_query::~path_range_query): Remove m_alloced_ranger.
2061         (path_range_query::range_on_path_entry): Adjust for m_ranger being
2062         a reference.
2063         (path_range_query::set_path): Rename to...
2064         (path_range_query::reset_path): ...this and call compute_ranges.
2065         (path_range_query::ssa_range_in_phi): Adjust for m_ranger
2066         reference.
2067         (path_range_query::range_defined_in_block): Same.
2068         (path_range_query::compute_ranges_in_block): Same.
2069         (path_range_query::adjust_for_non_null_uses): Same.
2070         (path_range_query::compute_exit_dependencies): Use m_path instead
2071         of argument.
2072         (path_range_query::compute_ranges): Remove path argument.
2073         (path_range_query::range_of_stmt): Adjust for m_ranger reference.
2074         (path_range_query::compute_outgoing_relations): Same.
2075         * gimple-range-path.h (class path_range_query): Add various
2076         constructors.
2077         Make compute_ranges and compute_exit_dependencies private.
2078         Rename set_path to reset_path.
2079         Make m_ranger a reference.
2080         Remove m_alloced_ranger.
2081         * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
2082         path_range_query.
2083         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
2084         ranger and instantiate a new path_range_query every time.
2085         (ch_base::copy_headers): Pass ranger instead of path_range_query.
2086         * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
2087         (back_threader::~back_threader): Remove m_solver.
2088         (back_threader::find_taken_edge_switch): Adjust for m_ranger
2089         reference.
2090         (back_threader::find_taken_edge_cond): Same.
2091         (back_threader::dump): Remove m_solver.
2092         (back_threader::back_threader): Move verify_marked_backedges
2093         here from the path_range_query constructor.
2094         * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
2095         some code from compute_ranges_from_state here.
2096         (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
2097         (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
2098         * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
2099         compute_ranges_from_state to compute_exit_dependencies.
2100         Remove m_path.
2102 2022-08-18  Richard Biener  <rguenther@suse.de>
2104         PR middle-end/106617
2105         * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
2106         guard, disable on GENERIC to not cause quadratic behavior
2107         with the fold-const.cc implementation and the use of !
2109 2022-08-18  Andrew Pinski  <apinski@marvell.com>
2111         PR gcov-profile/106659
2112         * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
2113           INCLUDE_VECTOR.
2115 2022-08-18  konglin1  <lingling.kong@intel.com>
2117         * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
2118         BFmode.
2119         (ix86_expand_vector_init_duplicate): Support vector BFmode.
2120         (ix86_expand_vector_init_one_nonzero): Ditto.
2121         (ix86_expand_vector_init_one_var): Ditto.
2122         (ix86_expand_vector_init_concat): Ditto.
2123         (ix86_expand_vector_init_interleave): Ditto.
2124         (ix86_expand_vector_init_general): Ditto.
2125         (ix86_expand_vector_init): Ditto.
2126         (ix86_expand_vector_set_var): Ditto.
2127         (ix86_expand_vector_set): Ditto.
2128         (ix86_expand_vector_extract): Ditto.
2129         * config/i386/i386.cc (classify_argument): Add BF vector modes.
2130         (function_arg_64): Ditto.
2131         (ix86_gimplify_va_arg): Ditto.
2132         (ix86_get_ssemov): Ditto.
2133         * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
2134         (VALID_AVX512F_REG_MODE): Ditto.
2135         (host_detect_local_cpu): Ditto.
2136         (VALID_SSE2_REG_MODE): Ditto.
2137         * config/i386/i386.md: Add BF vector modes.
2138         (MODE_SIZE): Ditto.
2139         (ssemodesuffix): Add bf suffix for BF vector modes.
2140         (ssevecmode): Ditto.
2141         * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
2142         (VI12HFBF_AVX512VL): Ditto.
2143         (V_256_512): Ditto.
2144         (VF_AVX512HFBF16): Ditto.
2145         (VF_AVX512BWHFBF16): Ditto.
2146         (VIHFBF): Ditto.
2147         (avx512): Ditto.
2148         (VIHFBF_256): Ditto.
2149         (VIHFBF_AVX512BW): Ditto.
2150         (VI2F_256_512):Ditto.
2151         (V8_128):Ditto.
2152         (V16_256): Ditto.
2153         (V32_512): Ditto.
2154         (sseinsnmode): Ditto.
2155         (sseconstm1): Ditto.
2156         (sseintmodesuffix): New mode_attr.
2157         (avx512fmaskmode): Ditto.
2158         (avx512fmaskmodelower): Ditto.
2159         (ssedoublevecmode): Ditto.
2160         (ssehalfvecmode): Ditto.
2161         (ssehalfvecmodelower): Ditto.
2162         (ssescalarmode): Add vector BFmode mapping.
2163         (ssescalarmodelower): Ditto.
2164         (ssexmmmode): Ditto.
2165         (ternlogsuffix): Ditto.
2166         (ssescalarsize): Ditto.
2167         (sseintprefix): Ditto.
2168         (i128): Ditto.
2169         (xtg_mode): Ditto.
2170         (bcstscalarsuff): Ditto.
2171         (<avx512>_blendm<mode>): New define_insn for BFmode.
2172         (<avx512>_store<mode>_mask): Ditto.
2173         (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
2174         (vec_set<mode>_0): New define_insn for BF vector set.
2175         (V8BFH_128): New mode_iterator for BFmode.
2176         (avx512fp16_mov<mode>): Ditto.
2177         (vec_set<mode>): New define_insn for BF vector set.
2178         (@vec_extract_hi_<mode>): Ditto.
2179         (@vec_extract_lo_<mode>): Ditto.
2180         (vec_set_hi_<mode>): Ditto.
2181         (vec_set_lo_<mode>): Ditto.
2182         (*vec_extract<mode>_0): New define_insn_and_split for BF
2183         vector extract.
2184         (*vec_extract<mode>): New define_insn.
2185         (VEC_EXTRACT_MODE): Add BF vector modes.
2186         (PINSR_MODE): Add V8BF.
2187         (sse2p4_1): Ditto.
2188         (pinsr_evex_isa): Ditto.
2189         (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
2190         insert for V8BFmode.
2191         (pbroadcast_evex_isa): Add BF vector modes.
2192         (AVX2_VEC_DUP_MODE): Ditto.
2193         (VEC_INIT_MODE): Ditto.
2194         (VEC_INIT_HALF_MODE): Ditto.
2195         (avx2_pbroadcast<mode>): Adjust to support BF vector mode
2196         broadcast.
2197         (avx2_pbroadcast<mode>_1): Ditto.
2198         (<avx512>_vec_dup<mode>_1): Ditto.
2199         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
2200         Ditto.
2202 2022-08-18  Martin Liska  <mliska@suse.cz>
2204         * configure: Regenerate.
2206 2022-08-18  Haochen Gui  <guihaoc@gcc.gnu.org>
2208         PR target/103109
2209         * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
2210         (<u>madddi4_highpart): New.
2211         (<u>madddi4_highpart_le): New.
2213 2022-08-18  Aldy Hernandez  <aldyh@redhat.com>
2215         * gimple-range-path.cc
2216         (path_range_query::compute_exit_dependencies): Use
2217         gimple_range_ssa_names.
2219 2022-08-18  zhongjuzhe  <juzhe.zhong@rivai.ai>
2221         * config/riscv/predicates.md: Adjust runtime invariant.
2222         * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
2223         (NUM_POLY_INT_COEFFS): New.
2224         * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
2225         runtime invariant.
2226         * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
2227         Adjust runtime invariant.
2228         * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
2229         invariant.
2230         (enum riscv_microarchitecture_type): Ditto.
2231         (riscv_valid_offset_p): Ditto.
2232         (riscv_valid_lo_sum_p): Ditto.
2233         (riscv_address_insns): Ditto.
2234         (riscv_load_store_insns): Ditto.
2235         (riscv_legitimize_move): Ditto.
2236         (riscv_binary_cost): Ditto.
2237         (riscv_rtx_costs): Ditto.
2238         (riscv_output_move): Ditto.
2239         (riscv_extend_comparands): Ditto.
2240         (riscv_flatten_aggregate_field): Ditto.
2241         (riscv_get_arg_info): Ditto.
2242         (riscv_pass_by_reference): Ditto.
2243         (riscv_elf_select_rtx_section): Ditto.
2244         (riscv_stack_align): Ditto.
2245         (riscv_compute_frame_info): Ditto.
2246         (riscv_initial_elimination_offset): Ditto.
2247         (riscv_set_return_address): Ditto.
2248         (riscv_for_each_saved_reg): Ditto.
2249         (riscv_first_stack_step): Ditto.
2250         (riscv_expand_prologue): Ditto.
2251         (riscv_expand_epilogue): Ditto.
2252         (riscv_can_use_return_insn): Ditto.
2253         (riscv_secondary_memory_needed): Ditto.
2254         (riscv_hard_regno_nregs): Ditto.
2255         (riscv_convert_vector_bits): New.
2256         (riscv_option_override): Adjust runtime invariant.
2257         (riscv_promote_function_mode): Ditto.
2258         * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
2259         (BITS_PER_RISCV_VECTOR): New.
2260         (BYTES_PER_RISCV_VECTOR): New.
2261         * config/riscv/riscv.md: Adjust runtime invariant.
2263 2022-08-18  Lulu Cheng  <chenglulu@loongson.cn>
2265         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
2266         Get __tls_get_addr address through got table when disable plt.
2268 2022-08-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
2270         * config/xtensa/xtensa.cc (xtensa_expand_prologue):
2271         Use an "addmi" machine instruction for updating the stack pointer
2272         rather than addition/subtraction via hard register A9, if the amount
2273         of change satisfies the literal value conditions of that instruction
2274         when the CALL0 ABI is used.
2275         (xtensa_expand_epilogue): Ditto.
2276         And also inhibit the stack pointer addition of constant zero.
2278 2022-08-17  Roger Sayle  <roger@nextmovesoftware.com>
2280         PR target/106640
2281         * config/i386/i386-features.cc
2282         (timde_scalar_chain::compute_convert_gain): Replace incorrect use
2283         of XINT with INTVAL (XEXP (src, 1)).
2285 2022-08-17  Aldy Hernandez  <aldyh@redhat.com>
2287         * gimple-range-path.cc
2288         (path_range_query::compute_ranges_in_block): Remove
2289         set_root_oracle call.
2290         (path_range_query::compute_ranges): Pass ranger oracle to
2291         reset_path.
2292         * value-relation.cc (path_oracle::reset_path): Set root oracle.
2293         * value-relation.h (path_oracle::reset_path): Add root oracle
2294         argument.
2296 2022-08-17  Marek Polacek  <polacek@redhat.com>
2298         PR c++/89780
2299         * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
2300         OPT_Wpessimizing_move and OPT_Wredundant_move.
2301         * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
2303 2022-08-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2304             Jakub Jelinek  <jakub@redhat.com>
2306         PR fortran/46539
2307         * common.opt (static-libquadmath): New option.
2308         * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
2309         * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
2311 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
2313         * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
2314         when filenames come out identically.
2316 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
2318         PR middle-end/106548
2319         * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
2320         for 'simd' linear-step values that are variable.
2322 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
2323             Chung-Lin Tang  <cltang@codesourcery.com>
2325         PR c++/104493
2326         * gimplify.cc (omp_notice_variable): Call omp_mappable_type
2327         instead of removed langhook.
2328         * omp-general.h (omp_mappable_type): New prototype.
2329         * omp-general.cc (omp_mappable_type):  New; moved from ...
2330         * langhooks.cc (lhd_omp_mappable_type): ... here.
2331         * langhooks-def.h (lhd_omp_mappable_type,
2332         LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
2333         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
2334         * langhooks.h (struct lang_hooks_for_types): Remove
2335         omp_mappable_type.
2337 2022-08-17  Christophe Lyon  <christophe.lyon@arm.com>
2339         * config.gcc (arm): Define with_float to hard if target name ends
2340         with 'hf'.
2342 2022-08-17  Richard Biener  <rguenther@suse.de>
2344         * tree-ssa-threadbackward.cc
2345         (back_threader_profitability): Split profitable_path_p
2346         into possibly_profitable_path_p and itself, keep state
2347         as new members.
2348         (back_threader::m_profit): Remove.
2349         (back_threader::find_paths): Likewise.
2350         (back_threader::maybe_register_path): Take profitability
2351         instance as parameter.
2352         (back_threader::find_paths_to_names): Likewise.  Use
2353         possibly_profitable_path_p and avoid the path range query
2354         when the path is currently too large.
2355         (back_threader::find_paths): Fold into ...
2356         (back_threader::maybe_thread_block): ... this.
2357         (get_gimple_control_stmt): Remove.
2358         (back_threader_profitability::possibly_profitable_path_p):
2359         Split out from profitable_path_p, do early profitability
2360         checks.
2361         (back_threader_profitability::profitable_path_p): Do final
2362         profitability path after the taken edge has been determined.
2364 2022-08-17  Xi Ruoyao  <xry111@xry111.site>
2366         * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
2367         (fmin<mode>3): Likewise.
2369 2022-08-17  Andrew MacLeod  <amacleod@redhat.com>
2371         * gimple-range-fold.cc (gimple_range_ssa_names): New.
2372         * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
2373         * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
2374           code to new routine.
2376 2022-08-16  Martin Liska  <mliska@suse.cz>
2378         PR target/106637
2379         * doc/install.texi: Remove link to www.bullfreeware.com
2381 2022-08-16  Kito Cheng  <kito.cheng@sifive.com>
2383         * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
2384         zfh and zfhmin.
2385         (riscv_ext_version_table): Ditto.
2386         (riscv_ext_flag_table): Ditto.
2387         * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
2388         (MASK_ZFH): Ditto.
2389         (TARGET_ZFHMIN): Ditto.
2390         (TARGET_ZFH): Ditto.
2391         * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
2392         for zfh and zfhmin.
2393         (riscv_emit_float_compare): Handle HFmode.
2394         * config/riscv/riscv.md (ANYF): Add HF.
2395         (SOFTF): Add HF.
2396         (load): Ditto.
2397         (store): Ditto.
2398         (truncsfhf2): New.
2399         (truncdfhf2): Ditto.
2400         (extendhfsf2): Ditto.
2401         (extendhfdf2): Ditto.
2402         (*movhf_hardfloat): Ditto.
2403         (*movhf_softfloat): Make sure not ZFHMIN.
2404         * config/riscv/riscv.opt (riscv_zf_subext): New.
2406 2022-08-16  Kito Cheng  <kito.cheng@sifive.com>
2408         * config/riscv/riscv-builtins.cc: include stringpool.h
2409         (riscv_float16_type_node): New.
2410         (riscv_init_builtin_types): Ditto.
2411         (riscv_init_builtins): Call riscv_init_builtin_types.
2412         * config/riscv/riscv-modes.def (HF): New.
2413         * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
2414         (riscv_mangle_type): New.
2415         (riscv_scalar_mode_supported_p): Ditto.
2416         (riscv_libgcc_floating_mode_supported_p): Ditto.
2417         (riscv_excess_precision): Ditto.
2418         (riscv_floatn_mode): Ditto.
2419         (riscv_init_libfuncs): Ditto.
2420         (TARGET_MANGLE_TYPE): Ditto.
2421         (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
2422         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
2423         (TARGET_INIT_LIBFUNCS): Ditto.
2424         (TARGET_C_EXCESS_PRECISION): Ditto.
2425         (TARGET_FLOATN_MODE): Ditto.
2426         * config/riscv/riscv.md (mode): Add HF.
2427         (softload): Add HF.
2428         (softstore): Ditto.
2429         (fmt): Ditto.
2430         (UNITMODE): Ditto.
2431         (movhf): New.
2432         (*movhf_softfloat): New.
2434 2022-08-16  Richard Biener  <rguenther@suse.de>
2436         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
2437         Do not walk further if we are leaving the current loop.
2439 2022-08-16  Sergei Trofimovich  <siarheit@google.com>
2441         PR driver/106624
2442         * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
2443         argument using xstrdup().
2445 2022-08-16  Aldy Hernandez  <aldyh@redhat.com>
2447         * gimple-range-path.cc (path_range_query::import_p): Rename to...
2448         (path_range_query::exit_dependency_p): ...this.
2449         (path_range_query::dump): Rename imports to exit dependencies.
2450         (path_range_query::compute_ranges_in_phis): Same.
2451         (path_range_query::compute_ranges_in_block): Same.
2452         (path_range_query::adjust_for_non_null_uses): Same.
2453         (path_range_query::compute_ranges): Same.
2454         (path_range_query::compute_phi_relations): Same.
2455         (path_range_query::add_to_imports): Rename to...
2456         (path_range_query::add_to_exit_dependencies): ...this.
2457         (path_range_query::compute_imports): Rename to...
2458         (path_range_query::compute_exit_dependencies): ...this.
2459         * gimple-range-path.h (class path_range_query): Rename imports to
2460         exit dependencies.
2462 2022-08-16  Martin Liska  <mliska@suse.cz>
2464         * value-range-storage.h (class obstack_vrange_allocator): Mark
2465           the class as final.
2466         (class ggc_vrange_allocator): Likewise.
2468 2022-08-16  Martin Liska  <mliska@suse.cz>
2470         * value-range-equiv.h (class value_range_equiv): Add virtual
2471           destructor.
2472         * value-range.h: Likewise.
2474 2022-08-16  Richard Biener  <rguenther@suse.de>
2476         PR middle-end/106630
2477         * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
2478         narrowing conversions.
2480 2022-08-16  Martin Liska  <mliska@suse.cz>
2482         * value-range-equiv.h (class value_range_equiv):
2484 2022-08-16  Martin Liska  <mliska@suse.cz>
2486         * config/i386/i386-features.h (class general_scalar_chain): Add
2487           final override for a method.
2488         (class timode_scalar_chain): Likewise.
2490 2022-08-16  Richard Biener  <rguenther@suse.de>
2492         * doc/invoke.texi (max-jump-thread-paths): Adjust.
2494 2022-08-16  Martin Liska  <mliska@suse.cz>
2496         * opts-common.cc (jobserver_info::connect): Open fifo
2497         in non-blocking mode.
2499 2022-08-16  Kewen.Lin  <linkw@gcc.gnu.org>
2501         PR target/103353
2502         * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
2503         check to preparation statements and add handlings for !TARGET_MMA.
2504         (define_expand movxo): Likewise.
2506 2022-08-16  Kewen Lin  <linkw@linux.ibm.com>
2508         PR tree-optimization/106322
2509         * tree-vect-stmts.cc (vectorizable_call): Don't allow
2510         vect_emulated_vector_p type for both vectype_in and vectype_out.
2512 2022-08-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
2514         * common/config/xtensa/xtensa-common.cc
2515         (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
2516         for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
2518 2022-08-15  Andrew MacLeod  <amacleod@redhat.com>
2520         PR tree-optimization/106621
2521         * value-range.cc (irange::set): Check for POLY_INT_CST early.
2523 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
2525         * config/i386/i386-features.cc
2526         (timode_scalar_chain::compute_convert_gain): Provide costs for
2527         shifts and rotates.
2528         (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
2529         and ROTATE just like existing ASHIFT and LSHIFTRT cases.
2530         (timode_scalar_to_vector_candidate_p): Handle all shifts and
2531         rotates by integer constants between 0 and 127.
2533 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
2535         * config/i386/i386-features.cc
2536         (timode_scalar_chain::compute_convert_gain): Provide gains for
2537         comparisons against 0/-1, including "*testti" patterns.
2539 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
2541         PR tree-optimization/64992
2542         PR tree-optimization/98956
2543         * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
2544         when X is zero_one_valued_p and the shift constant C is valid.
2545         (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
2546         when X is zero_one_valued_p and the shift constant C is valid.
2548 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
2549             Richard Biener  <rguenther@suse.de>
2551         PR tree-optimization/71343
2552         * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
2553         expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
2554         (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
2555         to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
2557 2022-08-15  Richard Biener  <rguenther@suse.de>
2559         * gimple-range-path.cc (range_on_path_entry): Just
2560         call range_on_entry.
2562 2022-08-15  Jakub Jelinek  <jakub@redhat.com>
2564         PR rtl-optimization/106590
2565         * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
2566         (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
2567         mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
2568         further conditional moves.
2570 2022-08-15  konglin1  <lingling.kong@intel.com>
2572         * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
2573         * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
2574         (ix86_register_bf16_builtin_type): New function.
2575         (ix86_bf16_type_node): New.
2576         (ix86_bf16_ptr_type_node): Ditto.
2577         (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
2578         * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
2579         (ADJUST_FLOAT_FORMAT): Ditto.
2580         * config/i386/i386.cc (classify_argument): Handle BFmode.
2581         (construct_container): Ditto.
2582         (function_value_32): Return __bf16 by %xmm0.
2583         (function_value_64): Return __bf16 by SSE register.
2584         (ix86_output_ssemov): Handle BFmode.
2585         (ix86_legitimate_constant_p): Disable BFmode constant double.
2586         (ix86_secondary_reload): Require gpr as intermediate register
2587         to store __bf16 from sse register when sse4 is not available.
2588         (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
2589         (ix86_mangle_type): Add manlging for __bf16 type.
2590         (ix86_invalid_conversion): New function for target hook.
2591         (ix86_invalid_unary_op): Ditto.
2592         (ix86_invalid_binary_op): Ditto.
2593         (TARGET_INVALID_CONVERSION): New define for target hook.
2594         (TARGET_INVALID_UNARY_OP): Ditto.
2595         (TARGET_INVALID_BINARY_OP): Ditto.
2596         * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
2597         * config/i386/i386.md ("mode"): Add BFmode.
2598         (MODE_SIZE): Ditto.
2599         (X87MODEFH): Ditto.
2600         (HFBF): Add new define_mode_iterator.
2601         (*pushhf_rex64): Change for BFmode.
2602         (*push<mode>_rex64): Ditto.
2603         (*pushhf): Ditto.
2604         (*push<mode>): Ditto.
2605         (MODESH): Ditto.
2606         (hfbfconstf): Add new define_mode_attr.
2607         (*mov<mode>_internal): Add BFmode.
2609 2022-08-13  Roger Sayle  <roger@nextmovesoftware.com>
2610             Uroš Bizjak  <ubizjak@gmail.com>
2612         * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
2613         New predicate for values between 0/1 and 255, not multiples of 8.
2614         * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
2615         shifts by constant bit counts.
2616         (*ashlvti3_internal): New define_insn_and_split that lowers
2617         logical left shifts by constant bit counts, that aren't multiples
2618         of 8, before reload.
2619         (lshrv1ti3): Delay lowering of logical right shifts by constant.
2620         (*lshrv1ti3_internal): New define_insn_and_split that lowers
2621         logical right shifts by constant bit counts, that aren't multiples
2622         of 8, before reload.
2623         (ashrv1ti3):: Delay lowering of arithmetic right shifts by
2624         constant bit counts.
2625         (*ashrv1ti3_internal): New define_insn_and_split that lowers
2626         arithmetic right shifts by constant bit counts before reload.
2627         (rotlv1ti3): Delay lowering of rotate left by constant.
2628         (*rotlv1ti3_internal): New define_insn_and_split that lowers
2629         rotate left by constant bits counts before reload.
2630         (rotrv1ti3): Delay lowering of rotate right by constant.
2631         (*rotrv1ti3_internal): New define_insn_and_split that lowers
2632         rotate right by constant bits counts before reload.
2634 2022-08-12  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
2636         * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
2638 2022-08-12  Jan Hubicka  <hubicka@ucw.cz>
2640         PR middle-end/106057
2641         * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
2642         function.
2643         (possible_polymorphic_call_targets): Use it.
2645 2022-08-12  Andrew Carlotti  <andrew.carlotti@arm.com>
2647         * tree-ssa-loop.h: Improve comment
2649 2022-08-12  Jakub Jelinek  <jakub@redhat.com>
2651         PR tree-optimization/106506
2652         * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
2653         is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
2655 2022-08-12  Richard Biener  <rguenther@suse.de>
2657         PR tree-optimization/106593
2658         * tree-ssa-threadbackward.cc (back_threader::find_paths):
2659         If the imports from the conditional do not satisfy
2660         gimple_range_ssa_p don't try to thread anything.
2662 2022-08-12  Tamar Christina  <tamar.christina@arm.com>
2664         PR target/106524
2665         * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
2666         *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
2668 2022-08-12  Tim Lange  <mail@tim-lange.me>
2670         PR analyzer/106000
2671         * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
2673 2022-08-12  Andrew Pinski  <apinski@marvell.com>
2675         * config/aarch64/aarch64.md: Remove comment
2676         about MD_INCLUDES as it is out of date and not needed.
2678 2022-08-11  Richard Biener  <rguenther@suse.de>
2680         * gimple-range-path.cc (path_range_query::compute_imports):
2681         Restrict walking SSA defs to blocks inside the path.  Track
2682         the same operands as range_def_chain::get_def_chain does.
2684 2022-08-11  Richard Biener  <rguenther@suse.de>
2686         PR tree-optimization/106514
2687         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
2688         Compute and unwind both m_imports and interesting on the fly during
2689         path discovery.
2690         (back_threader::find_paths): Compute the original m_imports
2691         from just the SSA uses of the exit conditional.  Drop
2692         handling single_succ_to_potentially_threadable_block.
2693         * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
2694         constant PHI arguments without crashing.  Use PHI_ARG_DEF_FROM_EDGE.
2696 2022-08-11  Richard Biener  <rguenther@suse.de>
2698         * gimple-range-path.h (path_range_query::compute_imports):
2699         Take path as argument, not the exit block.
2700         * gimple-range-path.cc (path_range_query::compute_imports):
2701         Likewise, and adjust, avoiding possibly stale m_path.
2702         (path_range_query::compute_outgoing_relations): Register
2703         relations for all conditionals.
2704         * tree-ssa-threadbackward.cc (back_threader::find_paths):
2705         Adjust.
2707 2022-08-11  Kewen Lin  <linkw@linux.ibm.com>
2709         * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
2710         oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
2711         (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
2713 2022-08-11  Kewen Lin  <linkw@linux.ibm.com>
2715         * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
2716         Remove function declaration.
2718 2022-08-10  Richard Biener  <rguenther@suse.de>
2720         PR tree-optimization/106513
2721         * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
2722         for head_marker.
2724 2022-08-10  Martin Liska  <mliska@suse.cz>
2726         PR lto/106328
2727         * opts-jobserver.h (struct jobserver_info): Add pipefd.
2728         (jobserver_info::connect): New.
2729         (jobserver_info::disconnect): Likewise.
2730         (jobserver_info::get_token): Likewise.
2731         (jobserver_info::return_token): Likewise.
2732         * opts-common.cc: Implement the new functions.
2734 2022-08-10  Martin Liska  <mliska@suse.cz>
2736         * opts-jobserver.h: Add one member.
2737         * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
2738         format of --jobserver-auth.
2740 2022-08-10  Martin Liska  <mliska@suse.cz>
2742         * gcc.cc (driver::detect_jobserver): Remove and move to
2743         jobserver.h.
2744         * lto-wrapper.cc (jobserver_active_p): Likewise.
2745         (run_gcc): Likewise.
2746         * opts-jobserver.h: New file.
2747         * opts-common.cc (jobserver_info::jobserver_info): New function.
2749 2022-08-09  Roger Sayle  <roger@nextmovesoftware.com>
2751         * config/i386/i386-features.cc (scalar_chain::convert_compare):
2752         Create new pseudos only when/if needed.  Add support for TEST,
2753         i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
2754         When broadcasting V2DImode and V4SImode use new pseudo register.
2755         (timode_scalar_chain::convert_op): Do nothing if operand is
2756         already V1TImode.  Avoid generating useless SUBREG conversions,
2757         i.e. (SUBREG:V1TImode (REG:V1TImode) 0).  Handle CONST_WIDE_INT
2758         in addition to CONST_INT by using CONST_SCALAR_INT_P.
2759         (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
2760         CONST_WIDE_INT and CONST_INT.  Recognize new *testti_doubleword
2761         pattern as an STV candidate.
2762         (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
2763         operands in binary logic operations.
2764         * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
2765         for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
2766         as regular PTEST, i.e. cost->sse_op.
2767         * config/i386/i386.md (*testti_doubleword): New pre-reload
2768         define_insn_and_split that recognizes comparison of TI mode AND
2769         against zero.
2770         * config/i386/sse.md (*ptest<mode>_and): New pre-reload
2771         define_insn_and_split that recognizes UNSPEC_PTEST of identical
2772         AND operands.
2774 2022-08-09  Roger Sayle  <roger@nextmovesoftware.com>
2775             Richard Biener  <rguenther@suse.de>
2777         PR middle-end/21137
2778         PR tree-optimization/98954
2779         * fold-const.cc (fold_binary_loc): Remove optimizations to
2780         optimize ((X >> C1) & C2) ==/!= 0.
2781         * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
2782         check, and handle all values of INTEGER_CSTs @2 and @3.
2783         (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
2784         checks, and handle all values of INTEGER_CSTs @2 and @3.
2786 2022-08-09  David Malcolm  <dmalcolm@redhat.com>
2788         * doc/invoke.texi (Static Analyzer Options): Add notes on which
2789         functions the analyzer has hardcoded knowledge of.
2791 2022-08-09  Andrew Stubbs  <ams@codesourcery.com>
2793         * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
2794         (num_arg_regs): Allow vector arguments.
2795         (gcn_function_arg): Likewise.
2796         (gcn_function_arg_advance): Likewise.
2797         (gcn_arg_partial_bytes): Likewise.
2798         (gcn_return_in_memory): Likewise.
2799         (gcn_expand_epilogue): Get return value from v8.
2800         * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
2801         (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
2802         (FIRST_VPARM_REG): New.
2803         (FUNCTION_ARG_REGNO_P): Allow vector parameters.
2804         (struct gcn_args): Add vnum field.
2805         (LIBCALL_VALUE): All vector return values.
2806         * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
2807         (gcn_call_value_indirect): Likewise.
2809 2022-08-09  Richard Biener  <rguenther@suse.de>
2811         * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
2812         directly.  Avoid update_ssa when in SSA form.
2813         (expand_omp_atomic_store): Likewise.
2814         (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
2815         form.
2816         (expand_omp_atomic_pipeline): Likewise.
2817         (expand_omp_atomic_mutex): Likewise.
2818         * tree-parloops.cc (gen_parallel_loop): Use
2819         TODO_update_ssa_no_phi after loop_version.
2821 2022-08-09  Richard Biener  <rguenther@suse.de>
2823         * doc/invoke.texi (max-fsm-thread-length): Remove.
2824         * params.opt (max-fsm-thread-length): Likewise.
2825         * tree-ssa-threadbackward.cc
2826         (back_threader_profitability::profitable_path_p): Do not
2827         check max-fsm-thread-length.
2829 2022-08-09  Richard Biener  <rguenther@suse.de>
2831         PR tree-optimization/106514
2832         * params.opt (max-jump-thread-paths): New.
2833         * doc/invoke.texi (max-jump-thread-paths): Document.
2834         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
2835         Honor max-jump-thread-paths, take overall_path argument.
2836         (back_threader::find_paths): Pass 1 as initial overall_path.
2838 2022-08-09  Tobias Burnus  <tobias@codesourcery.com>
2840         PR middle-end/106492
2841         * omp-low.cc (lower_rec_input_clauses): Add missing folding
2842         to data type of linear-clause list item.
2844 2022-08-08  Andrew MacLeod  <amacleod@redhat.com>
2846         PR tree-optimization/106556
2847         * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
2848           type of the cond_expr operands being evaluted.
2850 2022-08-08  Tom Honermann  <tom@honermann.net>
2852         * ginclude/stdatomic.h (atomic_char8_t,
2853         ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
2855 2022-08-08  Andrew Pinski  <apinski@marvell.com>
2857         PR middle-end/103645
2858         * gimplify.cc (gimplify_init_constructor): Don't build/add
2859         gimple assignment of an empty type.
2861 2022-08-08  Richard Biener  <rguenther@suse.de>
2863         PR lto/106540
2864         PR lto/106334
2865         * dwarf2out.cc (dwarf2out_register_external_die): Restore
2866         original assert.
2867         * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
2868         to input DECL_INITIAL, avoiding to commit drefs.
2870 2022-08-07  Roger Sayle  <roger@nextmovesoftware.com>
2872         * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
2873         for x86_64_hilo_general_operand to general operand.  Call
2874         force_reg on parts that are not x86_64_immediate_operand.
2876 2022-08-05  David Malcolm  <dmalcolm@redhat.com>
2878         PR analyzer/105947
2879         * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
2881 2022-08-05  Roger Sayle  <roger@nextmovesoftware.com>
2883         * expmed.cc (emit_store_flag_1): Move code to expand double word
2884         equality and inequality against zero or -1, using word operations,
2885         to after trying to use the backend's cstore<mode>4 optab/expander.
2887 2022-08-05  Tamar Christina  <tamar.christina@arm.com>
2889         PR middle-end/106534
2890         * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
2891         value_replacement and store_elim from diamonds.
2893 2022-08-05  Richard Biener  <rguenther@suse.de>
2895         * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
2896         Check whether the registry register_path rejected the path.
2897         (back_threader_registry::register_path): Return whether
2898         register_jump_thread succeeded.
2900 2022-08-05  Aldy Hernandez  <aldyh@redhat.com>
2902         PR tree-optimization/106514
2903         * value-range.cc (unsupported_range::unsupported_range): Move...
2904         * value-range.h (unsupported_range::unsupported_range): ...here.
2905         (unsupported_range::set_undefined): New.
2907 2022-08-05  Richard Biener  <rguenther@suse.de>
2909         PR tree-optimization/106533
2910         * tree-loop-distribution.cc (loop_distribution::execute): Continue
2911         analyzing the inner loops when find_seed_stmts_for_distribution
2912         fails.
2914 2022-08-05  Andrew Pinski  <apinski@marvell.com>
2916         * config/riscv/predicates.md (splittable_const_int_operand):
2917         Remove the check for TARGET_64BIT for single bit const values.
2919 2022-08-04  Andrew MacLeod  <amacleod@redhat.com>
2921         PR tree-optimization/106514
2922         * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
2923         Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
2925 2022-08-04  Tamar Christina  <tamar.christina@arm.com>
2927         * match.pd: New bit_not rule.
2929 2022-08-04  Tamar Christina  <tamar.christina@arm.com>
2931         PR middle-end/106519
2932         * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
2933         diamond shapes.
2935 2022-08-04  Sam Feifer  <sfeifer@redhat.com>
2937         PR tree-optimization/106243
2938         * match.pd (-x & 1): New simplification.
2940 2022-08-04  Richard Biener  <rguenther@suse.de>
2942         PR tree-optimization/106521
2943         * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
2944         CFG cleanup manually before rewriting into LC SSA.
2946 2022-08-04  Richard Biener  <rguenther@suse.de>
2948         * tree-ssa-threadbackward.cc (populate_worklist): Remove.
2949         (back_threader::resolve_phi): Likewise.
2950         (back_threader::find_paths_to_names): Rewrite greedy search.
2952 2022-08-04  Ilya Leoshkevich  <iii@linux.ibm.com>
2954         * config/s390/vector.md (V_HW_FT): New iterator.
2955         * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
2956         of V_HW.
2958 2022-08-03   Michael Meissner  <meissner@linux.ibm.com>
2960         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
2961         setting -mblock-ops-vector-pair.
2963 2022-08-03  Andrew MacLeod  <amacleod@redhat.com>
2965         PR tree-optimization/106514
2966         * value-relation.cc (path_oracle::killing_def) Do not walk the
2967           equivalence set clearing bits.
2969 2022-08-03  Tamar Christina  <tamar.christina@arm.com>
2971         * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
2972         sequence of a three-way conditional.
2973         (replace_phi_edge_with_variable): Support diamonds.
2974         (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
2975         min/max.
2976         (strip_bit_not, invert_minmax_code): New.
2978 2022-08-03  Richard Earnshaw  <rearnsha@arm.com>
2980         PR rtl-optimization/106187
2981         * alias.h (mems_same_for_tbaa_p): Declare.
2982         * alias.cc (mems_same_for_tbaa_p): New function.
2983         * dse.cc (record_store): Use it instead of open-coding
2984         alias check.
2985         * cselib.h (cselib_redundant_set_p): Declare.
2986         * cselib.cc: Include alias.h
2987         (cselib_redundant_set_p): New function.
2988         * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
2989         of rtx_equal_for_cselib_p.
2990         * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
2991         (reload_cse_noop_set_p): Delete.
2993 2022-08-03  Martin Liska  <mliska@suse.cz>
2995         * doc/gcov-dump.texi: Document the new option.
2996         * gcov-dump.cc (main): Parse the new option.
2997         (print_usage): Show the option.
2998         (tag_counters): Sort key:value pairs of TOP N counter.
3000 2022-08-03  Martin Liska  <mliska@suse.cz>
3002         * profile.cc (compute_branch_probabilities): Do not collect
3003         stats unless TDF_DETAILS.
3005 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
3006             Uroš Bizjak  <ubizjak@gmail.com>
3008         PR target/47949
3009         * config/i386/i386.md (peephole2): New peephole2 to convert
3010         SWI48 moves to/from %rax/%eax where the src is dead to xchg,
3011         when optimizing for minimal size with -Oz.
3013 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
3015         * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
3016         to split comparisons against -1 using AND and CMP -1 instructions.
3018 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
3020         * config/i386/i386-features.cc (compute_convert_gain): Add gain
3021         for converting suitable TImode shift to a V1TImode shift.
3022         (timode_scalar_chain::convert_insn): Add support for converting
3023         suitable ASHIFT and LSHIFTRT.
3024         (timode_scalar_to_vector_candidate_p): Consider logical shifts
3025         by integer constants that are multiples of 8 to be candidates.
3027 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
3028             Segher Boessenkool  <segher@kernel.crashing.org>
3029             Richard Sandiford  <richard.sandiford@arm.com>
3031         * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
3032         optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
3033         that are all positive to complement the existing FFS and
3034         idempotent ABS simplifications.
3035         <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
3036         val_signbit_known_clear_p is true of the operand.
3037         Simplify sign extensions of SUBREG truncations of operands
3038         that are already suitably (zero) extended.
3039         <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
3040         of operands that are already suitably zero extended.
3042 2022-08-02  Andrew MacLeod  <amacleod@redhat.com>
3044         PR tree-optimization/106510
3045         * gimple-range-fold.cc (fur_source::register_outgoing_edges):
3046           Check for unsupported statements early.
3048 2022-08-02  Andrew MacLeod  <amacleod@redhat.com>
3050         PR tree-optimization/106474
3051         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
3052         range of equivalences that may contribute to the range.
3054 2022-08-02  Jose E. Marchesi  <jose.marchesi@oracle.com>
3056         * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
3057         encoding bit in BTF.
3059 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
3061         * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
3062         irange check.
3063         (tree_lower_bound): New.
3064         (tree_upper_bound): New.
3065         (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
3066         vrange.
3067         * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
3068         argument to vrange.
3070 2022-08-02  Richard Biener  <rguenther@suse.de>
3072         * tree-ssa-threadbackward.cc
3073         (back_threader_profitability::profitable_path_p): Apply
3074         size constraints to all paths again.
3076 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
3078         * range-op-float.cc (finite_operands_p): New.
3079         (frelop_early_resolve): New.
3080         (default_frelop_fold_range): New.
3081         (class foperator_equal): New.
3082         (class foperator_not_equal): New.
3083         (class foperator_lt): New.
3084         (class foperator_le): New.
3085         (class foperator_gt): New.
3086         (class foperator_ge): New.
3087         (class foperator_unordered): New.
3088         (class foperator_ordered): New.
3089         (class foperator_relop_unknown): New.
3090         (floating_op_table::floating_op_table): Add above classes to
3091         floating op table.
3092         * value-range.h (frange::supports_p): Enable.
3094 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
3096         * tree-core.h (struct tree_ssa_name): Add frange_info and
3097         reshuffle the rest.
3098         * value-range-storage.cc (vrange_storage::alloc_slot): Add case
3099         for frange.
3100         (vrange_storage::set_vrange): Same.
3101         (vrange_storage::get_vrange): Same.
3102         (vrange_storage::fits_p): Same.
3103         (frange_storage_slot::alloc_slot): New.
3104         (frange_storage_slot::set_frange): New.
3105         (frange_storage_slot::get_frange): New.
3106         (frange_storage_slot::fits_p): New.
3107         * value-range-storage.h (class frange_storage_slot): New.
3109 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
3111         * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
3112         query to integrals.
3114 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
3116         * value-range.cc (frange::set): Initialize m_props and cleanup.
3118 2022-08-02  Richard Biener  <rguenther@suse.de>
3120         PR tree-optimization/106497
3121         * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
3122         Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
3124 2022-08-02  Martin Liska  <mliska@suse.cz>
3126         * profile.cc (compute_branch_probabilities): Dump details only
3127         if TDF_DETAILS.
3128         * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
3129         TDF_ADDRESS is used, it makes comparison harder.
3131 2022-08-02  Richard Biener  <rguenther@suse.de>
3133         PR tree-optimization/106498
3134         * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
3135         SSA update here.
3136         (expand_omp_for): Or here.
3137         (execute_expand_omp): Instead schedule it here together
3138         with CFG cleanup via TODO.
3140 2022-08-02  Richard Biener  <rguenther@suse.de>
3142         PR lto/106334
3143         * dwarf2out.cc (dwarf2out_register_external_die): Adjust
3144         assert.
3146 2022-08-02  Richard Biener  <rguenther@suse.de>
3148         PR tree-optimization/106495
3149         * tree-ssa-threadbackward.cc
3150         (back_threader_profitability::profitable_path_p): If known_edge
3151         is probably never executed avoid threading.
3153 2022-08-01  David Malcolm  <dmalcolm@redhat.com>
3155         * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
3156         error.
3158 2022-08-01  Roger Sayle  <roger@nextmovesoftware.com>
3159             Uroš Bizjak  <ubizjak@gmail.com>
3161         PR target/106481
3162         * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
3163         Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
3164         CONST_VECTOR.
3166 2022-08-01  H.J. Lu  <hjl.tools@gmail.com>
3168         PR target/83782
3169         * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
3170         (TARGET_IFUNC_REF_LOCAL_OK): Use it.
3172 2022-08-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
3174         PR debug/106263
3175         * ctfc.h (struct ctf_dtdef): Add field linkage.
3176         * ctfc.cc (ctf_add_function): Set ctti_linkage.
3177         * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
3178         function types and subprograms.
3179         * btfout.cc (btf_asm_func_type): Emit linkage information for the
3180         function.
3181         (btf_dtd_emit_preprocess_cb): Propagate the linkage information
3182         for functions.
3184 2022-08-01  Andrew Stubbs  <ams@codesourcery.com>
3185             Jakub Jelinek   <jakub@redhat.com>
3187         * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
3188         the mask type.
3190 2022-08-01  Sam Feifer  <sfeifer@redhat.com>
3192         PR tree-optimization/104992
3193         * match.pd (x / y * y == x): New simplification.
3195 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
3197         * value-range.cc (tree_compare): New.
3198         (frange::set): Make more general.
3199         (frange::normalize_kind): Cleanup and return bool.
3200         (frange::union_): Use normalize_kind return value.
3201         (frange::intersect): Same.
3202         (frange::verify_range): Remove unnecessary else.
3203         * value-range.h (vrp_val_max): Move before frange class.
3204         (vrp_val_min): Same.
3205         (frange::frange): Remove set to m_type.
3207 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
3209         * value-range.cc (vrange::supports_type_p): Use const_tree.
3210         (irange::supports_type_p): Same.
3211         (frange::supports_type_p): Same.
3212         * value-range.h (Value_Range::supports_type_p): Same.
3213         (irange::supports_p): Same.
3215 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
3217         * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
3218         query SCEV for integers.
3219         (fold_using_range::range_of_ssa_name_with_loop_info): Remove
3220         irange check.
3222 2022-07-31  Roger Sayle  <roger@nextmovesoftware.com>
3224         * config/i386/i386.md (define_expand <any_rotate>ti3): For
3225         rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
3226         (rot[lr]64ti2_doubleword): New post-reload splitter.
3228 2022-07-31  Roger Sayle  <roger@nextmovesoftware.com>
3229             H.J. Lu  <hjl.tools@gmail.com>
3231         PR target/106450
3232         * config/i386/i386-features.cc (timode_check_non_convertible_regs):
3233         Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
3234         (timode_remove_non_convertible_regs): Update comment.
3235         Call timode_check_non_convertible_reg on all TImode register
3236         DEFs and USEs in each instruction.
3238 2022-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
3240         * config/xtensa/xtensa.md: Change hard register number used in
3241         the split patterns for indirect sibling call fixups from 10 to 11,
3242         the last free one for the CALL0 ABI.
3244 2022-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
3246         * config/xtensa/xtensa.cc (xtensa_rtx_costs):
3247         Add new case for IF_THEN_ELSE.
3249 2022-07-29  Andrew Stubbs  <ams@codesourcery.com>
3251         * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
3252         (<expander><mode>3<exec>): Use V_INT_noHI.
3253         (v<expander><mode>3<exec>): Likewise.
3255 2022-07-29  Andrew Stubbs  <ams@codesourcery.com>
3257         * config/gcn/gcn.md (one_cmpldi2): New.
3259 2022-07-29  Richard Biener  <rguenther@suse.de>
3261         PR tree-optimization/105679
3262         * tree-ssa-threadbackward.cc
3263         (back_threader_profitability::profitable_path_p): Avoid threading
3264         when the entry edge is probably never executed.
3266 2022-07-29  Richard Biener  <rguenther@suse.de>
3268         PR tree-optimization/106422
3269         * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
3270         Check whether we can copy thread blocks and cancel the thread if not.
3272 2022-07-29  Jakub Jelinek  <jakub@redhat.com>
3274         PR middle-end/106449
3275         * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
3276         iterators in non-rectangular simd loops.  Unshare fd->loops[i].n2
3277         or n2 before regimplifying it inside of a condition.
3279 2022-07-29  Jakub Jelinek  <jakub@redhat.com>
3281         * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
3282         extract_omp_for_update_vars, expand_omp_for_ordered_loops,
3283         expand_omp_simd): Don't fold_convert second argument to
3284         fold_build_pointer_plus to sizetype.
3286 2022-07-29  Lulu Cheng  <chenglulu@loongson.cn>
3288         * config.in: Regenerate.
3289         * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
3290         Select the value of the macro definition according to whether
3291         HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
3292         * configure: Regenerate.
3293         * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
3295 2022-07-29  Richard Biener  <rguenther@suse.de>
3297         * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
3298         Use CONVERT_EXPR_CODE_P.
3300 2022-07-29  Richard Biener  <rguenther@suse.de>
3302         * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
3303         get_vectype_for_scalar_type instead of
3304         vect_get_vector_types_for_stmt.
3306 2022-07-28  David Malcolm  <dmalcolm@redhat.com>
3308         PR analyzer/105893
3309         * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
3311 2022-07-28  David Malcolm  <dmalcolm@redhat.com>
3313         * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
3314         url.
3315         (Static Analyzer Options): Likewise.  Add urefs for all of the
3316         warnings that have associated CWE identifiers.
3318 2022-07-28  Maciej W. Rozycki  <macro@embecosm.com>
3320         * doc/implement-c.texi (Floating point implementation): Mention
3321         `-fno-trapping-math' in the context of FENV_ACCESS pragma.
3322         * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
3323         implication in the descriptions of `-fno-trapping-math' and
3324         `-frounding-math'.
3326 2022-07-28  Maciej W. Rozycki  <macro@embecosm.com>
3328         * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
3329         (QUIET_PATTERN): New int attribute.
3330         (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
3331         RTL insns entirely within the preparation statements.
3332         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
3333         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
3334         insns.
3335         (*riscv_fsnvsnan<mode>2): New insn.
3337 2022-07-28  Richard Biener  <rguenther@suse.de>
3339         PR middle-end/106457
3340         * tree.cc (array_at_struct_end_p): Handle array objects
3341         specially.
3343 2022-07-28  Jakub Jelinek  <jakub@redhat.com>
3345         PR tree-optimization/106099
3346         * internal-fn.def (TRAP): New internal fn.
3347         * internal-fn.h (expand_TRAP): Declare.
3348         * internal-fn.cc (expand_TRAP): Define.
3349         * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
3350         use internal fn rather than builtin.
3352 2022-07-27  Andrew Carlotti  <andrew.carlotti@arm.com>
3354         * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
3356 2022-07-27  WANG Xuerui  <i@xen0n.name>
3358         * doc/invoke.texi: Document -m[no-]explicit-relocs for
3359         LoongArch.
3361 2022-07-27  Maciej W. Rozycki  <macro@embecosm.com>
3363         * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
3364         duplicate backslashes.
3366 2022-07-27  Maciej W. Rozycki  <macro@embecosm.com>
3368         * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
3369         case.
3371 2022-07-27  Jakub Jelinek  <jakub@redhat.com>
3373         PR debug/106261
3374         * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
3375         output asm thunks for -dx.
3377 2022-07-27  Jakub Jelinek  <jakub@redhat.com>
3379         PR middle-end/106332
3380         * opts-common.cc (candidates_list_and_hint): Add gcc_assert
3381         that candidates is not an empty vector.
3383 2022-07-27  Xi Ruoyao  <xry111@xry111.site>
3385         * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
3386         assembler supports explicit relocation for LoongArch.
3387         * configure: Regenerate.
3388         * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
3389         Define to 0 if not defined.
3390         * config/loongarch/genopts/loongarch.opt.in
3391         (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
3392         * config/loongarch/loongarch.opt: Regenerate.
3394 2022-07-26  Peter Bergner  <bergner@linux.ibm.com>
3396         PR c/106016
3397         * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
3399 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
3401         * config/loongarch/loongarch-opts.cc: Modify the output message string
3402         of the warning.
3404 2022-07-26  Martin Liska  <mliska@suse.cz>
3406         * doc/tm.texi.in: Fix placement of defmac.
3407         * doc/tm.texi: Copy.
3409 2022-07-26  Martin Liska  <mliska@suse.cz>
3411         * doc/tm.texi.in: Fix cross @defmac and @hook.
3412         * doc/tm.texi: Copy.
3414 2022-07-26  Aldy Hernandez  <aldyh@redhat.com>
3416         PR tree-optimization/106444
3417         * value-range-pretty-print.cc (vrange_printer::visit): Handle
3418         legacy ranges.
3419         (vrange_printer::print_irange_bound): Work on wide_int's.
3420         * value-range-pretty-print.h (print_irange_bound): Same.
3421         * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
3423 2022-07-26  Richard Biener  <rguenther@suse.de>
3425         * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
3426         points to a constant continue checking ptr2.
3428 2022-07-26  Andrew Carlotti  <Andrew.Carlotti@arm.com>
3430         * config/aarch64/aarch64-builtins.cc
3431         (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
3432         (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
3433         (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
3434         (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
3435         (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
3436         (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
3437         (MODE_q_p128): Define macro to map to corresponding mode name.
3438         (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
3439         (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
3440         (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
3441         corresponding qualifier name.
3442         (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
3443         (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
3444         functions for the above mappings
3445         (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
3446         (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
3447         (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
3448         (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
3449         for all vreinterpret intrinsics
3450         (enum aarch64_builtins): Add vreinterpret function codes
3451         (aarch64_init_simd_intrinsics): New
3452         (handle_arm_neon_h): Improved comment.
3453         (aarch64_general_fold_builtin): Fold vreinterpret calls
3454         * config/aarch64/arm_neon.h
3455         (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
3456         (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
3457         (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
3458         (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
3459         (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
3460         (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
3461         (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
3462         (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
3463         (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
3464         (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
3465         (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
3466         (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
3467         (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
3468         (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
3469         (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
3470         (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
3471         (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
3472         (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
3473         (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
3474         (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
3475         (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
3476         (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
3477         (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
3478         (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
3479         (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
3480         (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
3481         (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
3482         (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
3483         (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
3484         (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
3485         (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
3486         (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
3487         (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
3488         (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
3489         (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
3490         (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
3491         (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
3492         (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
3493         (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
3494         (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
3495         (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
3496         (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
3497         (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
3498         (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
3499         (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
3500         (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
3501         (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
3502         (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
3503         (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
3504         (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
3505         (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
3506         (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
3507         (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
3508         (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
3509         (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
3510         (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
3511         (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
3512         (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
3513         (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
3514         (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
3515         (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
3516         (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
3517         (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
3518         (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
3519         (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
3520         (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
3521         (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
3522         (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
3523         (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
3524         (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
3525         (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
3526         (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
3527         (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
3528         (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
3529         (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
3530         (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
3531         (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
3532         (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
3533         (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
3534         (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
3535         (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
3536         (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
3537         (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
3538         (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
3539         (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
3540         (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
3541         (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
3542         (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
3543         (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
3544         (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
3545         (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
3546         (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
3547         (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
3548         (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
3549         (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
3550         (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
3551         (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
3552         (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
3553         (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
3554         (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
3555         (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
3556         (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
3557         (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
3558         (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
3559         (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
3560         (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
3561         (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
3562         (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
3563         (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
3564         (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
3565         (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
3566         (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
3567         (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
3568         (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
3569         (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
3570         (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
3571         (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
3572         (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
3573         (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
3574         (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
3575         (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
3576         (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
3577         (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
3578         (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
3579         (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
3580         (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
3581         (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
3582         (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
3583         (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
3584         (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
3585         (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
3586         (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
3587         (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
3588         (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
3589         (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
3590         (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
3591         (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
3592         (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
3593         (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
3594         (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
3595         (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
3596         (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
3597         (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
3598         (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
3599         (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
3600         (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
3601         (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
3602         (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
3603         (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
3604         (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
3605         (vreinterpretq_p128_bf16): Delete
3607 2022-07-26  Andrew Carlotti  <andrew.carlotti@arm.com>
3609         * config/aarch64/aarch64-builtins.cc
3610         (aarch64_simd_builtin_std_type): Rename to...
3611         (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
3612         (aarch64_lookup_simd_builtin_type): Rename to...
3613         (aarch64_simd_builtin_type): ...this. Add const/pointer
3614         support, and extract table lookup to...
3615         (aarch64_lookup_simd_type_in_table): ...this function.
3616         (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
3617         (aarch64_init_fcmla_laneq_builtins): Ditto.
3618         (aarch64_init_simd_builtin_functions): Ditto.
3620 2022-07-26  Andrew Carlotti  <andrew.carlotti@arm.com>
3622         * config/aarch64/aarch64-builtins.cc
3623         (aarch64_general_gimple_fold_builtin): Add combine.
3625 2022-07-26  Richard Biener  <rguenther@suse.de>
3627         PR tree-optimization/106189
3628         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
3629         Divide using offset_ints.
3631 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
3633         * common/config/loongarch/loongarch-common.cc:
3634         Enable '-fsection-anchors' when O1 and more advanced optimization.
3635         * config/loongarch/genopts/loongarch.opt.in: Add new option
3636         '-mexplicit-relocs', and enable by default.
3637         * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
3638         Delete function declaration.
3639         (loongarch_split_move_insn): Delete function declaration.
3640         (loongarch_split_symbol_type): Add function declaration.
3641         * config/loongarch/loongarch.cc (enum loongarch_address_type):
3642         Add new address type 'ADDRESS_LO_SUM'.
3643         (loongarch_classify_symbolic_expression): New function definitions.
3644         Classify the base of symbolic expression X, given that X appears in
3645         context CONTEXT.
3646         (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
3647         (loongarch_split_symbol_type): New function definitions.
3648         Determines whether the symbol load should be split into two instructions.
3649         (loongarch_valid_lo_sum_p): New function definitions.
3650         Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
3651         symbol has type SYMBOL_TYPE.
3652         (loongarch_classify_address): Add handling of 'LO_SUM'.
3653         (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
3654         (loongarch_signed_immediate_p): Sort code.
3655         (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
3656         (loongarch_const_insns): Add handling of 'HIGH'.
3657         (loongarch_split_move_insn_p): Add the static attribute to the function.
3658         (loongarch_emit_set): New function definitions.
3659         (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
3660         (loongarch_legitimize_tls_address): Add symbol handling when defining the
3661         TARGET_EXPLICIT_RELOCS macro.
3662         (loongarch_split_symbol): New function definitions. Split symbol.
3663         (loongarch_legitimize_address): Add codes see if the address can split into a high part
3664         and a LO_SUM.
3665         (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
3666         high and low.
3667         (loongarch_split_move_insn): Delete function definitions.
3668         (loongarch_output_move): Add support for HIGH and LO_SUM.
3669         (loongarch_print_operand_reloc): New function definitions.
3670         Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
3671         (loongarch_memmodel_needs_release_fence): Sort code.
3672         (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
3673         and LOW output.
3674         (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
3675         (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
3676         (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
3677         * config/loongarch/loongarch.md (movti): Delete the template.
3678         (*movti): Delete the template.
3679         (movtf): Delete the template.
3680         (*movtf): Delete the template.
3681         (*low<mode>): New template of normal symbol low address.
3682         (@tls_low<mode>): New template of tls symbol low address.
3683         (@ld_from_got<mode>): New template load address from got table.
3684         (@ori_l_lo12<mode>): New template.
3685         * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
3686         * config/loongarch/predicates.md: Add support for symbol_type HIGH.
3688 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
3690         * config/loongarch/constraints.md (a): Delete the constraint.
3691         (b): A constant call not local address.
3692         (h): Delete the constraint.
3693         (t): Delete the constraint.
3694         * config/loongarch/loongarch-opts.cc (loongarch_config_target):
3695         Remove cModel type support other than normal.
3696         * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
3697         Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
3698         (loongarch_split_symbol): Delete useless function declarations.
3699         (loongarch_split_symbol_type): Delete useless function declarations.
3700         * config/loongarch/loongarch.cc (enum loongarch_address_type):
3701         Delete unnecessary comment information.
3702         (loongarch_symbol_binds_local_p): Modified the judgment order of label
3703         and symbol.
3704         (loongarch_classify_symbol): Return symbol type. If symbol is a label,
3705         or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
3706         return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
3707         (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
3708         'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
3709         (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
3710         and 'SYMBOL_PCREL'.
3711         (loongarch_address_insns): Sort code.
3712         (loongarch_12bit_offset_address_p): Sort code.
3713         (loongarch_14bit_shifted_offset_address_p): Sort code.
3714         (loongarch_call_tls_get_addr): Sort code.
3715         (loongarch_legitimize_tls_address): Sort code.
3716         (loongarch_output_move): Remove schema support for cmodel other than normal.
3717         (loongarch_memmodel_needs_release_fence): Sort code.
3718         (loongarch_print_operand): Sort code.
3719         * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
3720         Rename to LARCH_12BIT_OFFSET_P.
3721         (LARCH_12BIT_OFFSET_P): New macro.
3722         * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
3723         support for cmodel other than normal.
3724         * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
3725         (is_const_call_plt_symbol): Delete this predicate.
3726         (is_const_call_global_noplt_symbol): Delete this predicate.
3727         (is_const_call_no_local_symbol): New predicate, determines whether it is a local
3728         symbol or label.
3730 2022-07-26  Kewen Lin  <linkw@linux.ibm.com>
3732         PR target/106091
3733         * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
3734         REG_EH_REGION when replacing one store insn having it.
3735         (replace_swapped_aligned_load): Likewise.
3737 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
3739         * Makefile.in (OBJS): Add range-op-float.o.
3740         * range-op.cc (get_float_handler): New.
3741         (range_op_handler::range_op_handler): Save code and type for
3742         delayed querying.
3743         (range_op_handler::oeprator bool): Move from header file, and
3744         add support for floats.
3745         (range_op_handler::fold_range): Add support for floats.
3746         (range_op_handler::op1_range): Same.
3747         (range_op_handler::op2_range): Same.
3748         (range_op_handler::lhs_op1_relation): Same.
3749         (range_op_handler::lhs_op2_relation): Same.
3750         (range_op_handler::op1_op2_relation): Same.
3751         * range-op.h (class range_operator_float): New.
3752         (class floating_op_table): New.
3753         * value-query.cc (range_query::get_tree_range): Add case for
3754         REAL_CST.
3755         * range-op-float.cc: New file.
3757 2022-07-25  Roger Sayle  <roger@nextmovesoftware.com>
3758             Uroš Bizjak  <ubizjak@gmail.com>
3760         PR target/91681
3761         * config/i386/i386-expand.cc (split_double_concat): A new helper
3762         function for setting a double word value from two word values.
3763         * config/i386/i386-protos.h (split_double_concat): Prototype here.
3764         * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
3765         (*add<dwi>3_doubleword_zext): New define_insn_and_split.
3766         (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
3767         (*concat<mode><dwi>3_1): New define_insn_and_split replacing
3768         previous define_split for implementing DST = (HI<<32)|LO as
3769         pair of move instructions, setting lopart and hipart.
3770         (*concat<mode><dwi>3_2): Likewise.
3771         (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
3772         (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
3774 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
3776         PR middle-end/106432
3777         * gimple-range.cc (gimple_ranger::range_on_edge): Return false
3778         when the result range type is unsupported.
3780 2022-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3782         * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
3784 2022-07-25  Richard Biener  <rguenther@suse.de>
3786         PR middle-end/106414
3787         * match.pd (~(x ^ y) -> x == y): Restrict to single bit
3788         precision types.
3790 2022-07-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3792         * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
3793         (@aarch64_rbit<mode>): ... to this and change it in...
3794         (ffs<mode>2,ctz<mode>2): ... here.
3795         (@aarch64_rev16<mode>): New.
3796         * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
3797         Define the following enum AARCH64_REV16, AARCH64_REV16L,
3798         AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
3799         (aarch64_init_data_intrinsics): New.
3800         (aarch64_general_init_builtins): Add call to
3801         aarch64_init_data_intrinsics.
3802         (aarch64_expand_builtin_data_intrinsic): New.
3803         (aarch64_general_expand_builtin): Add call to
3804         aarch64_expand_builtin_data_intrinsic.
3805         * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
3806         __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
3807         __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
3809 2022-07-25  Martin Liska  <mliska@suse.cz>
3811         * doc/extend.texi: Remove trailing whitespaces.
3812         * doc/invoke.texi: Likewise.
3814 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
3816         * value-range-pretty-print.cc (vrange_printer::visit): New.
3817         (vrange_printer::print_frange_prop): New.
3818         * value-range-pretty-print.h (class vrange_printer): Add visit and
3819         print_frange_prop.
3820         * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
3821         (vrange_allocator::alloc_frange): New.
3822         * value-range.cc (vrange::operator=): Handle frange.
3823         (vrange::operator==): Same.
3824         (frange::accept): New.
3825         (frange::set): New.
3826         (frange::normalize_kind): New.
3827         (frange::union_): New.
3828         (frange::intersect): New.
3829         (frange::operator=): New.
3830         (frange::operator==): New.
3831         (frange::supports_type_p): New.
3832         (frange::verify_range): New.
3833         * value-range.h (enum value_range_discriminator): Handle frange.
3834         (class fp_prop): New.
3835         (FP_PROP_ACCESSOR): New.
3836         (class frange_props): New.
3837         (FRANGE_PROP_ACCESSOR): New.
3838         (class frange): New.
3839         (Value_Range::init): Handle frange.
3840         (Value_Range::operator=): Same.
3841         (Value_Range::supports_type_p): Same.
3842         (frange_props::operator==): New.
3843         (frange_props::union_): New.
3844         (frange_props::intersect): New
3845         (frange::frange): New.
3846         (frange::type): New.
3847         (frange::set_varying): New.
3848         (frange::set_undefined): New.
3850 2022-07-25  Peter Bergner  <bergner@linux.ibm.com>
3851             Kewen Lin  <linkw@linux.ibm.com>
3853         PR testsuite/106345
3854         * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
3855         to filter out all -mtune options.
3857 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
3859         * value-query.cc (range_query::get_value_range): Add assert.
3860         * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
3861         on unsupported types in vr_values.
3862         (simplify_using_ranges::simplify): Same.
3864 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
3866         * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
3867         types.
3868         * value-query.cc (get_ssa_name_range_info): Remove precision check.
3870 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
3872         * value-relation.cc (value_relation::set_relation): Remove assert.
3873         (path_oracle::register_relation): Exit when trying to register
3874         same SSA name relations.
3876 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
3878         * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
3879         (ranger_cache::range_from_dom): Same.
3880         * tree-ssa-dom.cc
3881         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
3883 2022-07-24  Roger Sayle  <roger@nextmovesoftware.com>
3884             H.J. Lu  <hjl.tools@gmail.com>
3886         PR target/106303
3887         PR target/106347
3888         * config/i386/i386-features.cc (make_vector_copies): Move from
3889         general_scalar_chain to scalar_chain.
3890         (convert_reg): Likewise.
3891         (convert_insn_common): New scalar_chain method split out from
3892         general_scalar_chain convert_insn.
3893         (convert_registers): Move from general_scalar_chain to
3894         scalar_chain.
3895         (scalar_chain::convert): Call convert_insn_common before calling
3896         convert_insn.
3897         (timode_remove_non_convertible_regs): Iterate until there are
3898         no further changes to the candidates.
3899         * config/i386/i386-features.h (scalar_chain::hash_map): Move
3900         from general_scalar_chain.
3901         (scalar_chain::convert_reg): Likewise.
3902         (scalar_chain::convert_insn_common): New shared method.
3903         (scalar_chain::make_vector_copies): Move from general_scalar_chain.
3904         (scalar_chain::convert_registers): Likewise.  No longer virtual.
3905         (general_scalar_chain::hash_map): Delete.  Moved to scalar_chain.
3906         (general_scalar_chain::convert_reg): Likewise.
3907         (general_scalar_chain::make_vector_copies): Likewise.
3908         (general_scalar_chain::convert_registers): Delete virtual method.
3909         (timode_scalar_chain::convert_registers): Likewise.
3911 2022-07-23  Immad Mir  <mirimmad@outlook.com>
3913         * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
3914         "Common Function Attributes" section.
3915         * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
3916         -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
3917         warnings may be emitted through usage of three function attributes used
3918         for static analysis of file descriptors namely fd_arg, fd_arg_read and
3919         fd_arg_write.
3921 2022-07-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
3923         * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
3924         Add a new insn_and_split pattern, and a few split patterns for
3925         spacial cases.
3927 2022-07-22  Richard Sandiford  <richard.sandiford@arm.com>
3929         * graphds.cc (graphds_scc): Fix algorithm attribution.
3931 2022-07-22  Richard Biener  <rguenther@suse.de>
3933         PR tree-optimization/106403
3934         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
3935         value valueization after check for IFN_MASKED_STORE or
3936         IFN_LEN_STORE.
3938 2022-07-22  Richard Biener  <rguenther@suse.de>
3940         PR tree-optimization/106397
3941         * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
3942         not update SSA form here.
3943         (mark_nontemporal_stores): Return whether we marked any
3944         non-temporal stores and inserted mfence.
3945         (loop_prefetch_arrays): Note when we need to update SSA.
3946         (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
3947         at the end of the pass.
3949 2022-07-22  Richard Biener  <rguenther@suse.de>
3951         PR tree-optimization/106387
3952         * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
3953         if ptr is not an SSA name.
3955 2022-07-22  liuhongt  <hongtao.liu@intel.com>
3957         PR target/106038
3958         * config/i386/mmx.md (<code><mode>3): New define_expand, it's
3959         original "<code><mode>3".
3960         (*<code><mode>3): New define_insn, it's original
3961         "<code><mode>3" be extended to handle memory and immediate
3962         operand with ix86_binary_operator_ok. Also adjust define_split
3963         after it.
3964         (mmxinsnmode): New mode attribute.
3965         (*mov<mode>_imm): Refactor with mmxinsnmode.
3966         * config/i386/predicates.md
3967         (register_or_x86_64_const_vector_operand): New predicate.
3969 2022-07-22  Will Schmidt  <will_schmidt@vnet.ibm.com>
3971         * config/rs6000/altivec.md:
3972         (vstrir_code_<mode>): Rename to...
3973         (vstrir_direct_<mode>): ... this.
3974         (vstrir_p_code_<mode>): Rename to...
3975         (vstrir_p_direct_<mode>): ... this.
3976         (vstril_code_<mode>): Rename to...
3977         (vstril_direct_<mode>): ... this.
3978         (vstril_p_code_<mode>): Rename to...
3979         (vstril_p_direct_<mode>): ... this.
3981 2022-07-22  Will Schmidt  <will_schmidt@vnet.ibm.com>
3983         * config/rs6000/rs6000-c.cc: Update comments.
3984         (rs6000_target_modify_macros): Remove bu_mask references.
3985         (rs6000_define_or_undefine_macro): Replace bu_mask reference
3986         with a rs6000_cpu value check.
3987         (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
3988         parameter from call to rs6000_target_modify_macros.
3989         * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
3990         rs6000_target_modify_macros_ptr): Remove parameter from extern
3991         for the prototype.
3992         * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
3993         parameter from prototype, update calls to this function.
3994         (rs6000_print_builtin_options): Remove prototype, call and function.
3995         (rs6000_builtin_mask_calculate): Remove function.
3996         (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
3997         (rs6000_option_override_internal): Remove rs6000_builtin_mask var
3998         and builtin_mask debug output.
3999         (rs6000_builtin_mask_names): Remove.
4000         (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
4001         diff_bumask references; Update calls to rs6000_target_modify_ptr.
4002         * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
4004 2022-07-21  Sam Feifer  <sfeifer@redhat.com>
4006         PR tree-optimization/94920
4007         * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
4008         (x <= 0 ? -x : 0): New simplification.
4010 2022-07-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4012         Revert:
4013         2022-07-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4015         * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
4016         instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
4018 2022-07-21  Richard Biener  <rguenther@suse.de>
4020         PR tree-optimization/106379
4021         * match.pd (~(a ^ b) -> a == b): New pattern.
4023 2022-07-21  Richard Biener  <rguenther@suse.de>
4025         PR tree-optimization/106378
4026         * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
4027         LEN_STORE, add mode to initialize a may-def and handle
4028         MASK_STORE that way.
4029         (dse_optimize_stmt): Query may-defs.  Handle internal
4030         functions LEN_STORE and MASK_STORE similar to how
4031         we handle memory builtins but without byte tracking.
4033 2022-07-21  Richard Biener  <rguenther@suse.de>
4035         PR tree-optimization/106365
4036         * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
4037         the offset to start encoding of RHS from.
4038         (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
4039         (vn_walk_cb_data::push_partial_def): Allow the first partial
4040         definition to be fully providing the def.  Offset RHS
4041         before encoding if requested.
4042         (vn_reference_lookup_3): Initialize def_rhs everywhere.
4043         Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
4045 2022-07-21  Richard Biener  <rguenther@suse.de>
4047         * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
4048         store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
4049         and IFN_MASK_LOAD_LANES.
4050         (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
4051         IFN_LEN_STORE and IFN_MASK_STORE_LANES.
4053 2022-07-20  Alexander Monakov  <amonakov@ispras.ru>
4055         PR rtl-optimization/101347
4056         * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
4057         population of nonlocal_goto_handler_labels from here ...
4058         (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
4059         * rtlanal.cc (remove_node_from_insn_list): Verify that a
4060         duplicate is not present in the remainder of the list.
4062 2022-07-20  Alexander Monakov  <amonakov@ispras.ru>
4064         * rtl.h (remove_node_from_expr_list): Remove declaration.
4065         * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
4067 2022-07-20  Richard Biener  <rguenther@suse.de>
4069         * tree-vect-data-refs.cc (bump_vector_ptr): Return an
4070         invariant updated address when the input was invariant.
4072 2022-07-20  liuhongt  <hongtao.liu@intel.com>
4074         * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
4075         and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
4076         * timevar.def (TV_TREE_POWCABS): New timevar.
4077         * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
4078         * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
4079         (class pass_expand_powcabs): Ditto.
4080         (pass_expand_powcabs::execute): Ditto.
4081         (make_pass_expand_powcabs): Ditto.
4082         (pass_cse_sincos::execute): Remove pow/cabs expand part.
4083         (make_pass_cse_sincos): Ditto.
4085 2022-07-20  Richard Biener  <richard.guenther@gmail.com>
4086             Hongtao Liu  <hongtao.liu@intel.com>
4088         PR tree-optimization/106010
4089         * tree-complex.cc (init_dont_simulate_again): Lower complex
4090         type move.
4091         (expand_complex_move): Also expand COMPLEX_CST for rhs.
4093 2022-07-19  Andrew MacLeod  <amacleod@redhat.com>
4095         * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
4096           for incoming ranges on join nodes and add to worklist.
4098 2022-07-19  Andrew MacLeod  <amacleod@redhat.com>
4100         * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
4101         (ranger_cache::range_from_dom): Put all nodes to be calculated
4102         in the worklist and resolve after the dom walk.
4103         * gimple-range-cache.h (resolve_dom): New prototype.
4105 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
4107         * tree-cfg.cc (gimple_verify_flow_info): Check placement of
4108         returns_twice calls.
4110 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
4112         * cfghooks.cc (duplicate_block): Expand comment.
4113         * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
4114         calls that may return twice.
4116 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
4118         * tree-ssa-sink.cc (select_best_block): Punt if selected block
4119         has incoming abnormal edges.
4121 2022-07-19  Martin Liska  <mliska@suse.cz>
4123         * doc/extend.texi: Remove trailing :.
4125 2022-07-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4127         * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
4128         instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
4130 2022-07-19  Richard Biener  <rguenther@suse.de>
4132         PR middle-end/106331
4133         * builtins.cc (get_memory_rtx): Compute alignment from
4134         the original address and set MEM_OFFSET to unknown when
4135         we create a MEM_EXPR from the base object of the address.
4137 2022-07-19  Richard Biener  <rguenther@suse.de>
4139         PR lto/106334
4140         * dwarf2out.cc (dwarf2out_register_external_die): Allow
4141         map entry re-use during WPA.
4143 2022-07-19  Roger Sayle  <roger@nextmovesoftware.com>
4144             Richard Biener  <rguenther@suse.de>
4146         PR c/106264
4147         * builtins.cc (fold_builtin_frexp): Call suppress_warning on
4148         COMPOUND_EXPR to silence spurious warning if result isn't used.
4149         (fold_builtin_modf): Likewise.
4150         (do_mpfr_remquo): Likewise.
4152 2022-07-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
4154         * config/xtensa/xtensa.cc (xtensa_rtx_costs):
4155         Change the relative cost of '(set (reg) (const_int N))' where
4156         N fits into signed 12-bit from 4 to 0 if optimizing for size.
4157         And use the appropriate macro instead of the bare number 4.
4159 2022-07-18  Andrew MacLeod  <amacleod@redhat.com>
4161         PR tree-optimization/106280
4162         * value-relation.cc (dom_oracle::register_relation): Register
4163         transitives only when it is possible for there to be one.
4164         (dom_oracle::set_one_relation): Return NULL if this is an
4165         existing relation.
4167 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
4169         * doc/invoke.texi (RISC-V Options): Add index references for
4170         `mrelax' and `mriscv-attribute'.
4172 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
4174         * doc/invoke.texi (Option Summary): Add missing second space
4175         around `-mstack-protector-guard-reg='.
4177 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
4179         * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
4180         (RISC-V Options): Likewise, and `-mriscv-attribute'.
4182 2022-07-18  Claudiu Zissulescu  <claziss@gmail.com>
4184         * config/arc/arc-arch.h (arc_tune_attr): Add
4185         ARC_TUNE_ARCHS4X_REL31A variant.
4186         * config/arc/arc.cc (arc_override_options): Tune options for
4187         release 310a.
4188         (arc_sched_issue_rate): Use correct enum.
4189         (arc600_corereg_hazard): Textual change.
4190         (arc_hazard): Add release 310a tunning.
4191         * config/arc/arc.md (tune): Update and take into consideration new
4192         tune option.
4193         (tune_dspmpy): Likewise.
4194         (tune_store): New attribute.
4195         * config/arc/arc.opt (mtune): New tune option.
4196         * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
4197         (hs4x_brcc_op): New instruction rezervation.
4198         (hs4x_data_store_1_op): Likewise.
4199         * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
4200         * config/arc/arc-tables.opt: Regenerate.
4201         * config/arc/t-multilib: Likewise.
4202         * doc/invoke.texi (ARC): Update mcpu and tune sections.
4204 2022-07-18  Richard Biener  <rguenther@suse.de>
4206         * tree-loop-distribution.cc (loop_distribution::distribute_loop):
4207         When computing cost-based merging do not disregard builtin
4208         classified partitions in some cases.
4210 2022-07-18  Richard Sandiford  <richard.sandiford@arm.com>
4212         PR target/106253
4213         * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
4214         Delete.
4215         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
4216         * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
4217         Delete.
4218         * config/arm/arm_neon_builtins.def (copysignf): Delete.
4219         * config/arm/iterators.md (nvrint_pattern): New attribute.
4220         * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
4221         New pattern.
4222         (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
4223         Likewise.
4224         (neon_copysignf<mode>): Rename to...
4225         (copysign<mode>3): ...this.
4227 2022-07-18  Claudiu Zissulescu  <claziss@gmail.com>
4229         * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
4230         pointer first when in interrupts.
4232 2022-07-18  Richard Biener  <rguenther@suse.de>
4234         * tree-loop-distribution.cc (copy_loop_before): Add
4235         the ability to replace the original LC PHI defs.
4236         (generate_loops_for_partition): Pass through a flag
4237         whether to redirect original LC PHI defs.
4238         (generate_code_for_partition): Likewise.
4239         (loop_distribution::distribute_loop): Compute the partition
4240         that should provide the LC PHI defs for common reductions
4241         and pass that down.
4243 2022-07-18  Richard Ball  <richard.ball@arm.com>
4245         * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
4246         (aarch64_evpc_uzp): Likewise.
4247         (aarch64_evpc_zip): Likewise.
4249 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
4251         PR target/106231
4252         * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
4253         to recognize any_extend:DI of ctz:SI which is implicitly extended.
4254         (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
4255         extended ctz:SI that has preceding xor to break false dependency.
4257 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
4259         * config/i386/predicates.md (x86_64_const_vector_operand):
4260         Check the operand's mode matches the specified mode argument.
4262 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
4264         * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
4265         (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
4266         (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
4267         (vec_pack_trunc_qi): Update to specify the now required
4268         UNSPEC_MASKOP unspec.
4269         (vec_pack_trunc_<mode>): Likewise.
4271 2022-07-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
4273         * config/xtensa/xtensa.md
4274         (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
4275         *masktrue_const_shifted_mask): If the immediate for bitwise AND is
4276         represented as '-(1 << N)', decrease the lower bound of N from 12
4277         to 1.  And the other immediate for conditional branch is now no
4278         longer limited to zero, but also one of some positive integers.
4279         Finally, remove the checks of some conditions, because the comparison
4280         expressions that don't satisfy such checks are determined as
4281         compile-time constants and thus will be optimized away before
4282         RTL expansion.
4284 2022-07-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
4286         * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
4287         (xtensa_constantsynth_2insn): Change to try all three synthetic
4288         methods and to use the one that fits the immediate value of
4289         the seed into a Narrow Move Immediate instruction "MOVI.N"
4290         when the Code Density Option is configured.
4292 2022-07-15  H.J. Lu  <hjl.tools@gmail.com>
4294         PR target/85620
4295         * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
4296         false if callee has indirect_return attribute and caller
4297         doesn't.
4299 2022-07-15  Roger Sayle  <roger@nextmovesoftware.com>
4301         PR target/106273
4302         * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
4303         constraints to reflect the output is earlyclobber, unless it is
4304         the same register (pair) as one of the operands.
4306 2022-07-15  David Malcolm  <dmalcolm@redhat.com>
4308         * doc/invoke.texi (Static Analyzer Options): Add the new fd
4309         warnings to the initial gccoptlist, and to the list of those
4310         disabled by -fanalyzer-checker=taint.
4312 2022-07-15  Andrew Carlotti  <andrew.carlotti@arm.com>
4314         * config/aarch64/aarch64-builtins.cc
4315         (enum aarch64_type_qualifiers): Remove qualifier_internal.
4316         (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
4318 2022-07-15  Andrew Carlotti  <andrew.carlotti@arm.com>
4320         * config/aarch64/aarch64-builtins.cc
4321         (v1di_UP): Add V1DI mode to _UP macros.
4322         * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
4323         * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
4324         * config/aarch64/aarch64-simd.md
4325         (vec_extractv2dfv1df): Replace with...
4326         (vec_extract<mode><V1half>): ...this.
4327         * config/aarch64/aarch64.cc
4328         (aarch64_classify_vector_mode): Add V1DI mode.
4329         * config/aarch64/iterators.md
4330         (VQ_2E, V1HALF, V1half): New.
4331         (nunits): Add V1DI mode.
4333 2022-07-15  Roger Sayle  <roger@nextmovesoftware.com>
4335         PR target/106278
4336         * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
4337         Fix indentation whitespace.
4338         (timode_scalar_chain::fix_debug_reg_uses): Likewise.
4339         (timode_scalar_chain::convert_insn): Delete dead code.
4340         Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
4341         Fix indentation whitespace.
4342         (convertible_comparison_p): Likewise.
4343         (timode_scalar_to_vector_candidate_p): Likewise.
4345 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
4347         * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
4349 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
4351         * Makefile.in (OBJS): Add value-range-pretty-print.o.
4352         * pretty-print.h (pp_vrange): New.
4353         * value-range.cc (vrange::dump): Call pp version.
4354         (unsupported_range::dump): Move to its own file.
4355         (dump_bound_with_infinite_markers): Same.
4356         (irange::dump): Same.
4357         (irange::dump_bitmasks): Same.
4358         (vrange::debug): Remove.
4359         * value-range.h: Remove virtual designation for dump methods.
4360         Remove dump_bitmasks method.
4361         * value-range-pretty-print.cc: New file.
4362         * value-range-pretty-print.h: New file.
4364 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
4366         * value-range.cc (irange::accept): New.
4367         (unsupported_range::accept): New.
4368         * value-range.h (class vrange_visitor): New.
4369         (class vrange): Add accept method.
4370         (class unsupported_range): Same.
4371         (class Value_Range): Same.
4373 2022-07-15  Jonathan Wakely  <jwakely@redhat.com>
4375         * diagnostic-format-json.cc (json_from_location_range): Adjust
4376         to new label_text API.
4377         * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
4378         Likewise.
4379         * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
4380         (layout::print_any_labels): Likewise.
4381         * tree-diagnostic-path.cc (class path_label): Likewise.
4382         (struct event_range): Likewise.
4383         (default_tree_diagnostic_path_printer): Likewise.
4384         (default_tree_make_json_for_path): Likewise.
4386 2022-07-15  konglin1  <lingling.kong@intel.com>
4388         PR target/106113
4389         * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
4390         comparison due to intrinsics changed over time.
4391         * config/i386/i386-expand.cc (ix86_ssecom_setcc):
4392         Add unordered check and mode for sse comi codegen.
4393         (ix86_expand_sse_comi): Add unordered check and check a different
4394         CCmode.
4395         (ix86_expand_sse_comi_round):Extract unordered check and mode part
4396         in ix86_ssecom_setcc.
4398 2022-07-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4400         * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
4401         op_mode instead of vmode in calls to force_reg for op0 and op1.
4403 2022-07-14  H.J. Lu  <hjl.tools@gmail.com>
4405         PR tree-optimization/103798
4406         * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
4407         (simplify_builtin_call): Inline memchr with constant strings of
4408         no more than the bytes of a word.
4409         * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
4410         * tree-ssa-strlen.h (use_in_zero_equality): New.
4412 2022-07-14  Eric Botcazou  <ebotcazou@adacore.com>
4414         * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
4415         and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
4416         (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
4417         pass it in the call to lookup_tmp_var.
4418         (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
4419         (get_initialized_tmp_var): Likewise.
4420         (prepare_gimple_addressable): Call internal_get_tmp_var instead of
4421         get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
4423 2022-07-14  Martin Liska  <mliska@suse.cz>
4425         * doc/gimple.texi: Close properly a deftypefn.
4427 2022-07-14  Martin Liska  <mliska@suse.cz>
4429         * doc/gimple.texi: Close properly a deftypefn.
4431 2022-07-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
4433         * config/xtensa/xtensa.md:
4434         In FP constant synthesis split pattern, subcontract to
4435         avoid_constant_pool_reference() as in the case of integer,
4436         because it can handle well too.  And cast to int32_t before
4437         calling xtensa_constantsynth() in order to ignore upper 32-bit.
4439 2022-07-13  Aldy Hernandez  <aldyh@redhat.com>
4441         * range-op.cc (operator_lt::fold_range): Use nonzero bits.
4443 2022-07-13  Aldy Hernandez  <aldyh@redhat.com>
4445         * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
4446         (irange::legacy_intersect): Clear nonzero mask.
4447         (irange::legacy_union): Same.
4448         (irange::invert): Same.
4450 2022-07-13  Richard Biener  <rguenther@suse.de>
4452         * tree-ssa-dom.h (record_temporary_equivalences): Remove.
4453         * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
4454         (dom_jt_state::get_blocks_on_stack): Likewise.
4455         (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
4456         (back_propagate_equivalences): Remove dominator bitmap
4457         compute and instead use passed in m_blocks_on_stack.
4458         (record_temporary_equivalences): Likewise.
4459         (record_equivalences_from_incoming_edge): Likewise.
4460         (dom_opt_dom_walker::before_dom_children): Maintain and
4461         pass down blocks on stack.
4462         (dom_opt_dom_walker::after_dom_children): Likewise.
4464 2022-07-13  Andrew Carlotti  <andrew.carlotti@arm.com>
4466         * config/aarch64/aarch64-builtins.cc
4467         (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
4469 2022-07-13  Richard Biener  <rguenther@suse.de>
4471         PR tree-optimization/106249
4472         * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
4473         Only verify LC SSA of the new_loop if we created it.
4474         Use TODO_update_ssa_nophi for the SSA update after versioning
4475         the loop.
4477 2022-07-12  Aldy Hernandez  <aldyh@redhat.com>
4479         * range-op.cc (unsigned_singleton_p): Remove.
4480         (operator_bitwise_and::remove_impossible_ranges): Remove.
4481         (operator_bitwise_and::fold_range): Set nonzero bits.  *
4482         * value-range.cc (irange::get_nonzero_bits): Remove
4483         legacy_mode_p assert.
4484         (irange::dump_bitmasks): Remove legacy_mode_p check.
4486 2022-07-12  Richard Sandiford  <richard.sandiford@arm.com>
4488         PR target/106253
4489         * predict.h (insn_optimization_type): Declare.
4490         * predict.cc (insn_optimization_type): New function.
4491         * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
4492         (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
4493         (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
4494         * internal-fn.cc (unary_convert_direct): New macro.
4495         (expand_convert_optab_fn): New function.
4496         (expand_unary_convert_optab_fn): New macro.
4497         (direct_unary_convert_optab_supported_p): Likewise.
4498         * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
4499         convert_optab_handler.
4500         * config/aarch64/aarch64-protos.h
4501         (aarch64_builtin_vectorized_function): Delete.
4502         * config/aarch64/aarch64-builtins.cc
4503         (aarch64_builtin_vectorized_function): Delete.
4504         * config/aarch64/aarch64.cc
4505         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
4506         * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
4507         * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
4508         optimize_insn_for_size_p test.
4510 2022-07-12  Richard Biener  <rguenther@suse.de>
4512         * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
4513         Remove.
4514         (vect_do_peeling): Do not call it, adjust comment.
4516 2022-07-12  Richard Sandiford  <richard.sandiford@arm.com>
4518         * config/aarch64/aarch64-builtins.cc
4519         (aarch64_builtin_vectorized_function): Remove handling of
4520         floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
4522 2022-07-11  Andrew MacLeod  <amacleod@redhat.com>
4524         PR tree-optimization/106234
4525         * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
4526         cache value before recursively resolving it.
4528 2022-07-11  Roger Sayle  <roger@nextmovesoftware.com>
4530         * config/i386/i386-features.h (scalar_chain): Add fields
4531         insns_conv, n_sse_to_integer and n_integer_to_sse to this
4532         parent class, moved from general_scalar_chain.
4533         (scalar_chain::convert_compare): Protected method moved
4534         from general_scalar_chain.
4535         (mark_dual_mode_def): Make protected, not private virtual.
4536         (scalar_chain:convert_op): New private virtual method.
4537         (general_scalar_chain::general_scalar_chain): Simplify constructor.
4538         (general_scalar_chain::~general_scalar_chain): Delete destructor.
4539         (general_scalar_chain): Move insns_conv, n_sse_to_integer and
4540         n_integer_to_sse fields to parent class, scalar_chain.
4541         (general_scalar_chain::mark_dual_mode_def): Delete prototype.
4542         (general_scalar_chain::convert_compare): Delete prototype.
4543         (timode_scalar_chain::compute_convert_gain): Remove simplistic
4544         implementation, convert to a method prototype.
4545         (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
4546         (timode_scalar_chain::convert_op): Prototype new virtual method.
4547         * config/i386/i386-features.cc (scalar_chain::scalar_chain):
4548         Allocate insns_conv and initialize n_sse_to_integer and
4549         n_integer_to_sse fields in constructor.
4550         (scalar_chain::scalar_chain): Free insns_conv in destructor.
4551         (general_scalar_chain::general_scalar_chain): Delete
4552         constructor, now defined in the class declaration.
4553         (general_scalar_chain::~general_scalar_chain): Delete destructor.
4554         (scalar_chain::mark_dual_mode_def): Renamed from
4555         general_scalar_chain::mark_dual_mode_def.
4556         (timode_scalar_chain::mark_dual_mode_def): Delete.
4557         (scalar_chain::convert_compare): Renamed from
4558         general_scalar_chain::convert_compare.
4559         (timode_scalar_chain::compute_convert_gain): New method to
4560         determine the gain from converting a TImode chain to V1TImode.
4561         (timode_scalar_chain::convert_op): New method to convert an
4562         operand from TImode to V1TImode.
4563         (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
4564         on REG_EQUAL notes that were originally TImode (not CONST_INT).
4565         Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
4566         (timode_mem_p): Helper predicate to check where operand is
4567         memory reference with sufficient alignment for TImode STV.
4568         (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
4569         to check whether COMPARE is convertible.  Handle SET_DESTs that
4570         that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
4571         CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
4573 2022-07-11  Richard Sandiford  <richard.sandiford@arm.com>
4575         PR tree-optimization/106250
4576         * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
4577         argument to directly_supported_p.
4579 2022-07-11  Richard Biener  <rguenther@suse.de>
4581         * tree-into-ssa.cc (update_ssa): Do not forcefully
4582         re-compute dominance fast queries for TODO_update_ssa_no_phi.
4584 2022-07-11  Richard Biener  <rguenther@suse.de>
4586         PR tree-optimization/106228
4587         * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
4588         VUSE compute for the non-loop case.
4590 2022-07-11  Richard Biener  <rguenther@suse.de>
4592         * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
4593         (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
4594         (rewrite_update_dom_walker::m_in_region_flag): New.
4595         (rewrite_update_dom_walker::before_dom_children): If the region
4596         to update is marked, STOP at exits.
4597         (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
4598         to be updated.
4599         (dump_update_ssa): Use bitmap_empty_p.
4600         (update_ssa): Likewise.  Use REWRITE_UPDATE_REGION when
4601         TODO_update_ssa_no_phi.
4602         * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
4603         pending update_ssa to the caller.
4605 2022-07-11  Richard Biener  <rguenthert@suse.de>
4607         PR target/105459
4608         * config/i386/i386-options.cc (ix86_set_current_function):
4609         Rebuild the target optimization node whenever necessary,
4610         not only when the optimization node didn't change.
4612 2022-07-11  Richard Biener  <rguenther@suse.de>
4614         PR tree-optimization/106228
4615         * tree-vect-data-refs.cc (vect_setup_realignment): Properly
4616         set a VUSE operand on the emitted load.
4618 2022-07-11  Aldy Hernandez  <aldyh@redhat.com>
4620         * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
4621         verification against legacy value_range.
4622         (gimple_ranger::register_inferred_ranges): Same.
4623         (gimple_ranger::export_global_ranges): Rename update_global_range
4624         to set_range_info.
4625         * tree-core.h (struct range_info_def): Remove.
4626         (struct irange_storage_slot): New.
4627         (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
4628         (struct tree_ssa_name): Add vrange_storage support.
4629         * tree-ssanames.cc (range_info_p): New.
4630         (range_info_fits_p): New.
4631         (range_info_alloc): New.
4632         (range_info_free): New.
4633         (range_info_get_range): New.
4634         (range_info_set_range): New.
4635         (set_range_info_raw): Remove.
4636         (set_range_info): Adjust to use vrange_storage.
4637         (set_nonzero_bits): Same.
4638         (get_nonzero_bits): Same.
4639         (duplicate_ssa_name_range_info): Remove overload taking
4640         value_range_kind.
4641         Rewrite tree overload to use vrange_storage.
4642         (duplicate_ssa_name_fn): Adjust to use vrange_storage.
4643         * tree-ssanames.h (struct range_info_def): Remove.
4644         (set_range_info): Adjust prototype to take vrange.
4645         * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
4646         duplicate_ssa_name_range_info.
4647         * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
4648         (SSA_NAME_RANGE_TYPE): Remove.
4649         * value-query.cc (get_ssa_name_range_info): Adjust to use
4650         vrange_storage.
4651         (update_global_range): Remove.
4652         (get_range_global): Remove as_a<irange>.
4653         * value-query.h (update_global_range): Remove.
4654         * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
4655         Rename update_global_range to set_range_info.
4656         * value-range-storage.cc (vrange_storage::alloc_slot): Remove
4657         gcc_unreachable.
4659 2022-07-10  Aldy Hernandez  <aldyh@redhat.com>
4661         * value-range.cc (irange::operator=): Call verify_range.
4662         (irange::irange_set): Normalize kind after everything else has
4663         been set.
4664         (irange::irange_set_anti_range): Same.
4665         (irange::set): Same.
4666         (irange::verify_range): Disallow nonzero masks for VARYING.
4667         (irange::irange_union): Call verify_range.
4668         Handle nonzero masks better.
4669         (irange::irange_intersect): Same.
4670         (irange::set_nonzero_bits): Calculate mask if either range has an
4671         explicit mask.
4672         (irange::intersect_nonzero_bits): Same.
4673         (irange::union_nonzero_bits): Same.
4674         (range_tests_nonzero_bits): New.
4675         (range_tests): Call range_tests_nonzero_bits.
4676         * value-range.h (class irange): Remove set_nonzero_bits method
4677         with trees.
4678         (irange::varying_compatible_p): Set nonzero mask.
4680 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
4682         * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
4683         the sign-extend of result in the RTL template.
4684         (<any_div><mode>3): Adjust for <any_div>di3_fake change.
4686 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
4688         * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
4689         Remove static, for use in the machine description file.
4690         * config/loongarch/loongarch-protos.h:
4691         (loongarch_check_zero_div_p): Add prototype.
4692         * config/loongarch/loongarch.md (enabled): New attr.
4693         (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
4694         idiv.  Conditionally enable the alternatives using
4695         loongarch_check_zero_div_p.
4696         (<optab>di3_fake): Likewise.
4698 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
4700         * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
4701         instead of mul.d.
4703 2022-07-09  Aldy Hernandez  <aldyh@redhat.com>
4705         * value-range.cc (irange::irange_single_pair_union): Set
4706         VR_VARYING when appropriate.
4708 2022-07-09  Vit Kabele  <vit.kabele@sysgo.com>
4710         * stor-layout.cc (finalize_record_size): Extend warning message.
4712 2022-07-09  Sam Feifer  <sfeifer@redhat.com>
4714         PR tree-optimization/98304
4715         * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
4717 2022-07-09  Jeff Law  <jeffreyalaw@gmail.com>
4719         * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
4720         initializer and use clear_storage rather than copying the
4721         NULs to the destination array.
4723 2022-07-09  Roger Sayle  <roger@nextmovesoftware.com>
4725         * config/i386/i386.md (define_peephole2): Use match_operand of
4726         flags_reg_operand to capture and preserve the mode of FLAGS_REG.
4727         (define_peephole2): Likewise.
4728         (define_peephole2): Likewise...
4730 2022-07-09  Roger Sayle  <roger@nextmovesoftware.com>
4732         * config/i386/i386-features.cc (convert_compare): Add support
4733         for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
4734         by generating a pandn followed by ptest.
4735         (convertible_comparison_p): Recognize both *cmpdi_doubleword and
4736         recent *testdi_not_doubleword comparison patterns.
4738 2022-07-09  Tamar Christina  <tamar.christina@arm.com>
4740         * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
4741         indicate that the value is not undefined.
4743 2022-07-09  Andrew Pinski  <apinski@marvell.com>
4745         PR tree-optimization/106087
4746         * tree-ssa-dce.cc (simple_dce_from_worklist): Check
4747         to make sure the statement is only defining one operand.
4749 2022-07-08  Lewis Hyatt  <lhyatt@gmail.com>
4751         PR preprocessor/91733
4752         * input.cc (find_end_of_line): New helper function.
4753         (file_cache_slot::get_next_line): Recognize \r as a line ending.
4754         * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
4755         since \r will now be interpreted as a line-ending.
4757 2022-07-08  Martin Liska  <mliska@suse.cz>
4759         PR sanitizer/106132
4760         * opts.cc (finish_options): Use 2 calls to
4761         report_conflicting_sanitizer_options.
4763 2022-07-08  Richard Biener  <rguenther@suse.de>
4765         PR tree-optimization/106226
4766         * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
4767         no SSA update is needed.  Move virtual SSA update ...
4768         * tree-vectorizer.cc (pass_vectorize::execute): ... here,
4769         via forced virtual renaming when TODO_update_ssa_only_virtuals
4770         is queued.
4771         (vect_transform_loops): Return TODO_update_ssa_only_virtuals
4772         when virtual SSA update is required.
4773         (try_vectorize_loop_1): Adjust.
4774         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
4775         virtual renaming if the ABI forces an aggregate return
4776         but the original call did not have a virtual definition.
4778 2022-07-08  Martin Liska  <mliska@suse.cz>
4780         * toplev.cc (init_asm_output): Do not init asm_out_file.
4782 2022-07-08  Tamar Christina  <tamar.christina@arm.com>
4784         PR tree-optimization/106063
4785         * match.pd: Do not apply pattern after veclower is not supported.
4787 2022-07-08  Thomas Schwinge  <thomas@codesourcery.com>
4789         * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
4790         'fn2' computation.
4792 2022-07-08  Tamar Christina  <tamar.christina@arm.com>
4794         * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
4795         still undefined and if so emit a subreg move instead.
4796         (store_integral_bit_field): Likewise.
4797         (store_bit_field): Likewise.
4798         * expr.h (write_complex_part): Likewise.
4799         * expmed.h (store_bit_field): Add new parameter.
4800         * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
4801         parameter.
4802         (expand_ifn_atomic_compare_exchange): Likewise.
4803         * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
4804         * emit-rtl.cc (validate_subreg): Likewise.
4805         * expr.cc (emit_group_store): Likewise.
4806         (copy_blkmode_from_reg): Likewise.
4807         (copy_blkmode_to_reg): Likewise.
4808         (clear_storage_hints): Likewise.
4809         (write_complex_part):  Likewise.
4810         (emit_move_complex_parts): Likewise.
4811         (expand_assignment): Likewise.
4812         (store_expr): Likewise.
4813         (store_field): Likewise.
4814         (expand_expr_real_2): Likewise.
4815         * ifcvt.cc (noce_emit_move_insn): Likewise.
4816         * internal-fn.cc (expand_arith_set_overflow): Likewise.
4817         (expand_arith_overflow_result_store): Likewise.
4818         (expand_addsub_overflow): Likewise.
4819         (expand_neg_overflow): Likewise.
4820         (expand_mul_overflow): Likewise.
4821         (expand_arith_overflow): Likewise.
4823 2022-07-08  Haochen Jiang  <haochen.jiang@intel.com>
4825         PR target/106180
4826         * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
4827         Rename from *sse2_cvtps2pd<mask_name>_1.
4828         (vec_unpacks_lo_v4sf): Add handler for memory operand.
4830 2022-07-08  Lulu Cheng  <chenglulu@loongson.cn>
4832         * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
4833         Modify fp_sp_offset and gp_sp_offset's calculation method,
4834         when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
4835         or UNITS_PER_FP_REG.
4837 2022-07-07  David Malcolm  <dmalcolm@redhat.com>
4839         * diagnostic-format-json.cc (json_from_location_range): Update for
4840         removal of label_text::maybe_free in favor of automatic memory
4841         management.
4842         * diagnostic-format-sarif.cc
4843         (sarif_builder::make_location_object): Likewise.
4844         * diagnostic-show-locus.cc (struct pod_label_text): New.
4845         (class line_label): Convert m_text from label_text to pod_label_text.
4846         (layout::print_any_labels): Move "text" to the line_label.
4847         * tree-diagnostic-path.cc (path_label::get_text): Update for
4848         removal of label_text::maybe_free in favor of automatic memory
4849         management.
4850         (event_range::print): Likewise.
4851         (default_tree_diagnostic_path_printer): Likewise.
4852         (default_tree_make_json_for_path): Likewise.
4854 2022-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4856         * statistics.cc (get_function_name): Add check to see if fn is not NULL.
4858 2022-07-07  Richard Biener  <rguenther@suse.de>
4860         * tree-into-ssa.cc (iterating_old_ssa_names): New.
4861         (add_new_name_mapping): Grow {new,old}_ssa_names separately
4862         and only when actually needed.  Assert we are not growing
4863         the old_ssa_names set when iterating over it.
4864         (update_ssa): Remove old_ssa_names copying and empty_p
4865         query, note we are iterating over it and expect no set changes.
4867 2022-07-07  Thomas Schwinge  <thomas@codesourcery.com>
4869         * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
4870         (prepare_target_image, main): Handle OpenMP 'requires'.
4871         (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
4872         'GOMP_offload_unregister_ver'.
4874 2022-07-07  Richard Biener  <rguenther@suse.de>
4876         PR target/106219
4877         * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
4878         set DECL_PURE_P.
4880 2022-07-07  Richard Biener  <rguenther@suse.de>
4882         * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
4883         number of LC PHIs inserted.
4884         (add_exit_phis): Return whether any variable required
4885         multiple LC PHI nodes.
4886         (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
4887         when possible.
4889 2022-07-07  Richard Biener  <rguenther@suse.de>
4891         * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
4892         the def loop exit block bitmap as argument instead of
4893         re-computing it here.
4894         (add_exit_phis_var): Adjust.
4895         (loop_name_cmp): New function.
4896         (add_exit_phis): Sort variables to insert LC PHI nodes
4897         after definition loop, for each definition loop compute
4898         the exit block bitmap once.
4899         (get_loops_exit): Remove.
4900         (rewrite_into_loop_closed_ssa_1): Do not pre-record
4901         all loop exit blocks into bitmaps.  Record loop exits
4902         if required.
4904 2022-07-07  Dimitrije Milosevic  <Dimitrije.Milosevic@Syrmia.com>
4906         * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
4907         to handle the N32 ABI.
4908         * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
4909         the macro, as it is not needed anymore.
4911 2022-07-06  Thomas Schwinge  <thomas@codesourcery.com>
4913         * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
4914         '[...]_data'.
4915         * config/nvptx/mkoffload.cc (process): Likewise.
4917 2022-07-06  Thomas Schwinge  <thomas@codesourcery.com>
4919         * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
4921 2022-07-05  Andrew MacLeod  <amacleod@redhat.com>
4923         * value-relation.cc (relation_to_code): New vector.
4924         (relation_oracle::validate_relation): New.
4925         (set_relation): Allow ssa1 == ssa2 to be registered.
4926         * value-relation.h (validate_relation): New prototype.
4927         (query_relation): Make internal variant protected.
4929 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
4931         * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
4932         for double word comparisons and tests (comparisons against zero).
4933         * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
4934         and;cmp into andn;cmp $0 as a pre-reload splitter.
4935         (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
4936         (*<any_or><dwi>3_doubleword): Likewise.
4938 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
4939             Hongtao Liu  <hongtao.liu@intel.com>
4941         * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
4942         CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
4943         * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
4944         and gen_ssse3_palignv1ti instead of TImode.
4945         * config/i386/sse.md (SSESCALARMODE): Delete.
4946         (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
4947         (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
4948         iterator instead of SSESCALARMODE.
4949         (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
4950         using a single move instruction (if required).
4952 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
4953             Uroš Bizjak  <ubizjak@gmail.com>
4955         PR rtl-optimization/96692
4956         * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
4957         as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
4959 2022-07-05  Richard Biener  <rguenther@suse.de>
4961         PR tree-optimization/106198
4962         * tree-cfgcleanup.cc (repair_loop_structures): Always do a
4963         full LC SSA rewrite but only if any blocks changed loop
4964         depth.
4966 2022-07-05  Richard Biener  <rguenther@suse.de>
4968         * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
4969         (find_uses_to_rename_in_loop): Likewise.
4970         (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
4971         uses.
4972         (rewrite_into_loop_closed_ssa): Adjust.
4974 2022-07-05  Richard Biener  <rguenther@suse.de>
4976         PR tree-optimization/106186
4977         * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
4978         Properly handle virtual PHI nodes.
4980 2022-07-05  Richard Biener  <rguenther@suse.de>
4982         PR tree-optimization/106196
4983         * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
4984         handle aggregate returns of calls for VDEF updates.
4986 2022-07-05  Richard Biener  <rguenther@suse.de>
4988         * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
4989         Maintain LC SSA.
4991 2022-07-05  Richard Sandiford  <richard.sandiford@arm.com>
4993         * tree-vect-patterns.cc (vect_convert_input): Expect the input
4994         type to be signed for optab_vector_mixed_sign.  Update the vectype
4995         at the same time as type.
4996         (vect_recog_dot_prod_pattern): Update accordingly.  If usdot isn't
4997         available, try sdot instead.
4998         * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
4999         (vect_model_reduction_cost): Model the cost of implementing usdot
5000         using sdot.
5001         (vectorizable_reduction): Likewise.  Skip target support test
5002         for lane reductions.
5003         (vect_emulate_mixed_dot_prod): New function.
5004         (vect_transform_reduction): Use it to emulate usdot via sdot.
5006 2022-07-05  Richard Biener  <rguenther@suse.de>
5008         PR tree-optimization/106182
5009         * loop-init.cc (fix_loop_structure): Return the number
5010         of newly discovered plus the number of deleted loops.
5011         * tree-cfgcleanup.cc (repair_loop_structures): Adjust
5012         variable name.
5014 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
5016         * gimple-range-fold.cc
5017         (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
5018         call to SCEV for irange supported types.
5019         (fold_using_range::range_of_builtin_int_call): Convert to vrange.
5020         * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
5021         * tree-ssa-dom.cc (cprop_operand): Same.
5023 2022-07-04  Roger Sayle  <roger@nextmovesoftware.com>
5025         PR target/104489
5026         * calls.cc (precompute_register_parameters): Allow promotion
5027         of floating point values to be passed in wider integer modes
5028         by calling new convert_float_to_wider_int.
5029         (expand_call): Allow floating point results to be returned in
5030         wider integer modes by calling new convert wider_int_to_float.
5031         * cfgexpand.cc (expand_value_return): Allow backends to promote
5032         a scalar floating point return value to a wider integer mode
5033         by calling new convert_float_to_wider_int.
5034         * expr.cc (convert_float_to_wider_int): New function.
5035         (convert_wider_int_to_float): Likewise.
5036         (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
5037         scalar FP PARM_DECLs to wider integer modes, by calling new
5038         convert_wider_int_to_float.
5039         * expr.h (convert_modes): Name arguments for improved documentation.
5040         (convert_float_to_wider_int): Prototype new function here.
5041         (convert_wider_int_to_float): Likewise.
5042         * function.cc (assign_parm_setup_stack): Allow floating point
5043         values to be passed on the stack as wider integer modes by
5044         calling new convert_wider_int_to_float.
5046 2022-07-04  Martin Jambor  <mjambor@suse.cz>
5048         PR tree-optimization/105860
5049         * tree-sra.cc (build_reconstructed_reference): Start expr
5050         traversal only just below the outermost union.
5052 2022-07-04  Richard Biener  <rguenther@suse.de>
5054         * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
5055         and update virtual SSA form again.  Assert we do so for
5056         a known set of transforms only.
5057         * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
5058         * tree-vect-stmts.cc (vectorizable_load): When vectorizing
5059         using load-lanes allow virtual SSA update.
5061 2022-07-04  Tobias Burnus  <tobias@codesourcery.com>
5062             Chung-Lin Tang  <cltang@codesourcery.com>
5063             Thomas Schwinge  <thomas@codesourcery.com>
5065         * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
5066         (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
5067         (main): Ask lto1 to obtain omp_requires_mask and pass it on.
5068         * config/nvptx/mkoffload.cc (process, main): Likewise.
5069         * lto-cgraph.cc (omp_requires_to_name): New.
5070         (input_offload_tables): Save omp_requires_mask.
5071         (output_offload_tables): Read it, check for consistency,
5072         save value for mkoffload.
5073         * omp-low.cc (lower_omp_target): Force output_offloadtables
5074         call for OMP_REQUIRES_TARGET_USED.
5076 2022-07-04  Richard Biener  <rguenther@suse.de>
5078         * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
5079         no SSA update is needed instead of updating virtual SSA
5080         form.
5081         * tree-vect-stmts.cc (vectorizable_load): For hoisted
5082         invariant load use the loop entry virtual use.
5083         For emulated gather loads use the virtual use of the
5084         original stmt like vect_finish_stmt_generation would do.
5086 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5088         * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
5089         for direct circularity.
5091 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5093         * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
5094         the language for vector types.
5096 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
5098         * value-range-storage.cc (irange_storage_slot::set_irange): Set
5099         nonzero bits in irange.
5100         (irange_storage_slot::get_irange): Get nonzero bits from irange.
5101         * value-range.cc (irange::operator=): Set nonzero bits.
5102         (irange::irange_set): Same.
5103         (irange::irange_set_anti_range): Same.
5104         (irange::set): Same.
5105         (irange::verify_range): Same.
5106         (irange::legacy_equal_p): Check nonzero bits.
5107         (irange::equal_p): Same.
5108         (irange::contains_p): Handle nonzero bits.
5109         (irange::irange_union): Same.
5110         (irange::irange_intersect): Same.
5111         (irange::dump): Same.
5112         (irange::set_nonzero_bits): New.
5113         (irange::get_nonzero_bits): New.
5114         (irange::intersect_nonzero_bits): New.
5115         (irange::union_nonzero_bits): New.
5116         (irange::dump_bitmasks): New.
5117         * value-range.h (class irange): Add m_nonzero_mask.
5118         (gt_ggc_mx): Handle nonzero bits.
5119         (gt_pch_nx): Same.
5120         (irange::set_undefined): Set nonzero bits.
5121         (irange::set_varying): Same.
5122         (irange::normalize_kind): Call set_undefined.
5124 2022-07-04  Richard Biener  <rguenther@suse.de>
5126         * tree-ssa-loop-manip.h
5127         (rewrite_virtuals_into_loop_closed_ssa): Remove.
5128         (rewrite_into_loop_closed_ssa_1): Likewise.
5129         * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
5130         Make static.
5131         (rewrite_into_loop_closed_ssa): Remove loop overload,
5132         always rewrite virtuals into LC SSA.
5133         (check_loop_closed_ssa_bb): Also check virtuals.
5134         * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
5135         LC PHIs when in LC SSA.
5136         * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
5137         loop-closed SSA here, but ...
5138         (tree_loop_unroll_and_jam): ... here once.
5139         * tree-if-conv.cc (version_loop_for_if_conversion): Use
5140         the cheaper TODO_update_ssa_no_phi.
5141         * tree-loop-distribution.cc (version_loop_by_alias_check):
5142         Likewise.
5143         * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
5144         Likewise.
5145         * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
5146         (tree_unswitch_outer_loop): Do not rewrite virtuals into
5147         LC ssa.
5148         * tree-parloops.cc (transform_to_exit_first_loop_alt):
5149         Likewise.
5150         (pass_parallelize_loops::execute): After finishing rewrite
5151         into LC SSA again because we do not maintain it properly.
5153 2022-07-04  Richard Biener  <rguenther@suse.de>
5155         PR tree-optimization/106055
5156         * graphite.cc (canonicalize_loop_closed_ssa): Check whether
5157         we can propagate.
5159 2022-07-04  Haochen Jiang  <haochen.jiang@intel.com>
5161         PR target/43618
5162         * config/i386/sse.md (extendv2sfv2df2): New define_expand.
5163         (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
5164         (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
5166 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
5168         * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
5169         * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
5170         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
5171         with two arguments.
5172         (find_unswitching_predicates_for_bb): Same.
5173         * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
5174         * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
5175         * value-range.cc (irange::equal_p): Rename to...
5176         (irange::operator==): ...this.
5177         * value-range.h (irange::set): Remove.
5178         (irange::operator==): Remove.
5179         (irange::set_zero): Use set with two arguments.
5180         * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
5181         (vr_values::extract_range_from_unary_expr): Same.
5182         (check_for_binary_op_overflow): Same.
5183         (bounds_of_var_in_loop): Same.
5185 2022-07-03  H.J. Lu  <hjl.tools@gmail.com>
5187         PR target/106022
5188         * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
5189         New.
5190         * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
5191         New.
5192         * config/i386/mmx.md (V_16_32_64): New.
5193         (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
5194         and 64-bit constant vector.
5195         * config/i386/predicates.md (x86_64_const_vector_operand): New.
5197 2022-07-03  Aldy Hernandez  <aldyh@redhat.com>
5199         * gimple-range-cache.cc: Include value-range-storage.h.
5200         * gimple-range-cache.h (class block_range_cache): Add "class" to
5201         m_range_allocator.
5202         * gimple-range-edge.cc
5203         (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
5204         (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
5205         (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
5206         * gimple-range-edge.h: Add "class" to m_range_allocator.
5207         * gimple-range-infer.cc
5208         (infer_range_manager::infer_range_manager): Allocate allocator.
5209         (infer_range_manager::~infer_range_manager): Free allocator.
5210         (infer_range_manager::get_nonzero): Dereference allocator.
5211         (infer_range_manager::add_range): Same.
5212         * gimple-range-infer.h (class vrange_allocator): Add "class" to
5213         m_range_allocator.
5214         * value-range-storage.h (class vrange_allocator): Move from
5215         value-range.h.
5216         (class obstack_vrange_allocator): Same.
5217         (class ggc_vrange_allocator): Same.
5218         (vrange_allocator::alloc_vrange): Same.
5219         (vrange_allocator::alloc_irange): Same.
5220         * value-range.h (class vrange_allocator): Move to value-range-storage.h.
5221         (class obstack_vrange_allocator): Same.
5222         (class ggc_vrange_allocator): Same.
5224 2022-07-03  Aldy Hernandez  <aldyh@redhat.com>
5226         * Makefile.in (OBJS): Add value-range-storage.o.
5227         (GTFILES): Add value-range-storage.h.
5228         * gengtype.cc (open_base_files): Add value-range-storage.h.
5229         * value-range-storage.cc: New file.
5230         * value-range-storage.h: New file.
5232 2022-07-03  Xi Ruoyao  <xry111@xry111.site>
5233             Lulu Cheng  <chenglulu@loongson.cn>
5235         * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
5236         New static function.
5237         (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
5238         of TARGET_CHECK_ZERO_DIV.
5239         (loongarch_output_division): Likewise.
5240         * common/config/loongarch/loongarch-common.cc
5241         (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
5242         * doc/invoke.texi: Update to match the new behavior.
5244 2022-07-03  Ian Lance Taylor  <iant@golang.org>
5246         * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
5247         statement if -fdelete-dead-exceptions.
5249 2022-07-02  Tim Lange  <mail@tim-lange.me>
5251         PR analyzer/105900
5252         * doc/invoke.texi: Added Wanalyzer-allocation-size.
5254 2022-07-02  Immad Mir  <mirimmad17@gmail.com>
5256         PR analyzer/106003
5257         * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
5258         * doc/invoke.texi:  Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
5259         -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
5260         -Wanalyzer-fd-use-after-close.
5262 2022-07-01  Aldy Hernandez  <aldyh@redhat.com>
5264         * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
5265         (trailing_wide_ints::set_precision): Add num_elements argument.
5266         (trailing_wide_ints::extra_size): Same.
5268 2022-07-01  Uroš Bizjak  <ubizjak@gmail.com>
5270         * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
5271         Use "r" constraint for operand 1.
5273 2022-07-01  Richard Biener  <rguenther@suse.de>
5275         * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
5276         Do not look at interesting_blocks which is a copy of
5277         blocks_to_update.
5278         (update_ssa): Do not initialize it.
5279         (pass_build_ssa::execute): Set interesting_blocks to NULL
5280         after releasing it.
5282 2022-07-01  Richard Biener  <rguenther@suse.de>
5284         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
5285         back to using maybe_ne (off, -1).
5287 2022-07-01  Richard Biener  <rguenther@suse.de>
5289         * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
5290         checking dominance check conditional on flag_checking.
5292 2022-07-01  Tobias Burnus  <tobias@codesourcery.com>
5294         * config/gcn/gcn-protos.h (print_operand_address): Remove register
5295         keyword on 'rtx addr' argument.
5297 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
5298             Uroš Bizjak  <ubizjak@gmail.com>
5300         * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
5301         to post-reload define_insn_and_split.
5303 2022-07-01  Jakub Jelinek  <jakub@redhat.com>
5305         PR middle-end/106144
5306         * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
5307         emitting element for shift or if shift is 0 first element after start.
5308         (wide_int_cc_tests): Add tests for equivalency of wi::mask and
5309         wi::shifted_mask with 0 start.
5311 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
5313         PR target/106122
5314         * config/i386/i386.md (peephole2): Avoid generating pop %esp
5315         when optimizing for size.
5317 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
5318             Uroš Bizjak  <ubizjak@gmail.com>
5320         * config/i386/i386.md (general_szext_operand): Add TImode
5321         support using x86_64_hilo_general_operand predicate.
5322         (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
5323         (*add<dwi>3_doubleword): Improved optimization of zero addition.
5324         (and<mode>3): Use SDWIM mode iterator to add support for double
5325         word bit-wise AND in TImode.  Use force_reg when double word
5326         immediate operand isn't x86_64_hilo_general_operand.
5327         (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
5328         converted into a post-reload splitter.
5329         (*andndi3_doubleword): Previous define_insn deleted.
5330         (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
5331         TARGET_BMI that splits post-reload.
5332         (*andn<mode>3_doubleword): New define_insn_and_split for
5333         !TARGET_BMI, that lowers/splits before reload.
5334         (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
5335         double word bit-wise XOR and bit-wise IOR in TImode.  Use
5336         force_reg when double word immediate operand isn't
5337         x86_64_hilo_general_operand.
5338         (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
5339         (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
5340         double word bit-wise NOT in TImode.
5341         (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
5342         and converted into a post-reload splitter.
5344 2022-07-01  Eric Botcazou  <ebotcazou@adacore.com>
5346         PR middle-end/105874
5347         * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
5348         EXPAND_MEMORY for the expansion of the inner reference only
5349         in the usual cases where a memory reference is required.
5351 2022-07-01  Richard Biener  <rguenther@suse.de>
5353         PR tree-optimization/106131
5354         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
5355         zero when offsetting the read looking through an aggregate
5356         copy.
5358 2022-07-01  Martin Liska  <mliska@suse.cz>
5360         PR tree-optimization/106126
5361         * gimple-if-to-switch.cc (struct condition_info): Save
5362         has_side_effect.
5363         (find_conditions): Parse all BBs.
5364         (pass_if_to_switch::execute): Allow only side effects for first
5365         BB.
5367 2022-07-01  Haochen Jiang  <haochen.jiang@intel.com>
5369         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
5370         Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
5371         OPTION_MASK_ISA2_AVX512BF16_UNSET and
5372         OPTION_MASK_ISA2_AVX512FP16_UNSET.
5374 2022-06-30  Joseph Myers  <joseph@codesourcery.com>
5376         PR lto/106129
5377         * lto-wrapper.cc (find_option): Add argument start.
5378         (merge_and_complain): Loop over existing_opt_index and
5379         existing_opt2_index for Xassembler check.  Update calls to
5380         find_option.
5381         (find_and_merge_options): Add argument first to determine whether
5382         to merge options with those passed in *opts.
5383         (run_gcc): Update calls to find_and_merge_options.
5385 2022-06-30  Aldy Hernandez  <aldyh@redhat.com>
5387         * gimple-range-cache.cc (block_range_cache::block_range_cache):
5388         Rename vrange_allocator to obstack_vrange_allocator.
5389         (ssa_global_cache::ssa_global_cache): Same.
5390         * gimple-range-edge.h (class gimple_outgoing_range): Same.
5391         * gimple-range-infer.h (class infer_range_manager): Same.
5392         * value-range.h (class vrange_allocator): Make abstract.
5393         (class obstack_vrange_allocator): Inherit from vrange_allocator.
5394         (class ggc_vrange_allocator): New.
5396 2022-06-30  Roger Sayle  <roger@nextmovesoftware.com>
5397             Uroš Bizjak  <ubizjak@gmail.com>
5399         * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
5400         provide gen_swapsi.
5401         (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
5402         via new gen_<insn>32di2_doubleword below.
5403         (<anyrotate>32di2_doubleword): New define_insn_and_split
5404         that splits after reload as either a pair of move instructions
5405         or an xchgl (using gen_swapsi).
5407 2022-06-30  Richard Biener  <rguenther@suse.de>
5409         * domwalk.h (dom_walker::dom_walker): Update comment to
5410         reflect reality and new special argument value for
5411         bb_index_to_rpo.
5412         * domwalk.cc (dom_walker::dom_walker): Recognize -1
5413         bb_index_to_rpo.
5414         * tree-into-ssa.cc
5415         (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
5416         dom_walker to not use RPO.
5418 2022-06-30  Martin Liska  <mliska@suse.cz>
5420         * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
5421         it is unused.
5423 2022-06-30  Andrew MacLeod  <amacleod@redhat.com>
5425         PR tree-optimization/106114
5426         * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
5427         statement operands instead of GORI cache.
5429 2022-06-30  Antoni Boucher  <bouanto@zoho.com>
5431         PR target/106095
5432         * config/i386/sse.md: Fix asm generation.
5434 2022-06-29  Sergei Trofimovich  <siarheit@google.com>
5436         PR c++/106102
5437         * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
5439 2022-06-29  Joseph Myers  <joseph@codesourcery.com>
5441         * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
5442         not gen_const_mem for UNSPEC_PIC_CALL_SYM.
5444 2022-06-29  Richard Biener  <rguenther@suse.de>
5446         PR rtl-optimization/106082
5447         * combine.cc (distribute_notes): Preserve notes when
5448         they indicate a call doesn't perform a non-local goto.
5450 2022-06-29  Richard Biener  <rguenther@suse.de>
5452         PR tree-optimization/106112
5453         * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
5454         a constant operand according to its type.
5456 2022-06-29  Martin Liska  <mliska@suse.cz>
5458         * doc/invoke.texi: Remove removed evrp-mode.
5460 2022-06-29  Lulu Cheng  <chenglulu@loongson.cn>
5462         PR target/106097
5463         * config/loongarch/loongarch.cc (loongarch_build_integer):
5464         Remove undefined behavior from code.
5466 2022-06-28  Dimitar Dimitrov  <dimitar@dinux.eu>
5468         * doc/sourcebuild.texi: Document new no_alignment_constraints
5469         effective target check.
5471 2022-06-28  Aldy Hernandez  <aldyh@redhat.com>
5473         * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
5474         * flag-types.h (enum evrp_mode): Remove.
5475         * params.opt: Remove --param=evrp-mode.
5476         * tree-vrp.cc (make_pass_early_vrp): New.
5477         (pass_vrp::execute): Call early VRP instance.
5478         * gimple-ssa-evrp-analyze.cc: Removed.
5479         * gimple-ssa-evrp-analyze.h: Removed.
5480         * gimple-ssa-evrp.cc: Removed.
5482 2022-06-28  Alexandre Oliva  <oliva@adacore.com>
5484         * Makefile.in (TFLAGS): New.
5485         (GCC_FOR_TARGET): Add TFLAGS.
5486         (FLAGS_TO_PASS): Pass TFLAGS down.
5488 2022-06-28  Richard Biener  <rguenther@suse.de>
5490         * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
5491         call update_ssa.
5493 2022-06-28  Richard Biener  <rguenther@suse.de>
5495         * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
5496         mark_block_for_update.
5497         (update_ssa): Adjust.
5499 2022-06-28  Xi Ruoyao  <xry111@xry111.site>
5501         PR target/106096
5502         * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
5503         $r13 from SIBCALL_REGS.
5504         * config/loongarch/loongarch.cc (loongarch_regno_to_class):
5505         Change $r13 to JIRL_REGS.
5507 2022-06-28  Aldy Hernandez  <aldyh@redhat.com>
5509         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
5510         irange::supports_p.
5512 2022-06-28  Richard Biener  <rguenther@suse.de>
5514         PR middle-end/106053
5515         * match.pd ((T)a == (T)b): Avoid folding away sign
5516         changes in a comparison if we'd truncate to a boolean.
5518 2022-06-28  Kewen Lin  <linkw@linux.ibm.com>
5520         * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
5521         iterator GPR with SImode, adjust the condition and output template,
5522         rename to ...
5523         (*rotlsi3_insert_4): ... this.
5525 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
5527         * genmatch.cc: Add "final" and "override" to various vfunc
5528         implementations, removing redundant "virtual" as appropriate.
5529         * gensupport.cc: Likewise.
5530         * gimple-range-cache.h: Likewise.
5531         * ipa-icf-gimple.h: Likewise.
5532         * ipa-icf.h: Likewise.
5533         * read-md.h: Likewise.
5534         * read-rtl-function.cc: Likewise.
5535         * tree-ssa-loop-ch.cc: Likewise.
5536         * tree-ssa-sccvn.cc: Likewise.
5538 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
5540         * config/i386/i386-features.h: Add "final" and "override" to
5541         scalar_chain vfunc implementations as appropriate.
5543 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
5545         * tree-switch-conversion.h: Add "final" and "override" to cluster
5546         vfunc implementations as appropriate.
5548 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
5550         * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
5551         implementations as appropriate.
5553 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
5555         * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
5556         implementations, removing redundant "virtual" as appropriate.
5557         * gimple-ssa-strength-reduction.cc: Likewise.
5558         * ipa-prop.cc: Likewise.
5559         * rtl-ssa/blocks.cc: Likewise.
5560         * tree-into-ssa.cc: Likewise.
5561         * tree-ssa-dom.cc: Likewise.
5562         * tree-ssa-math-opts.cc: Likewise.
5563         * tree-ssa-phiopt.cc: Likewise.
5564         * tree-ssa-propagate.cc: Likewise.
5565         * tree-ssa-sccvn.cc: Likewise.
5566         * tree-ssa-strlen.cc: Likewise.
5567         * tree-ssa-uncprop.cc: Likewise.
5569 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
5571         * adjust-alignment.cc: Add "final" and "override" to opt_pass
5572         vfunc implementations, removing redundant "virtual" as
5573         appropriate.
5574         * asan.cc: Likewise.
5575         * auto-inc-dec.cc: Likewise.
5576         * auto-profile.cc: Likewise.
5577         * bb-reorder.cc: Likewise.
5578         * cfgcleanup.cc: Likewise.
5579         * cfgexpand.cc: Likewise.
5580         * cfgrtl.cc: Likewise.
5581         * cgraphbuild.cc: Likewise.
5582         * combine-stack-adj.cc: Likewise.
5583         * combine.cc: Likewise.
5584         * compare-elim.cc: Likewise.
5585         * config/i386/i386-features.cc: Likewise.
5586         * coroutine-passes.cc: Likewise.
5587         * cprop.cc: Likewise.
5588         * cse.cc: Likewise.
5589         * dce.cc: Likewise.
5590         * df-core.cc: Likewise.
5591         * dse.cc: Likewise.
5592         * dwarf2cfi.cc: Likewise.
5593         * early-remat.cc: Likewise.
5594         * except.cc: Likewise.
5595         * final.cc: Likewise.
5596         * function.cc: Likewise.
5597         * fwprop.cc: Likewise.
5598         * gcse.cc: Likewise.
5599         * gimple-harden-conditionals.cc: Likewise.
5600         * gimple-if-to-switch.cc: Likewise.
5601         * gimple-isel.cc: Likewise.
5602         * gimple-laddress.cc: Likewise.
5603         * gimple-loop-interchange.cc: Likewise.
5604         * gimple-loop-jam.cc: Likewise.
5605         * gimple-loop-versioning.cc: Likewise.
5606         * gimple-low.cc: Likewise.
5607         * gimple-ssa-backprop.cc: Likewise.
5608         * gimple-ssa-evrp.cc: Likewise.
5609         * gimple-ssa-isolate-paths.cc: Likewise.
5610         * gimple-ssa-nonnull-compare.cc: Likewise.
5611         * gimple-ssa-split-paths.cc: Likewise.
5612         * gimple-ssa-store-merging.cc: Likewise.
5613         * gimple-ssa-strength-reduction.cc: Likewise.
5614         * gimple-ssa-warn-access.cc: Likewise.
5615         * gimple-ssa-warn-alloca.cc: Likewise.
5616         * gimple-ssa-warn-restrict.cc: Likewise.
5617         * gimple-warn-recursion.cc: Likewise.
5618         * graphite.cc: Likewise.
5619         * ifcvt.cc: Likewise.
5620         * init-regs.cc: Likewise.
5621         * ipa-comdats.cc: Likewise.
5622         * ipa-cp.cc: Likewise.
5623         * ipa-devirt.cc: Likewise.
5624         * ipa-fnsummary.cc: Likewise.
5625         * ipa-free-lang-data.cc: Likewise.
5626         * ipa-icf.cc: Likewise.
5627         * ipa-inline.cc: Likewise.
5628         * ipa-modref.cc: Likewise.
5629         * ipa-profile.cc: Likewise.
5630         * ipa-pure-const.cc: Likewise.
5631         * ipa-reference.cc: Likewise.
5632         * ipa-split.cc: Likewise.
5633         * ipa-sra.cc: Likewise.
5634         * ipa-visibility.cc: Likewise.
5635         * ipa.cc: Likewise.
5636         * ira.cc: Likewise.
5637         * jump.cc: Likewise.
5638         * loop-init.cc: Likewise.
5639         * lower-subreg.cc: Likewise.
5640         * mode-switching.cc: Likewise.
5641         * modulo-sched.cc: Likewise.
5642         * multiple_target.cc: Likewise.
5643         * omp-expand.cc: Likewise.
5644         * omp-low.cc: Likewise.
5645         * omp-oacc-kernels-decompose.cc: Likewise.
5646         * omp-oacc-neuter-broadcast.cc: Likewise.
5647         * omp-offload.cc: Likewise.
5648         * omp-simd-clone.cc: Likewise.
5649         * passes.cc: Likewise.
5650         * postreload-gcse.cc: Likewise.
5651         * postreload.cc: Likewise.
5652         * predict.cc: Likewise.
5653         * recog.cc: Likewise.
5654         * ree.cc: Likewise.
5655         * reg-stack.cc: Likewise.
5656         * regcprop.cc: Likewise.
5657         * reginfo.cc: Likewise.
5658         * regrename.cc: Likewise.
5659         * reorg.cc: Likewise.
5660         * sancov.cc: Likewise.
5661         * sanopt.cc: Likewise.
5662         * sched-rgn.cc: Likewise.
5663         * stack-ptr-mod.cc: Likewise.
5664         * store-motion.cc: Likewise.
5665         * tracer.cc: Likewise.
5666         * trans-mem.cc: Likewise.
5667         * tree-call-cdce.cc: Likewise.
5668         * tree-cfg.cc: Likewise.
5669         * tree-cfgcleanup.cc: Likewise.
5670         * tree-complex.cc: Likewise.
5671         * tree-eh.cc: Likewise.
5672         * tree-emutls.cc: Likewise.
5673         * tree-if-conv.cc: Likewise.
5674         * tree-into-ssa.cc: Likewise.
5675         * tree-loop-distribution.cc: Likewise.
5676         * tree-nrv.cc: Likewise.
5677         * tree-object-size.cc: Likewise.
5678         * tree-parloops.cc: Likewise.
5679         * tree-predcom.cc: Likewise.
5680         * tree-profile.cc: Likewise.
5681         * tree-sra.cc: Likewise.
5682         * tree-ssa-ccp.cc: Likewise.
5683         * tree-ssa-copy.cc: Likewise.
5684         * tree-ssa-dce.cc: Likewise.
5685         * tree-ssa-dom.cc: Likewise.
5686         * tree-ssa-dse.cc: Likewise.
5687         * tree-ssa-forwprop.cc: Likewise.
5688         * tree-ssa-ifcombine.cc: Likewise.
5689         * tree-ssa-loop-ch.cc: Likewise.
5690         * tree-ssa-loop-im.cc: Likewise.
5691         * tree-ssa-loop-ivcanon.cc: Likewise.
5692         * tree-ssa-loop-prefetch.cc: Likewise.
5693         * tree-ssa-loop-split.cc: Likewise.
5694         * tree-ssa-loop-unswitch.cc: Likewise.
5695         * tree-ssa-loop.cc: Likewise.
5696         * tree-ssa-math-opts.cc: Likewise.
5697         * tree-ssa-phiopt.cc: Likewise.
5698         * tree-ssa-phiprop.cc: Likewise.
5699         * tree-ssa-pre.cc: Likewise.
5700         * tree-ssa-reassoc.cc: Likewise.
5701         * tree-ssa-sccvn.cc: Likewise.
5702         * tree-ssa-sink.cc: Likewise.
5703         * tree-ssa-strlen.cc: Likewise.
5704         * tree-ssa-structalias.cc: Likewise.
5705         * tree-ssa-uncprop.cc: Likewise.
5706         * tree-ssa-uninit.cc: Likewise.
5707         * tree-ssanames.cc: Likewise.
5708         * tree-stdarg.cc: Likewise.
5709         * tree-switch-conversion.cc: Likewise.
5710         * tree-tailcall.cc: Likewise.
5711         * tree-vect-generic.cc: Likewise.
5712         * tree-vectorizer.cc: Likewise.
5713         * tree-vrp.cc: Likewise.
5714         * tsan.cc: Likewise.
5715         * ubsan.cc: Likewise.
5716         * var-tracking.cc: Likewise.
5717         * vtable-verify.cc: Likewise.
5718         * web.cc: Likewise.
5720 2022-06-27  Andrew Stubbs  <ams@codesourcery.com>
5722         * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
5723         (jump): Likewise.
5724         (movdi_symbol_save_scc): Likewise.
5726 2022-06-27  Roger Sayle  <roger@nextmovesoftware.com>
5728         PR rtl-optimization/7061
5729         * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
5731 2022-06-27  Roger Sayle  <roger@nextmovesoftware.com>
5733         PR tree-optimization/94026
5734         * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
5735         (((X >> C1) & C2) eq/ne C3): Likewise.
5737 2022-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5739         * statistics.cc: Include tree.h.
5740         (get_function_name): New function.
5741         (statistics_fini_pass_2): Call get_function_name instead of
5742         current_function_name.
5743         (statistics_counter_event): Call get_function_name instead of
5744         function_name.
5745         (statistics_histogram_event): Likewise.
5747 2022-06-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
5749         * config/xtensa/xtensa.md:
5750         Suppress unnecessary emitting nop insn in the split patterns for
5751         integer/FP constant synthesis, and add new peephole2 pattern that
5752         folds such synthesized additions.
5754 2022-06-25  Aldy Hernandez  <aldyh@redhat.com>
5756         * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
5757         instead of evrp.
5758         (dom_jt_state::push): Remove m_evrp.
5759         (dom_jt_state::pop): Same.
5760         (dom_jt_state::record_ranges_from_stmt): Remove.
5761         (dom_jt_state::register_equiv): Remove updating of evrp ranges.
5762         (class dom_jt_simplifier): Pass ranger to constructor.
5763         Inherit from hybrid_jt_simplifier.
5764         (dom_jt_simplifier::simplify): Convert to ranger.
5765         (pass_dominator::execute): Same.
5766         (all_uses_feed_or_dominated_by_stmt): New.
5767         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
5768         (dom_opt_dom_walker::before_dom_children): Call
5769         set_global_ranges_from_unreachable_edges.
5770         Do not call record_ranges_from_stmt.
5771         (dom_opt_dom_walker::after_dom_children): Remove evrp use.
5772         (cprop_operand): Use int_range<> instead of value_range.
5773         (dom_opt_dom_walker::fold_cond): New.
5774         (dom_opt_dom_walker::optimize_stmt): Pass ranger to
5775         cprop_into_stmt.
5776         Use fold_cond() instead of vrp_visit_cond_stmt().
5777         * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
5778         pass state to simplifier.
5779         * vr-values.h (class vr_values): Make fold_cond public.
5781 2022-06-25  Jeff Law  <jeffreyalaw@gmail.com>
5783         * common/config/tilegx/tilegx-common.cc: Removed.
5784         * common/config/tilepro/tilepro-common.cc: Removed.
5785         * config.gcc: Remove tilegx and tilepro entries.
5786         * config/tilegx/constraints.md: Removed.
5787         * config/tilegx/feedback.h: Removed.
5788         * config/tilegx/linux.h: Removed.
5789         * config/tilegx/mul-tables.cc: Removed.
5790         * config/tilegx/predicates.md: Removed.
5791         * config/tilegx/sync.md: Removed.
5792         * config/tilegx/t-tilegx: Removed.
5793         * config/tilegx/tilegx-builtins.h: Removed.
5794         * config/tilegx/tilegx-c.cc: Removed.
5795         * config/tilegx/tilegx-generic.md: Removed.
5796         * config/tilegx/tilegx-modes.def: Removed.
5797         * config/tilegx/tilegx-multiply.h: Removed.
5798         * config/tilegx/tilegx-opts.h: Removed.
5799         * config/tilegx/tilegx-protos.h: Removed.
5800         * config/tilegx/tilegx.cc: Removed.
5801         * config/tilegx/tilegx.h: Removed.
5802         * config/tilegx/tilegx.md: Removed.
5803         * config/tilegx/tilegx.opt: Removed.
5804         * config/tilepro/constraints.md: Removed.
5805         * config/tilepro/feedback.h: Removed.
5806         * config/tilepro/gen-mul-tables.cc: Removed.
5807         * config/tilepro/linux.h: Removed.
5808         * config/tilepro/mul-tables.cc: Removed.
5809         * config/tilepro/predicates.md: Removed.
5810         * config/tilepro/t-tilepro: Removed.
5811         * config/tilepro/tilepro-builtins.h: Removed.
5812         * config/tilepro/tilepro-c.cc: Removed.
5813         * config/tilepro/tilepro-generic.md: Removed.
5814         * config/tilepro/tilepro-modes.def: Removed.
5815         * config/tilepro/tilepro-multiply.h: Removed.
5816         * config/tilepro/tilepro-protos.h: Removed.
5817         * config/tilepro/tilepro.cc: Removed.
5818         * config/tilepro/tilepro.h: Removed.
5819         * config/tilepro/tilepro.md: Removed.
5820         * config/tilepro/tilepro.opt: Removed.
5821         * configure.ac: Remove tilegx and tilepro entries.
5822         * configure: Rebuilt.
5823         * doc/extend.texi: Remove tilegx and tilepro entries.
5824         * doc/install.texi: Remove tilegx and tilepro entries.
5825         * doc/invoke.texi: Remove tilegx and tilepro entries.
5826         * doc/md.texi: Remove tilegx and tilepro entries.
5828 2022-06-25  Roger Sayle  <roger@nextmovesoftware.com>
5829             Richard Biener  <rguenther@suse.de>
5831         * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
5832         iteration over each basic block that was updated by the second
5833         iteration.
5835 2022-06-24  Jason Merrill  <jason@redhat.com>
5837         PR c++/87729
5838         PR c++/20423
5839         * doc/invoke.texi: Document changes.
5841 2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
5843         * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
5844         condition to avoid overflow.
5846 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
5848         * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
5849         OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
5850         * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
5851         OPTION_MASK_PPC_GFXOPT.
5852         * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
5853         * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
5854         OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
5855         * config/rs6000/rs6000-c.cc: Update comment.
5856         * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
5857         * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
5858         MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
5859         (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
5860         with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
5861         * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
5862         MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
5863         MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
5864         MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
5866 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
5868         * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
5869         OPTION_MASK_MFCRF.
5870         * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
5871         OPTION_MASK_MULTIPLE.
5872         * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
5873         * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
5874         OPTION_MASK_MFCRF.
5875         * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
5876         OPTION_MASK_EABI.
5877         * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
5878         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
5879         MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
5880         * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
5881         MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
5882         MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
5883         MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
5884         MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
5885         Replace with
5886         OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
5887         OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
5888         OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
5889         OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
5890         OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
5891         OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
5892         OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
5893         * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
5894         MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
5895         * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
5896         with OPTION_MASK_MULTIPLE.
5897         (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
5898         MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
5899         MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
5900         MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
5901         MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
5902         * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
5903         with OPTION_MASK_EABI.
5905 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
5907         * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
5908         RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
5909         RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
5910         RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
5911         OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
5912         OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
5913         OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
5914         * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
5915         RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
5916         RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
5917         RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
5919 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
5921         * config/rs6000/rs6000-c.cc: Update comments.
5922         * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
5923         RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
5924         RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
5925         RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
5926         RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
5927         with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
5928         OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
5929         OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
5930         OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
5931         OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
5932         OPTION_MASK_MMA, OPTION_MASK_POWER10.
5933         * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
5934         RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
5935         RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
5936         RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
5937         RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
5939 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
5941         * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
5942         MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
5943         OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
5945 2022-06-24  Richard Biener  <rguenther@suse.de>
5947         PR middle-end/106070
5948         * match.pd (a != b ? a : b): Fix translation of
5949         operand_equal_for_comparison_p.
5951 2022-06-24  Jan Hubicka  <jh@suse.cz>
5953         PR ipa/106057
5954         * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
5956 2022-06-24  Martin Liska  <mliska@suse.cz>
5958         PR middle-end/106059
5959         * profile-count.h: *= and /= operators need to modify this
5960         object.
5962 2022-06-24  Roger Sayle  <roger@nextmovesoftware.com>
5963             Uroš Bizjak  <ubizjak@gmail.com>
5965         PR target/105930
5966         * config/i386/i386.md (*<any_or>di3_doubleword): Split after
5967         reload.  Use rtx_equal_p to avoid creating memory-to-memory moves,
5968         and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
5970 2022-06-24  Alexandre Oliva  <oliva@adacore.com>
5972         * common.opt (nostdlib++): New.
5973         * doc/invoke.texi (-nostdlib++): Document it.
5975 2022-06-24  Alexandre Oliva  <oliva@adacore.com>
5977         * doc/sourcebuild.texi (Environment attributes): Document
5978         two_plus_gigs.
5980 2022-06-23  David Malcolm  <dmalcolm@redhat.com>
5982         * common.opt (fdiagnostics-show-rules): New option.
5983         * diagnostic-format-json.cc (diagnostic_output_format_init_json):
5984         Fix up context->show_rules.
5985         * diagnostic-format-sarif.cc
5986         (diagnostic_output_format_init_sarif): Likewise.
5987         * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
5988         (diagnostic_metadata::precanned_rule): New class.
5989         (diagnostic_metadata::add_rule): New.
5990         (diagnostic_metadata::get_num_rules): New.
5991         (diagnostic_metadata::get_rule): New.
5992         (diagnostic_metadata::m_rules): New field.
5993         * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
5994         (print_any_rules): New.
5995         (diagnostic_report_diagnostic): Call it.
5996         * diagnostic.h (diagnostic_context::show_rules): New field.
5997         * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
5998         * opts.cc (common_handle_option): Handle
5999         OPT_fdiagnostics_show_rules.
6000         * toplev.cc (general_init): Set up global_dc->show_rules.
6002 2022-06-23  Martin Liska  <mliska@suse.cz>
6004         PR c++/106062
6005         * ubsan.cc (sanitize_unreachable_fn): Change order of calls
6006         in order to initialize UBSAN built-ins.
6008 2022-06-23  Martin Liska  <mliska@suse.cz>
6010         PR ipa/105600
6011         * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
6012         Skip variables with body_removed.
6014 2022-06-23  liuhongt  <hongtao.liu@intel.com>
6016         * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
6017         reg_or_subregno.
6018         (sse4_2_pcmpistr): Ditto.
6020 2022-06-23  Xionghu Luo  <xionghuluo@tencent.com>
6022         * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
6023         typo.
6024         * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
6025         * tree-switch-conversion.h: Likewise.
6027 2022-06-22  Jason Merrill  <jason@redhat.com>
6029         PR c++/104642
6030         * common.opt: Add -funreachable-traps.
6031         * doc/invoke.texi (-funreachable-traps): Document it.
6032         * opts.cc (finish_options): Enable at -O0 or -Og.
6033         * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
6034         (builtin_decl_unreachable, build_builtin_unreachable): New.
6035         * tree.h: Declare them.
6036         * ubsan.cc (sanitize_unreachable_fn): Factor out.
6037         (ubsan_instrument_unreachable): Use
6038         gimple_build_builtin_unreachable.
6039         * ubsan.h (sanitize_unreachable_fn): Declare.
6040         * gimple.cc (gimple_build_builtin_unreachable): New.
6041         * gimple.h: Declare it.
6042         * builtins.cc (expand_builtin_unreachable): Add assert.
6043         (fold_builtin_0): Call build_builtin_unreachable.
6044         * sanopt.cc: Don't run for just SANITIZE_RETURN
6045         or SANITIZE_UNREACHABLE when trapping.
6046         * cgraphunit.cc (walk_polymorphic_call_targets): Use new
6047         unreachable functions.
6048         * gimple-fold.cc (gimple_fold_call)
6049         (gimple_get_virt_method_for_vtable)
6050         * ipa-fnsummary.cc (redirect_to_unreachable)
6051         * ipa-prop.cc (ipa_make_edge_direct_to_target)
6052         (ipa_impossible_devirt_target)
6053         * ipa.cc (walk_polymorphic_call_targets)
6054         * tree-cfg.cc (pass_warn_function_return::execute)
6055         (execute_fixup_cfg)
6056         * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
6057         (unloop_loops)
6058         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
6059         Likewise.
6061 2022-06-22  Richard Sandiford  <richard.sandiford@arm.com>
6063         PR tree-optimization/106019
6064         * tree-data-ref.cc (dr_may_alias_p): Try using the
6065         innermost_loop_behavior to disambiguate non-loop queries.
6067 2022-06-22  Palmer Dabbelt  <palmer@rivosinc.com>
6069         * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
6071 2022-06-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6073         * config/xtensa/xtensa.md (bswapsi2_internal):
6074         Enlarge the buffer that is obviously smaller than the template
6075         string given to sprintf().
6077 2022-06-21  Roger Sayle  <roger@nextmovesoftware.com>
6078             Marek Polacek  <polacek@redhat.com>
6079             Segher Boessenkool  <segher@kernel.crashing.org>
6080             Kewen Lin  <linkw@linux.ibm.com>
6082         PR target/105991
6083         * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
6084         exact_log2 doesn't return -1 (or zero).
6085         (plus_xor): New code iterator.
6086         (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
6088 2022-06-21  Nathan Sidwell  <nathan@acm.org>
6090         * doc/invoke.texi (C++ Modules): Remove language-linkage
6091         as missing feature.
6093 2022-06-21  Arjun Shankar  <arjun@redhat.com>
6095         PR tree-optimization/94899
6096         * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
6097         0x80000000): New simplification.
6099 2022-06-21  Jakub Jelinek  <jakub@redhat.com>
6101         PR rtl-optimization/106032
6102         * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
6103         t may_trap_or_fault_p, even if it is cheap.
6105 2022-06-21  Jakub Jelinek  <jakub@redhat.com>
6107         PR middle-end/106030
6108         * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
6109         temp to expand_operands if mode has been promoted.
6111 2022-06-21  Xionghu Luo  <xionghuluo@tencent.com>
6113         PR target/105740
6114         * gimple-if-to-switch.cc (find_conditions): Don't skip the first
6115         condition bb.
6117 2022-06-21  Siddhesh Poyarekar  <siddhesh@gotplt.org>
6119         PR tree-optimization/105736
6120         * tree-object-size.cc (addr_object_size): Return size_unknown
6121         when object offset computation returns an error.
6123 2022-06-20  H.J. Lu  <hjl.tools@gmail.com>
6125         PR target/105960
6126         * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
6127         false if PIC register is used when calling ifunc functions.
6129 2022-06-20  Richard Biener  <rguenther@suse.de>
6131         PR middle-end/106027
6132         * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
6133         type of the prevailing comparison for the new comparison type.
6134         (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
6135         to A < X && A >= Y folding.
6137 2022-06-20  Kewen Lin  <linkw@linux.ibm.com>
6139         PR tree-optimization/105940
6140         * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
6141         slp_done_for_suggested_uf and adjust with it accordingly.
6142         (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
6143         pass it down to vect_analyze_loop_2 for the initial analysis and
6144         applying suggested unroll factor.
6145         (vect_is_simple_reduction): Add parameter slp and adjust with it.
6146         (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
6147         (vect_analyze_scalar_cycles): Likewise.
6149 2022-06-20  Martin Liska  <mliska@suse.cz>
6151         * bb-reorder.cc (find_traces_1_round): Add operators / and * and
6152         use them.
6153         (better_edge_p): Likewise.
6154         * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
6155         * cfgloopmanip.cc (scale_loop_profile): Likewise.
6156         * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
6157         * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
6158         * config/sh/sh.cc (expand_cbranchdi4): Likewise.
6159         * dojump.cc (do_compare_rtx_and_jump): Likewise.
6160         * final.cc (compute_alignments): Likewise.
6161         * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
6162         (decide_about_value): Likewise.
6163         * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
6164         * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
6165         * modulo-sched.cc (sms_schedule): Likewise.
6166         * omp-expand.cc (extract_omp_for_update_vars): Likewise.
6167         (expand_omp_ordered_sink): Likewise.
6168         (expand_omp_for_ordered_loops): Likewise.
6169         (expand_omp_for_static_nochunk): Likewise.
6170         * predict.cc (maybe_hot_count_p): Likewise.
6171         (probably_never_executed): Likewise.
6172         (set_even_probabilities): Likewise.
6173         (handle_missing_profiles): Likewise.
6174         (expensive_function_p): Likewise.
6175         * profile-count.h: Likewise.
6176         * profile.cc (compute_branch_probabilities): Likewise.
6177         * stmt.cc (emit_case_dispatch_table): Likewise.
6178         * symtab-thunks.cc (expand_thunk): Likewise.
6179         * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
6180         * tree-ssa-sink.cc (select_best_block): Likewise.
6181         * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
6182         (switch_decision_tree::balance_case_nodes): Likewise.
6183         (switch_decision_tree::emit_case_nodes): Likewise.
6184         * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
6186 2022-06-20  yulong  <shiyulong@iscas.ac.cn>
6188         * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
6189         * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
6190         of RISCV_BUILTIN.
6191         * config/riscv/riscv-ftypes.def (0): Remove unused.
6192         (1): New.
6194 2022-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6196         * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
6197         Consider relaxed MOVI instructions as L32R.
6199 2022-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6201         * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
6202         Use can_create_pseudo_p(), instead of using individual
6203         reload_in_progress and reload_completed.
6204         (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
6205         the existing predicate function.
6206         (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
6207         Use the standard RTX code predicate macros such as MEM_P,
6208         SYMBOL_REF_P and/or CONST_INT_P.
6209         * config/xtensa/xtensa.md: Avoid using numeric literals to determine
6210         if callee-saved register, at the split patterns for indirect sibcall
6211         fixups.
6213 2022-06-18  Jakub Jelinek  <jakub@redhat.com>
6215         * common.opt (flag_sanitize_trap): New variable.
6216         (fsanitize-trap=, fsanitize-trap): New options.
6217         (fsanitize-undefined-trap-on-error): Change into deprecated alias
6218         for -fsanitize-trap=all.
6219         * opts.h (struct sanitizer_opts_s): Add can_trap member.
6220         * opts.cc (finish_options): Complain about unsupported
6221         -fsanitize-trap= options.
6222         (sanitizer_opts): Add can_trap values to all entries.
6223         (get_closest_sanitizer_option): Ignore -fsanitize-trap=
6224         options which have can_trap false.
6225         (parse_sanitizer_options): Add support for -fsanitize-trap=.
6226         For -fsanitize-trap=all, enable
6227         SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT.  Disallow
6228         -fsanitize-trap=vptr here.
6229         (common_handle_option): Handle OPT_fsanitize_trap_ and
6230         OPT_fsanitize_trap.
6231         * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
6232         flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
6233         flag_sanitize_undefined_trap_on_error.
6234         * gcc.cc (sanitize_spec_function): Use
6235         flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
6236         and drop use of flag_sanitize_undefined_trap_on_error in
6237         "undefined" handling.
6238         * ubsan.cc (ubsan_instrument_unreachable): Use
6239         flag_sanitize_trap & SANITIZE_??? instead of
6240         flag_sanitize_undefined_trap_on_error.
6241         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
6242         ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
6243         ubsan_build_overflow_builtin, instrument_bool_enum_load,
6244         ubsan_instrument_float_cast, instrument_nonnull_arg,
6245         instrument_nonnull_return, instrument_builtin): Likewise.
6246         * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
6247         (-fsanitize-undefined-trap-on-error): Document as deprecated
6248         alias of -fsanitize-trap.
6250 2022-06-18  Jakub Jelinek  <jakub@redhat.com>
6252         PR middle-end/105998
6253         * varasm.cc (narrowing_initializer_constant_valid_p): Check
6254         SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
6255         ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
6257 2022-06-18  Roger Sayle  <roger@nextmovesoftware.com>
6259         PR tree-optimization/105835
6260         * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
6261         Narrow integer multiplication by a zero_one_valued_p operand.
6262         (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
6263         conversions inside COND_EXPR where both data operands are
6264         integer constants.
6266 2022-06-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6268         * config/xtensa/constraints.md (Y):
6269         Change to include integer constants until reload begins.
6270         * config/xtensa/predicates.md (move_operand): Ditto.
6271         * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
6272         Change to allow storing integer constants into litpool only after
6273         reload begins.
6275 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
6277         PR target/105209
6278         * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
6279         * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
6280         (alpha_store_data_bypass_p_1): Ditto.
6281         * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
6282         of generic store_data_bypass_p.
6283         (ev4_ist_c): Remove insn reservation.
6285 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
6287         PR target/105970
6288         * config/i386/i386.cc (ix86_function_arg): Assert that
6289         the mode of pointer argumet is equal to ptr_mode, not Pmode.
6291 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
6293         PR target/105993
6294         * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
6295         instead of REGNO comparisons in combine splitter.
6297 2022-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
6299         * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
6300         types.
6302 2022-06-17  Kito Cheng  <kito.cheng@sifive.com>
6304         * config/riscv/bitmanip.md: Supress warning.
6306 2022-06-17  Richard Earnshaw  <rearnsha@arm.com>
6308         PR target/106004
6309         * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
6310         Clear bits in the mask above bit 31.
6312 2022-06-17  Richard Earnshaw  <rearnsha@arm.com>
6314         * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
6315         to avoid spilling trivial literals to the constant pool.
6317 2022-06-16  David Malcolm  <dmalcolm@redhat.com>
6319         * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
6320         auto_diagnostic_group to group any warning with its note.
6321         (maybe_warn_for_bound): Likewise.
6322         (check_access): Likewise.
6323         (warn_dealloc_offset): Likewise.
6324         (pass_waccess::maybe_warn_memmodel): Likewise.
6325         (pass_waccess::maybe_check_dealloc_call): Likewise.
6326         (pass_waccess::warn_invalid_pointer): Likewise.
6327         (pass_waccess::check_dangling_stores): Likewise.
6329 2022-06-16  Jason Merrill  <jason@redhat.com>
6331         * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
6332         opts_set->x_flag_sanitize.
6334 2022-06-16  Jason Merrill  <jason@redhat.com>
6336         * flags.h (issue_strict_overflow_warning): Comment #endif.
6338 2022-06-16  Andrew MacLeod  <amacleod@redhat.com>
6340         * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
6341         was invaraint before, clear the invariant bit.
6342         * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
6343         * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
6345 2022-06-16  Andrew MacLeod  <amacleod@redhat.com>
6347         * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
6349 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
6351         PR tree-optimization/105983
6352         * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
6353         y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
6354         on non-equality comparisons.
6356 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
6358         PR tree-optimization/105984
6359         * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
6360         x > stype_max / cst || x < stype_min / cst): fold_convert @1
6361         to TREE_TYPE (@0) just once and test for negative divisor
6362         also on that folded constant instead of on @1.
6364 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
6366         PR middle-end/105951
6367         * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
6368         optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
6369         as last argument to the internal functions.
6370         * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
6371         extra call argument to ifns.  If expand_atomic_fetch_op fails for the
6372         lhs == NULL_TREE case, fall through into the optab code with
6373         gen_reg_rtx (mode) as target.  If second expand_atomic_fetch_op
6374         fails, construct a CALL_EXPR and expand that.
6375         (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
6376         to ifns.  If expand_atomic_fetch_op fails, construct a CALL_EXPR and
6377         expand that.
6379 2022-06-16  Haochen Gui  <guihaoc@gcc.gnu.org>
6381         PR target/103316
6382         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
6383         gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
6384         RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
6385         RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
6386         * config/rs6000/vector.md (VEC_IC): New mode iterator.  Add support
6387         for new Power10 V1TI instructions.
6388         (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
6389         (vec_cmpu<mode><mode>): Likewise.
6390         (vector_nlt<mode>): Set mode iterator to VEC_IC.
6391         (vector_nltv1ti): Remove.
6392         (vector_gtu<mode>): Set mode iterator to VEC_IC.
6393         (vector_gtuv1ti): Remove.
6394         (vector_nltu<mode>): Set mode iterator to VEC_IC.
6395         (vector_nltuv1ti): Remove.
6396         (vector_geu<mode>): Set mode iterator to VEC_IC.
6397         (vector_ngt<mode>): Likewise.
6398         (vector_ngtv1ti): Remove.
6399         (vector_ngtu<mode>): Set mode iterator to VEC_IC.
6400         (vector_ngtuv1ti): Remove.
6401         (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
6402         (vector_gtu_v1ti_p): Remove.
6403         (vrotl<mode>3): Set mode iterator to VEC_IC.  Emit insns for V1TI.
6404         (vrotlv1ti3): Remove.
6405         (vashr<mode>3): Set mode iterator to VEC_IC.  Emit insns for V1TI.
6406         (vashrv1ti3): Remove.
6408 2022-06-16  Martin Liska  <mliska@suse.cz>
6410         * gengtype-state.cc (read_a_state_token): Do not skip extra
6411         character after escaped sequence.
6413 2022-06-16  Martin Liska  <mliska@suse.cz>
6415         PR driver/105564
6416         * spellcheck.cc (test_find_closest_string): Add new test.
6417         * spellcheck.h (class best_match): Prefer a difference in
6418         trailing sign symbol.
6420 2022-06-16  liuhongt  <hongtao.liu@intel.com>
6422         PR tree-optimization/53533
6423         * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
6424         (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
6425         and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
6427 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6429         * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
6431 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6433         * config/xtensa/predicates.md (reload_operand):
6434         New predicate.
6435         * config/xtensa/xtensa.md: New peephole2 pattern.
6437 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6439         * config/xtensa/xtensa.md (*round_up_to_even):
6440         New insn-and-split pattern.
6441         (*signed_ge_zero): Ditto.
6443 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6445         * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
6446         xtensa_emit_sibcall): New prototypes.
6447         (xtensa_expand_epilogue): Add new argument that specifies whether
6448         or not sibling call.
6449         * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
6450         New macro definition.
6451         (xtensa_prepare_expand_call): New function in order to share
6452         the common code.
6453         (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
6454         New functions.
6455         (xtensa_expand_epilogue): Add new argument sibcall_p and use it
6456         for sibling call handling.
6457         * config/xtensa/xtensa.md (call, call_value):
6458         Use xtensa_prepare_expand_call.
6459         (call_internal, call_value_internal):
6460         Add the condition in order to be disabled if sibling call.
6461         (sibcall, sibcall_value, sibcall_epilogue): New expansions.
6462         (sibcall_internal, sibcall_value_internal): New insn patterns,
6463         and split ones in order to take care of the indirect sibcalls.
6465 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6467         * doc/invoke.texi: Document -mextra-l32r-costs= option.
6469 2022-06-15  David Malcolm  <dmalcolm@redhat.com>
6471         PR analyzer/105962
6472         * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
6473         * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
6474         Extend -fdiagnostics-path-format=separate-events so that with
6475         -fdiagnostics-show-path-depths it prints fndecls as well as stack
6476         depths.
6478 2022-06-15  David Malcolm  <dmalcolm@redhat.com>
6480         * value-relation.h: Add "final" and "override" to relation_oracle
6481         vfunc implementations as appropriate.
6483 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
6485         PR middle-end/105975
6486         Revert everything apart from the expand_fn_using_insn and
6487         expand_direct_optab_fn changes from:
6488         * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
6489         (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
6490         (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
6491         (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
6492         * internal-fn.h (direct_internal_fn_info::directly_mapped): New
6493         member variable.
6494         (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
6495         (direct_internal_fn_p): Also return true for internal functions
6496         that map directly to instructions defined target-insns.def.
6497         (direct_internal_fn): Adjust comment accordingly.
6498         * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
6499         (vectorizable_optab2): New local macros.
6500         (not_direct): Initialize directly_mapped.
6501         (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
6502         (gather_load_direct, len_load_direct, mask_store_direct)
6503         (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
6504         (vec_cond_direct, scatter_store_direct, len_store_direct)
6505         (vec_set_direct, unary_direct, binary_direct, ternary_direct)
6506         (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
6507         (while_direct, fold_extract_direct, fold_left_direct)
6508         (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
6509         (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
6510         (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
6511         (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
6512         (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
6513         (direct_internal_fn_types): Handle functions that map to instructions
6514         defined in target-insns.def.
6515         (direct_internal_fn_types): Likewise.
6516         (direct_internal_fn_supported_p): Likewise.
6517         (internal_fn_expanders): Likewise.
6518         (expand_fn_using_insn): New function,
6519         split out and adapted from...
6520         (expand_direct_optab_fn): ...here.
6521         (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
6522         (expand_GOMP_SIMT_EXIT): Likewise.
6523         (expand_GOMP_SIMT_LANE): Likewise.
6524         (expand_GOMP_SIMT_LAST_LANE): Likewise.
6525         (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
6526         (expand_GOMP_SIMT_VOTE_ANY): Likewise.
6527         (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
6528         (expand_GOMP_SIMT_XCHG_IDX): Likewise.
6530 2022-06-15  Richard Earnshaw  <rearnsha@arm.com>
6532         PR target/105981
6533         * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
6534         to first_reg and second_reg respectively.  Initialize them correctly
6535         when generating big-endian code.
6537 2022-06-15  Richard Earnshaw  <rearnsha@arm.com>
6539         PR target/105974
6540         * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
6542 2022-06-15  Richard Biener  <rguenther@suse.de>
6544         PR tree-optimization/105971
6545         * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
6546         FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
6547         to leak less surprising alias results.
6549 2022-06-15  Richard Biener  <rguenther@suse.de>
6551         PR tree-optimization/105969
6552         * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
6553         by zero in overflow check.
6555 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
6557         PR tree-optimization/105254
6558         PR tree-optimization/105940
6559         Revert:
6560         * config/aarch64/aarch64.cc
6561         (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
6562         loop_vec_info as argument.  Restrict the unroll factor to values
6563         that divide the VF.
6564         (aarch64_vector_costs::finish_cost): Update call accordingly.
6566 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
6568         * read-rtl.cc (find_int): Substitute symbolic constants
6569         before converting the string to an integer.
6571 2022-06-15  Roger Sayle  <roger@nextmovesoftware.com>
6572             Richard Biener  <rguenther@suse.de>
6574         * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
6575         left shifts by a constant when the result is truncated, and the
6576         shift constant is well-defined.
6577         * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
6578         support for rotations of signed integer types, by lowering
6579         using unsigned vector shifts.
6581 2022-06-15  liuhongt  <hongtao.liu@intel.com>
6583         PR target/105953
6584         * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
6585         operands[3].
6587 2022-06-14  Surya Kumari Jangala  <jskumari@linux.ibm.com>
6589         PR rtl-optimization/105041
6590         * regrename.cc (check_new_reg_p): Use nregs value from du chain.
6592 2022-06-14  Segher Boessenkool  <segher@kernel.crashing.org>
6594         * config/rs6000/vsx.md (VS_scalar): Delete.
6595         (rest of file): Adjust.
6597 2022-06-14  Jan Hubicka  <hubicka@ucw.cz>
6599         PR ipa/105739
6600         * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
6602 2022-06-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
6604         * config/riscv/bitmanip.md: Add split to handle opportunities
6605         for slli + sh[123]add.uw
6607 2022-06-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
6609         * config/riscv/predicates.md (consecutive_bits_operand):
6610         Implement new predicate.
6612 2022-06-14  Richard Biener  <rguenther@suse.de>
6614         PR tree-optimization/105946
6615         * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
6616         Do not look at arguments not specified in the function call.
6618 2022-06-14  Richard Biener  <rguenther@suse.de>
6620         PR middle-end/105965
6621         * match.pd (view_convert CONSTRUCTOR): Handle single-element
6622         CTOR case.
6624 2022-06-14  Eric Botcazou  <ebotcazou@adacore.com>
6626         * warning-control.cc (copy_warning) [generic version]: Do not erase
6627         the warning data of the destination location when the no-warning
6628         bit is not set on the source.
6629         (copy_warning) [tree version]: Return early if TO is equal to FROM.
6630         (copy_warning) [gimple version]: Likewise.
6632 2022-06-14  Kewen Lin  <linkw@linux.ibm.com>
6634         PR tree-optimization/105940
6635         * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
6636         applying suggested_unroll_factor after start_over.
6638 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6640         * config/xtensa/predicates.md (shifted_mask_operand):
6641         New predicate.
6642         * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
6643         New insn-and-split pattern.
6644         (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
6645         *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
6646         *masktrue_const_shifted_mask): Ditto.
6648 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6650         * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
6652 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6654         * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
6655         Remove the first argument.
6656         (xtensa_emit_bit_branch): Remove it because now called only from the
6657         output statement of *bittrue insn pattern.
6658         * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
6659         argument 'p_invert', and make so that the condition is reversed by
6660         itself as needed.
6661         (xtensa_expand_conditional_branch): Share the common path, and remove
6662         condition inversion code.
6663         (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
6664         "false side" pattern.
6665         (xtensa_emit_bit_branch): Remove it because of the abovementioned
6666         reason, and move the function body to *bittrue insn pattern.
6667         * config/xtensa/xtensa.md (*bittrue): Transplant the output
6668         statement from removed xtensa_emit_bit_branch().
6669         (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
6670         insn patterns.
6672 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6674         * config/xtensa/predicates.md (logical_shift_operator,
6675         xtensa_shift_per_byte_operator): New predicates.
6676         * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
6677         New prototype.
6678         * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
6679         New helper function for funnel shift patterns.
6680         * config/xtensa/xtensa.md (ior_op): New code iterator.
6681         (*ashlsi3_1): Replace with new split pattern.
6682         (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
6683         (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
6684         New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
6685         in order to omit unnecessary bitwise AND operation.
6686         (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
6687         *shlrd_per_byte_<code>_omit_AND):
6688         New insn patterns for funnel shifts.
6690 2022-06-13  Jason Merrill  <jason@redhat.com>
6692         * tree-cfg.cc (pass_warn_function_return::execute): Also check
6693         BUILT_IN_TRAP.
6695 2022-06-13  Maciej W. Rozycki  <macro@embecosm.com>
6697         * config/riscv/riscv.md (length): Remove the explicit setting
6698         for "fcmp".
6700 2022-06-13  H.J. Lu  <hjl.tools@gmail.com>
6702         * common/config/i386/cpuinfo.h (get_available_features): Require
6703         AVX for F16C and VAES.
6705 2022-06-13  Uroš Bizjak  <ubizjak@gmail.com>
6707         PR target/105927
6708         * config/i386/predicates.md (register_no_elim_operand):
6709         Return true for subreg of a memory operand.
6711 2022-06-13  Richard Sandiford  <richard.sandiford@arm.com>
6713         * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
6714         (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
6715         (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
6716         (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
6717         * internal-fn.h (direct_internal_fn_info::directly_mapped): New
6718         member variable.
6719         (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
6720         (direct_internal_fn_p): Also return true for internal functions
6721         that map directly to instructions defined target-insns.def.
6722         (direct_internal_fn): Adjust comment accordingly.
6723         * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
6724         (vectorizable_optab2): New local macros.
6725         (not_direct): Initialize directly_mapped.
6726         (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
6727         (gather_load_direct, len_load_direct, mask_store_direct)
6728         (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
6729         (vec_cond_direct, scatter_store_direct, len_store_direct)
6730         (vec_set_direct, unary_direct, binary_direct, ternary_direct)
6731         (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
6732         (while_direct, fold_extract_direct, fold_left_direct)
6733         (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
6734         (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
6735         (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
6736         (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
6737         (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
6738         (direct_internal_fn_types): Handle functions that map to instructions
6739         defined in target-insns.def.
6740         (direct_internal_fn_types): Likewise.
6741         (direct_internal_fn_supported_p): Likewise.
6742         (internal_fn_expanders): Likewise.
6744 2022-06-13  Richard Sandiford  <richard.sandiford@arm.com>
6746         * internal-fn.cc (expand_fn_using_insn): New function,
6747         split out and adapted from...
6748         (expand_direct_optab_fn): ...here.
6749         (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
6750         (expand_GOMP_SIMT_EXIT): Likewise.
6751         (expand_GOMP_SIMT_LANE): Likewise.
6752         (expand_GOMP_SIMT_LAST_LANE): Likewise.
6753         (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
6754         (expand_GOMP_SIMT_VOTE_ANY): Likewise.
6755         (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
6756         (expand_GOMP_SIMT_XCHG_IDX): Likewise.
6758 2022-06-13  Jakub Jelinek  <jakub@redhat.com>
6760         * omp-expand.cc (expand_omp_target): Remap user provided
6761         device clause arguments, -1 to -2 and -2 to -3, either
6762         at compile time if constant, or at runtime.
6764 2022-06-13  Eric Botcazou  <ebotcazou@adacore.com>
6766         * common.opt (finstrument-functions): Set explicit value.
6767         (-finstrument-functions-once): New option.
6768         * doc/invoke.texi (Program Instrumentation Options): Document it.
6769         * gimplify.cc (build_instrumentation_call): New static function.
6770         (gimplify_function_tree): Call it to emit the instrumentation calls
6771         if -finstrument-functions[-once] is specified.
6773 2022-06-13  Eric Botcazou  <ebotcazou@adacore.com>
6775         * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
6776         * gimple.h (gimple_set_location): Do not copy warning data from
6777         the previous location when it is UNKNOWN_LOCATION.
6778         * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
6780 2022-06-13  Jakub Jelinek  <jakub@redhat.com>
6782         PR target/105911
6783         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
6784         *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
6785         (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
6786         operands[3] unmodified.
6788 2022-06-12  Simon Wright  <simon@pushface.org>
6790         PR target/104871
6791         * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
6792         version is darwin20 (macOS 11) or greater, truncate the version to the
6793         major number.
6795 2022-06-12  Mark Mentovai  <mark@mentovai.com>
6797         * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
6799 2022-06-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6801         PR target/96463
6802         * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
6803         (svld1rq_impl::fold): Define.
6804         * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
6805         op_mode and op_vec_flags.
6806         (aarch64_evpc_reencode): Initialize newd.op_mode and
6807         newd.op_vec_flags.
6808         (aarch64_evpc_sve_dup): New function.
6809         (aarch64_expand_vec_perm_const_1): Gate existing calls to
6810         aarch64_evpc_* functions under d->vmode == d->op_mode,
6811         and call aarch64_evpc_sve_dup.
6812         (aarch64_vectorize_vec_perm_const): Remove assert
6813         d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
6814         * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
6815         vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
6816         constant.
6818 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6820         * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
6821         New prototype.
6822         * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
6823         xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
6824         xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
6825         New backend functions that process the abovementioned logic.
6826         (xtensa_emit_move_sequence): Revert the previous changes.
6827         * config/xtensa/xtensa.md: New split patterns for integer
6828         and floating-point, as the frontend part.
6830 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6832         * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
6833         for ABS and NEG, add missing case for BSWAP and CLRSB, and
6834         double the costs for integer divisions using libfuncs if
6835         optimizing for speed, in order to take advantage of fast constant
6836         division by multiplication.
6837         (TARGET_INSN_COST): New macro definition.
6838         (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
6839         calculating relative costs of a RTL insns, for both of speed and
6840         size.
6841         * config/xtensa/xtensa.md (return, nop, trap): Correct values of
6842         the attribute "length" that depends on TARGET_DENSITY.
6843         (define_asm_attributes, blockage, frame_blockage): Add missing
6844         attributes.
6845         * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
6846         dependent option, however, preparatory work for now.
6848 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6850         * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
6851         Pass through the block length / loop count conditions if
6852         zero-overhead looping is configured and active,
6854 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6856         * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
6857         Split into individual signedness, in order to use libcall
6858         "__umulsidi3" but not the other.
6859         (<u>mulhisi3): Merge into one by using code iterator.
6860         (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
6862 2022-06-11   Michael Meissner  <meissner@linux.ibm.com>
6864         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
6865         not generate block copies with vector pair instructions if we are
6866         tuning for power10.
6868 2022-06-10  Roger Sayle  <roger@nextmovesoftware.com>
6870         PR rtl-optimization/7061
6871         * expr.cc (emit_group_store): For groups that consist of a single
6872         scalar integer register that hold a complex mode value, use
6873         gen_lowpart to generate a SUBREG to "view_convert" to the complex
6874         mode.  For modes of different sizes, first convert to an integer
6875         mode of the appropriate size.
6877 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6879         * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
6881 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6883         * config/xtensa/xtensa.md (*andsi3_bitcmpl):
6884         New insn_and_split pattern.
6886 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6888         * config/xtensa/xtensa.md (one_cmplsi2):
6889         Rearrange as an insn_and_split pattern.
6891 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6893         * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
6895 2022-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
6897         * config/rs6000/rs6000.md (FP_ISA3): Delete.
6898         (float<QHI:mode><FP_ISA3:mode>2): Rename to...
6899         (float<QHI:mode><SFDF:mode>2): ... this.  Adjust.
6900         (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
6901         (*float<QHI:mode><SFDF:mode>2_internal): ... this.  Adjust.
6902         (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
6903         (floatuns<QHI:mode><SFDF:mode>2): ... this.  Adjust.
6904         (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
6905         (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this.  Adjust.
6907 2022-06-09  Maciej W. Rozycki  <macro@embecosm.com>
6909         * config/riscv/riscv.md
6910         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
6911         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
6912         rather than space with FSFLAGS.
6914 2022-06-09  Tobias Burnus  <tobias@codesourcery.com>
6916         * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
6917         omp_discover_declare_target_fn_r): Don't walk reverse-offload
6918         target regions.
6920 2022-06-09  Jakub Jelinek  <jakub@redhat.com>
6922         * doc/invoke.texi (-Waddress): Fix a typo in small example.
6923         Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
6925 2022-06-09  Cui,Lili  <lili.cui@intel.com>
6927         PR target/105493
6928         * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
6929         from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
6930         unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
6931         (icelake_cost): Ditto.
6932         (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
6933         stores and unaligned stores cost from {6, 6, 6, 10, 15} to
6934         {8, 8, 8, 10, 15}.
6936 2022-06-09  Haochen Gui  <guihaoc@gcc.gnu.org>
6938         * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
6939         and ior insns to one rotate and mask insn.
6940         (define_split for bswapdi register): Likewise.
6942 2022-06-08  Roger Sayle  <roger@nextmovesoftware.com>
6944         PR middle-end/105874
6945         * expr.cc (expand_expr_real_1) <normal_inner_ref>:  New local
6946         variable tem_modifier for calculating the expand_modifier enum to
6947         use for expanding tem.  If tem is a VAR_DECL, use EXPAND_MEMORY.
6949 2022-06-08  Max Filippov  <jcmvbkbc@gmail.com>
6951         PR target/105879
6952         * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
6953         to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
6954         'gen_highpart' bitwise semantics and fix order of highpart and
6955         lowpart depending on target endianness.
6957 2022-06-08  Chung-Ju Wu  <jasonwucj@gmail.com>
6959         * config/arm/arm-cpus.in (star-mc1): New cpu.
6960         * config/arm/arm-tables.opt: Regenerate.
6961         * config/arm/arm-tune.md: Regenerate.
6962         * doc/invoke.texi: Update docs.
6964 2022-06-08  liuhongt  <hongtao.liu@intel.com>
6966         PR target/105513
6967         PR target/105504
6968         * config/i386/i386.md (*movsi_internal): Change alternative
6969         from *v to ?v.
6970         (*movdi_internal): Ditto.
6971         * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
6972         to ?r.
6973         (*vec_extractv4sf_mem): Ditto.
6974         (*vec_extracthf): Ditto.
6976 2022-06-07  Richard Earnshaw  <rearnsha@arm.com>
6978         PR target/105090
6979         * config/arm/arm.cc (arm_bfi_1_p): New function.
6980         (arm_bfi_p): New function.
6981         (arm_rtx_costs_internal): Add costs for BFI idioms.
6982         (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
6983         * config/arm/constraints.md (Dj): New constraint.
6984         * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
6985         (insv_zero): Convert to an insn with a split.
6986         (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
6988 2022-06-07  liuhongt  <hongtao.liu@intel.com>
6990         PR target/105854
6991         * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
6992         from Yv to Yw.
6994 2022-06-07  Roger Sayle  <roger@nextmovesoftware.com>
6996         PR middle-end/105853
6997         PR target/105856
6998         * calls.cc (load_register_parameters): Call store_constructor
6999         and int_expr_size directly instead of expanding via expand_expr.
7000         * expr.cc (static void store_constructor): Don't prototype here.
7001         (static HOST_WIDE_INT int_expr_size): Likewise.
7002         (store_constructor): No longer static.
7003         (int_expr_size): Likewise, no longer static.
7004         * expr.h (store_constructor): Prototype here.
7005         (int_expr_size): Prototype here.
7007 2022-06-07  Jan Beulich  <jbeulich@suse.com>
7009         Revert:
7010         2022-06-03  Jan Beulich  <jbeulich@suse.com>
7012         * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
7013         * configure.ac: Check for objcopy, producing
7014         ORIGINAL_OBJCOPY_FOR_TARGET.
7015         * configure: Update accordingly.
7016         * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
7017         Handle objcopy.
7019 2022-06-07  Jakub Jelinek  <jakub@redhat.com>
7021         * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
7022         * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
7023         Adjust clause printing style depending on
7024         OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
7026 2022-06-07  Jan Beulich  <jbeulich@suse.com>
7028         * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
7029         Change type.
7030         * config/i386/i386-builtin-types.def: New function type
7031         (V4DI, V32QI, V32QI).
7032         * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
7033         V4DI_FTYPE_V32QI_V32QI.
7035 2022-06-07  Jan Beulich  <jbeulich@suse.com>
7037         * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
7038         into account for reg-only insns.
7040 2022-06-07  Roger Sayle  <roger@nextmovesoftware.com>
7042         * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
7043         IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
7044         TARGET_CMOVE's (scalar integer) conditional moves.
7045         * config/i386/sse.md (define_split): Recognize XOP's vpcmov
7046         from its equivalent (canonical) pxor;pand;pxor sequence.
7048 2022-06-07  Kewen Lin  <linkw@linux.ibm.com>
7050         * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
7051         parameter ORDER.
7053 2022-06-06  Andrew Stubbs  <ams@codesourcery.com>
7055         * config.in: Regenerate.
7056         * configure: Regenerate.
7057         * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
7059 2022-06-04  Roger Sayle  <roger@nextmovesoftware.com>
7061         PR middle-end/95126
7062         * calls.cc (load_register_parameters): When loading a suitable
7063         immediate_const_ctor_p VAR_DECL into a single word_mode register,
7064         construct it directly in a pseudo rather than read it (by parts)
7065         from memory.
7066         * expr.cc (int_expr_size): Make tree argument a const_tree.
7067         (immediate_const_ctor_p): Helper predicate.  Return true for
7068         simple constructors that may be materialized in a register.
7069         (expand_expr_real_1) [VAR_DECL]: When expanding a constant
7070         VAR_DECL with a suitable immediate_const_ctor_p constructor
7071         use store_constructor to materialize it directly in a pseudo.
7072         * expr.h (immediate_const_ctor_p): Prototype here.
7073         * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
7074         VALUE argument from tree to const_tree.
7075         * varasm.h (initializer_constant_valid_for_bitfield_p): Update
7076         prototype.
7078 2022-06-04  Jakub Jelinek  <jakub@redhat.com>
7080         PR target/105825
7081         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
7082         *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
7083         bits of mask aren't all set, use operands[2] mode for the AND
7084         operation instead of always SImode.
7086 2022-06-03  Jakub Jelinek  <jakub@redhat.com>
7088         PR middle-end/30314
7089         PR middle-end/105777
7090         * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
7091         x > stype_max / cst || x < stype_min / cst): New simplification.
7093 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
7095         * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
7096         Value_Range.
7097         * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
7098         * value-range.h (Value_Range::Value_Range): Implement copy
7099         constructor for Value_Range.
7101 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
7103         * value-range.h (struct vrange_traits): Remove.
7104         (is_a): Rewrite without vrange_traits.
7105         (as_a): Same.
7107 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
7109         * value-range.cc (vrange::contains_p): Implement.
7110         (vrange::type): Return void.
7111         (vrange::supports_type_p): Implement.
7112         (irange::fits_p): Same.
7113         (vrange::set_undefined): Same.
7114         (irange::set_nonnegative): Same.
7115         (vrange::set_varying): Same.
7116         (vrange::union_): Same.
7117         (unsupported_range::set): Move to vrange.
7118         (unsupported_range::type): Move to vrange.
7119         (vrange::intersect): Implement for varying and undefined.
7120         (vrange::zero_p): Implement.
7121         (unsupported_range::supports_type_p): Move to vrange.
7122         (vrange::nonzero_p): Implement.
7123         (unsupported_range::set_undefined): Move to vrange.
7124         (unsupported_range::set_varying): Same.
7125         (unsupported_range::dump): Same.
7126         (unsupported_range::union_): Same.  Implement for varying and
7127         undefined.
7128         (unsupported_range::intersect): Move to vrange.
7129         (unsupported_range::zero_p): Same.
7130         (unsupported_range::nonzero_p): Same.
7131         (unsupported_range::set_nonzero): Same.
7132         (unsupported_range::set_zero): Same.
7133         (unsupported_range::set_nonnegative): Same.
7134         (unsupported_range::fits_p): Same.
7135         * value-range.h (class vrange): Remove abstract markers for most
7136         methods.
7137         (class unsupported_range): Remove most methods as they will now be
7138         inherited from vrange.
7140 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
7142         * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
7143         an object level supports_type_p for irange and a static
7144         Value_Range::supports_type_p.
7145         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
7146         (fold_using_range::range_of_address): Same.
7147         (fold_using_range::range_of_builtin_call): Same.
7148         * gimple-range-fold.h (gimple_range_type): Same.
7149         (gimple_range_ssa_p): Same.
7150         * gimple-range-path.cc (path_range_query::internal_range_of_expr):
7151         Same.
7152         (path_range_query::range_of_stmt): Same.
7153         (path_range_query::add_to_imports): Same.
7154         * gimple-range.cc (gimple_ranger::range_on_edge): Same.
7155         (gimple_ranger::export_global_ranges): Same.
7156         * gimple-ssa-evrp-analyze.cc
7157         (evrp_range_analyzer::record_ranges_from_phis):  Same.
7158         * range-op.cc (range_operator::wi_fold): Same.
7159         (range_operator::fold_range): Same.
7160         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
7161         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
7162         (evaluate_control_stmt_using_entry_checks): Same.
7163         * tree-ssa-threadedge.cc
7164         (hybrid_jt_simplifier::compute_ranges_from_state): Same.
7165         * tree-vrp.cc (supported_types_p): Same.
7166         * value-query.cc (range_query::value_of_expr): Same.
7167         (range_query::value_on_edge): Same.
7168         (range_query::value_of_stmt): Same.
7169         (range_query::get_tree_range): Same.
7170         (get_range_global): Same.
7171         (global_range_query::range_of_expr): Same.
7172         * value-range-equiv.h (class value_range_equiv): Same.
7173         * value-range.cc (irange::supports_type_p): Same.
7174         (unsupported_range::supports_type_p): Same.
7175         * value-range.h (enum value_range_discriminator): Same.
7176         (Value_Range::init): Same.
7177         (Value_Range::supports_type_p): Same.
7178         (irange::supports_type_p): Same.
7179         (irange::supports_p): Same.
7180         (vrange::supports_type_p): Same.
7181         (vrange_allocator::alloc_vrange): Same.
7183 2022-06-03  Jan Beulich  <jbeulich@suse.com>
7185         * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
7186         * configure.ac: Check for objcopy, producing
7187         ORIGINAL_OBJCOPY_FOR_TARGET.
7188         * configure: Update accordingly.
7189         * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
7190         Handle objcopy.
7192 2022-06-03  Jan Beulich  <jbeulich@suse.com>
7194         * config/i386/mmx.md (mmx_psadbw): Convert to expander.
7195         (*mmx_psadbw): New. Mark as commutative.
7196         * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
7197         (*<sse2_avx2>_psadbw): New. Mark as commutative.
7199 2022-06-03  Alexandre Oliva  <oliva@adacore.com>
7201         PR tree-optimization/105665
7202         PR tree-optimization/100810
7203         * tree-ssa-loop-ivopts.cc
7204         (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
7205         (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
7206         (find_ssa_undef): Check precomputed flag and intervening uses.
7207         (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
7209 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
7211         * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
7212         tree-logical-location.o.
7213         (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
7214         (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
7215         * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
7216         (sarif-stderr, sarif-file): New enum values.
7217         * diagnostic-client-data-hooks.h: New file.
7218         * diagnostic-format-sarif.cc: New file.
7219         * diagnostic-path.h (enum diagnostic_event::verb): New enum.
7220         (enum diagnostic_event::noun): New enum.
7221         (enum diagnostic_event::property): New enum.
7222         (struct diagnostic_event::meaning): New struct.
7223         (diagnostic_event::get_logical_location): New vfunc.
7224         (diagnostic_event::get_meaning): New vfunc.
7225         (simple_diagnostic_event::get_logical_location): New vfunc impl.
7226         (simple_diagnostic_event::get_meaning): New vfunc impl.
7227         * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
7228         (diagnostic_initialize): Initialize m_client_data_hooks.
7229         (diagnostic_finish): Clean up m_client_data_hooks.
7230         (diagnostic_event::meaning::dump_to_pp): New.
7231         (diagnostic_event::meaning::maybe_get_verb_str): New.
7232         (diagnostic_event::meaning::maybe_get_noun_str): New.
7233         (diagnostic_event::meaning::maybe_get_property_str): New.
7234         (get_cwe_url): Make non-static.
7235         (diagnostic_output_format_init): Handle
7236         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
7237         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
7238         * diagnostic.h (enum diagnostics_output_format): Add
7239         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
7240         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
7241         (class diagnostic_client_data_hooks): New forward decl.
7242         (class logical_location): New forward decl.
7243         (diagnostic_context::m_client_data_hooks): New field.
7244         (diagnostic_output_format_init_sarif_stderr): New decl.
7245         (diagnostic_output_format_init_sarif_file): New decl.
7246         (get_cwe_url): New decl.
7247         * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
7248         sarif-file.
7249         * doc/sourcebuild.texi (Scan a particular file): Add
7250         scan-sarif-file and scan-sarif-file-not.
7251         * langhooks-def.h (lhd_get_sarif_source_language): New decl.
7252         (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
7253         (LANG_HOOKS_INITIALIZER): Add
7254         LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
7255         * langhooks.cc (lhd_get_sarif_source_language): New.
7256         * langhooks.h (lang_hooks::get_sarif_source_language): New field.
7257         * logical-location.h: New file.
7258         * plugin.cc (struct for_each_plugin_closure): New.
7259         (for_each_plugin_cb): New.
7260         (for_each_plugin): New.
7261         * plugin.h (for_each_plugin): New decl.
7262         * tree-diagnostic-client-data-hooks.cc: New file.
7263         * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
7264         (tree_diagnostics_defaults): Populate m_client_data_hooks.
7265         * tree-logical-location.cc: New file.
7266         * tree-logical-location.h: New file.
7268 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
7270         * common.opt (fdiagnostics-format=): Add json-stderr and json-file
7271         to description.
7272         (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
7273         (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
7274         (diagnostics_output_format): Add json-stderr and json-file.
7275         * diagnostic-format-json.cc (json_flush_to_file): New.
7276         (json_final_cb): Convert to...
7277         (json_flush_to_file): ...this, ...
7278         (json_stderr_final_cb): ...this, and...
7279         (json_file_final_cb): ...this.
7280         (diagnostic_output_format_init): Move to diagnostic.cc.
7281         (json_output_base_file_name): New.
7282         (diagnostic_output_format_init_json): New.
7283         (diagnostic_output_format_init_json_stderr): New.
7284         (diagnostic_output_format_init_json_file): New.
7285         * diagnostic.cc (diagnostic_output_format_init): Move here from
7286         diagnostic-format-json.cc; update for changes to enum.
7287         * diagnostic.h (enum diagnostics_output_format): Rename
7288         DIAGNOSTICS_OUTPUT_FORMAT_JSON to
7289         DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
7290         DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
7291         (diagnostic_output_format_init): Add base_file_name param.
7292         (diagnostic_output_format_init_json_stderr): New decl.
7293         (diagnostic_output_format_init_json_file): New dec.
7294         * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
7295         "json-file".  Rewrite so that the existing "json" is a synonym of
7296         "json-stderr".
7297         * gcc.cc (driver_handle_option): Pass dump_base_name to
7298         diagnostic_output_format_init.
7299         * opts.cc (common_handle_option): Likewise.
7301 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
7303         * json.cc (string::print): Fix escaping of '\'.
7305 2022-06-02  Philipp Tomsich  <philipp.tomsich@vrull.eu>
7307         * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
7308         (-1 << 31) for the single-bit case, when operating on (1 << 31)
7309         in SImode.
7310         * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
7311         any single-bit value, moving the special case for (1 << 31) to
7312         riscv_build_integer_1 (in riscv.c).
7314 2022-06-02  Roger Sayle  <roger@nextmovesoftware.com>
7316         PR target/105791
7317         * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
7318         (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
7320 2022-06-02  Jakub Jelinek  <jakub@redhat.com>
7322         PR target/105778
7323         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
7324         from AND and its operands and just verify operands[2] has HImode,
7325         SImode or for TARGET_64BIT DImode.  Allow operands[3] to be a mask
7326         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
7327         just throw away the masking.  Use force_reg before calling
7328         gen_lowpart.
7329         (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
7330         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
7331         just throw away the masking.
7332         (*ashl<mode>3_doubleword): Rename to ...
7333         (ashl<mode>3_doubleword): ... this.
7334         (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
7335         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
7336         Use force_reg before calling gen_lowpart.
7337         (*<insn><mode>3_mask): Likewise.
7338         (*<insn><dwi>3_doubleword_mask): Likewise.  Allow operands[3] to be
7339         a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
7340         case just throw away the masking.  Use force_reg before calling
7341         gen_lowpart.
7342         (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
7343         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
7344         throw away the masking.
7345         (*<insn><mode>3_doubleword): Rename to ...
7346         (<insn><mode>3_doubleword): ... this.
7347         (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
7348         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
7349         Use force_reg before calling gen_lowpart.
7350         (splitter after it): Remove :SI from AND and its operands and just
7351         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
7352         (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
7353         operands and just verify operands[1] has HImode, SImode or for
7354         TARGET_64BIT DImode.  Use force_reg before calling gen_lowpart.
7355         (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
7356         * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
7357         ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
7359 2022-06-02  Richard Biener  <rguenther@suse.de>
7361         PR tree-optimization/101668
7362         * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
7363         for vector types with compatible lane types.
7364         (vect_build_slp_tree_2): Deal with this.
7365         (vect_add_slp_permutation): Adjust.  Emit lowpart/concat
7366         special cases without VEC_PERM.
7367         (vectorizable_slp_permutation): Select the operand vector
7368         type and relax requirements.  Handle identity permutes
7369         with mismatching operand types.
7370         * optabs-query.cc (can_vec_perm_const_p): Only allow variable
7371         permutes for op_mode == mode.
7373 2022-06-02  Richard Biener  <rguenther@suse.de>
7375         PR tree-optimization/105802
7376         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
7377         Make sure to also compute the range in the type of the switch index.
7379 2022-06-01  David Seifert  <soap@gentoo.org>
7381         PR plugins/95648
7382         * configure: Regenerate.
7384 2022-06-01  H.J. Lu  <hjl.tools@gmail.com>
7386         PR rtl-optimization/105638
7387         * df-core.cc (df_find_single_def_src): Moved and renamed from
7388         find_single_def_src in loop-iv.cc.  Change the argument to rtx
7389         and use rtx_equal_p.  Return null for partial or conditional
7390         defs.
7391         * df.h (df_find_single_def_src): New prototype.
7392         * dse.cc (record_store): Use the constant source if the source
7393         register is set only once.
7394         * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
7395         (replace_single_def_regs): Replace find_single_def_src with
7396         df_find_single_def_src.
7398 2022-06-01  Wilco Dijkstra  <wilco.dijkstra@arm.com>
7400         * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
7401         selected_tune.
7402         (explicit_arch): Rename to selected_arch.
7403         (x_aarch64_override_tune_string): Remove.
7404         (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
7405         (aarch64_override_tune_string): Add Save so it gets saved/restored.
7406         * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
7407         * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
7408         (processor): Remove archtecture_version field.
7409         (selected_arch): Remove global.
7410         (selected_cpu): Remove global.
7411         (selected_tune): Remove global.
7412         (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
7413         (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
7414         (aarch64_override_options): Further simplify code to only set
7415         selected_arch and selected_tune globals.
7416         (aarch64_option_save): Remove now that target options are saved.
7417         (aarch64_option_restore): Remove redundant target option restores.
7418         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
7419         AARCH64_ISA_V9.
7420         * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
7421         * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
7422         (aarch64_ra_sign_key): Remove.
7424 2022-06-01  Jakub Jelinek  <jakub@redhat.com>
7426         PR middle-end/30314
7427         * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
7428         x > ~(utype)0 / cst): New simplification.
7430 2022-06-01  Richard Biener  <rguenther@suse.de>
7432         PR tree-optimization/105786
7433         * tree-loop-distribution.cc
7434         (loop_distribution::transform_reduction_loop): Only do strlen
7435         replacement for integer type reductions.
7437 2022-06-01  Jakub Jelinek  <jakub@redhat.com>
7439         PR tree-optimization/105770
7440         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
7441         CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
7443 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
7445         * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
7446         (sbr_vector::sbr_vector): Same.
7447         (sbr_vector::grow): Same.
7448         (sbr_vector::set_bb_range): Same.
7449         (sbr_vector::get_bb_range): Same.
7450         (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
7451         (sbr_sparse_bitmap::set_bb_range): Same.
7452         (sbr_sparse_bitmap::get_bb_range): Same.
7453         (block_range_cache::set_bb_range): Same.
7454         (block_range_cache::get_bb_range): Same.
7455         (block_range_cache::dump): Same.
7456         (ssa_global_cache::get_global_range): Same.
7457         (ssa_global_cache::set_global_range): Same.
7458         (ssa_global_cache::clear): Same.
7459         (ssa_global_cache::dump): Same.
7460         (ranger_cache::get_global_range): Same.
7461         (ranger_cache::set_global_range): Same.
7462         (ranger_cache::range_of_def): Same.
7463         (ranger_cache::entry_range): Same.
7464         (ranger_cache::exit_range): Same.
7465         (ranger_cache::edge_range): Same.
7466         (ranger_cache::range_of_expr): Same.
7467         (ranger_cache::range_on_edge): Same.
7468         (ranger_cache::block_range): Same.
7469         (ranger_cache::propagate_cache): Same.
7470         (ranger_cache::fill_block_cache): Same.
7471         (ranger_cache::range_from_dom): Same.
7472         * gimple-range-cache.h: Same.
7473         * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
7474         Same.
7475         (gimple_outgoing_range::switch_edge_range): Same.
7476         (gimple_outgoing_range::edge_range_p): Same.
7477         * gimple-range-edge.h: Same.
7478         * gimple-range-fold.cc (fur_source::get_operand): Same.
7479         (fur_source::get_phi_operand): Same.
7480         (fur_edge::get_operand): Same.
7481         (fur_edge::get_phi_operand): Same.
7482         (fur_stmt::get_operand): Same.
7483         (fur_stmt::get_phi_operand): Same.
7484         (fur_list::fur_list): Same.
7485         (fur_list::get_operand): Same.
7486         (fur_list::get_phi_operand): Same.
7487         (fold_range): Same.
7488         (adjust_imagpart_expr): Same.
7489         (adjust_realpart_expr): Same.
7490         (gimple_range_adjustment): Same.
7491         (fold_using_range::fold_stmt): Same.
7492         (fold_using_range::range_of_range_op): Same.
7493         (fold_using_range::range_of_address): Same.
7494         (fold_using_range::range_of_phi): Same.
7495         (fold_using_range::range_of_call): Same.
7496         (fold_using_range::range_of_builtin_call): Same.
7497         (fold_using_range::range_of_builtin_int_call): Same.
7498         (fold_using_range::range_of_cond_expr): Same.
7499         (fur_source::register_outgoing_edges): Same.
7500         * gimple-range-fold.h (fold_range): Same.
7501         (gimple_range_type): Same.
7502         (gimple_range_ssa_p): Same.
7503         * gimple-range-gori.cc (gimple_range_calc_op1): Same.
7504         (gimple_range_calc_op2): Same.
7505         (gori_compute::compute_operand_range_switch): Same.
7506         (gori_compute::compute_operand_range): Same.
7507         (gori_compute::logical_combine): Same.
7508         (gori_compute::compute_logical_operands): Same.
7509         (gori_compute::compute_operand1_range): Same.
7510         (gori_compute::compute_operand2_range): Same.
7511         (gori_compute::compute_operand1_and_operand2_range): Same.
7512         (gori_compute::outgoing_edge_range_p): Same.
7513         (gori_compute::condexpr_adjust): Same.
7514         * gimple-range-gori.h (gimple_range_calc_op1): Same.
7515         (gimple_range_calc_op2): Same.
7516         * gimple-range-path.cc (path_range_query::get_cache): Same.
7517         (path_range_query::set_cache): Same.
7518         (path_range_query::range_on_path_entry): Same.
7519         (path_range_query::internal_range_of_expr): Same.
7520         (path_range_query::range_of_expr): Same.
7521         (path_range_query::ssa_range_in_phi): Same.
7522         (path_range_query::range_defined_in_block): Same.
7523         (path_range_query::compute_ranges_in_phis): Same.
7524         (path_range_query::compute_ranges_in_block): Same.
7525         (path_range_query::add_to_imports): Same.
7526         (path_range_query::range_of_stmt): Same.
7527         * gimple-range-path.h: Same.
7528         * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
7529         (gimple_infer_range::~side_effect_manager): Same.
7530         (gimple_infer_range::get_nonzero): Same.
7531         (gimple_infer_range::maybe_adjust_range): Same.
7532         (gimple_infer_range::add_range): Same.
7533         * gimple-range-infer.h: Same.
7534         * gimple-range-tests.cc: Same.
7535         * gimple-range-trace.cc (range_tracer::trailer): Same.
7536         (debug_seed_ranger): Same.
7537         * gimple-range-trace.h: Same.
7538         * gimple-range.cc (gimple_ranger::range_of_expr): Same.
7539         (gimple_ranger::range_on_entry): Same.
7540         (gimple_ranger::range_on_exit): Same.
7541         (gimple_ranger::range_on_edge): Same.
7542         (gimple_ranger::fold_range_internal): Same.
7543         (gimple_ranger::range_of_stmt): Same.
7544         (gimple_ranger::prefill_name): Same.
7545         (gimple_ranger::prefill_stmt_dependencies): Same.
7546         (gimple_ranger::export_global_ranges): Same.
7547         (gimple_ranger::dump_bb): Same.
7548         * gimple-range.h: Same.
7549         * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
7550         (memmodel_to_uhwi): Same.
7551         * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
7552         (determine_value_range): Same.
7553         (record_nonwrapping_iv): Same.
7554         (infer_loop_bounds_from_signedness): Same.
7555         (scev_var_range_cant_overflow): Same.
7556         * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
7557         * value-query.cc (range_query::range_on_edge): Same.
7558         (range_query::range_of_stmt): Same.
7559         (range_query::value_of_expr): Same.
7560         (range_query::value_on_edge): Same.
7561         (range_query::value_of_stmt): Same.
7562         (range_query::get_tree_range): Same.
7563         (update_global_range): Same.
7564         (get_range_global): Same.
7565         (gimple_range_global): Same.
7566         (global_range_query::range_of_expr): Same.
7567         (range_query::query_relation): Same.
7568         * value-query.h (gimple_range_global): Same.
7569         (update_global_range): Same.
7570         * vr-values.cc (vr_values::range_of_expr): Same.
7571         (bounds_of_var_in_loop): Same.
7572         (simplify_using_ranges::vrp_visit_cond_stmt): Same.
7573         * vr-values.h (class vr_values): Same.
7574         * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
7576 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
7578         * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
7579         vrange allocator.
7580         (sbr_vector::grow): Same.
7581         (sbr_vector::set_bb_range): Same.
7582         (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
7583         (sbr_sparse_bitmap::set_bb_range): Same.
7584         (block_range_cache::~block_range_cache): Same.
7585         (block_range_cache::set_bb_range): Same.
7586         (ssa_global_cache::ssa_global_cache): Same.
7587         (ssa_global_cache::~ssa_global_cache): Same.
7588         (ssa_global_cache::set_global_range): Same.
7589         * gimple-range-cache.h (block_range_cache): Same.
7590         (ssa_global_cache): Same.
7591         * gimple-range-edge.cc
7592         (gimple_outgoing_range::calc_switch_ranges): Same.
7593         * gimple-range-edge.h (gimple_outgoing_range): Same.
7594         * gimple-range-infer.cc (infer_range_manager::get_nonzero):
7595         Same.
7596         (infer_range_manager::add_range): Same.
7597         * gimple-range-infer.h (class infer_range_manager): Same.
7598         * value-range.h (class irange_allocator): Rename to...
7599         (class vrange_allocator): ...this.
7600         (irange_allocator::irange_allocator): New.
7601         (vrange_allocator::vrange_allocator): New.
7602         (irange_allocator::~irange_allocator): New.
7603         (vrange_allocator::~vrange_allocator): New.
7604         (irange_allocator::get_memory): Rename to...
7605         (vrange_allocator::alloc): ...this.
7606         (vrange_allocator::alloc_vrange): Rename from...
7607         (irange_allocator::allocate): ...this.
7608         (vrange_allocator::alloc_irange): New.
7610 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
7612         * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
7613         vrange and convert range_op_handler function calls to use the
7614         identically named object.
7615         * gimple-range-fold.cc (gimple_range_operand1): Same.
7616         (gimple_range_operand2): Same.
7617         (fold_using_range::fold_stmt): Same.
7618         (fold_using_range::range_of_range_op): Same.
7619         (fold_using_range::range_of_builtin_ubsan_call): Same.
7620         (fold_using_range::relation_fold_and_or): Same.
7621         (fur_source::register_outgoing_edges): Same.
7622         * gimple-range-fold.h (gimple_range_handler): Remove.
7623         * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
7624         (gimple_range_calc_op2): Same.
7625         (range_def_chain::get_def_chain): Same.
7626         (gori_compute::compute_operand_range): Same.
7627         (gori_compute::condexpr_adjust): Same.
7628         * gimple-range.cc (gimple_ranger::prefill_name): Same.
7629         (gimple_ranger::prefill_stmt_dependencies): Same.
7630         * range-op.cc (get_bool_state): Same.
7631         (class operator_equal): Add using clause.
7632         (class operator_not_equal): Same.
7633         (class operator_lt): Same.
7634         (class operator_le): Same.
7635         (class operator_gt): Same.
7636         (class operator_ge): Same.
7637         (class operator_plus): Same.
7638         (class operator_minus): Same.
7639         (class operator_mult): Same.
7640         (class operator_exact_divide): Same.
7641         (class operator_lshift): Same.
7642         (class operator_rshift): Same.
7643         (class operator_cast): Same.
7644         (class operator_logical_and): Same.
7645         (class operator_bitwise_and): Same.
7646         (class operator_logical_or): Same.
7647         (class operator_bitwise_or): Same.
7648         (class operator_bitwise_xor): Same.
7649         (class operator_trunc_mod): Same.
7650         (class operator_logical_not): Same.
7651         (class operator_bitwise_not): Same.
7652         (class operator_cst): Same.
7653         (class operator_identity): Same.
7654         (class operator_unknown): Same.
7655         (class operator_abs): Same.
7656         (class operator_negate): Same.
7657         (class operator_addr_expr): Same.
7658         (class pointer_or_operator): Same.
7659         (operator_plus::op1_range): Adjust for vrange.
7660         (operator_minus::op1_range): Same.
7661         (operator_mult::op1_range): Same.
7662         (operator_cast::op1_range): Same.
7663         (operator_bitwise_not::fold_range): Same.
7664         (operator_negate::fold_range): Same.
7665         (range_op_handler): Rename to...
7666         (get_handler): ...this.
7667         (range_op_handler::range_op_handler): New.
7668         (range_op_handler::fold_range): New.
7669         (range_op_handler::op1_range): New.
7670         (range_op_handler::op2_range): New.
7671         (range_op_handler::lhs_op1_relation): New.
7672         (range_op_handler::lhs_op2_relation): New.
7673         (range_op_handler::op1_op2_relation): New.
7674         (range_cast): Adjust for vrange.
7675         * range-op.h (range_op_handler): Remove function.
7676         (range_cast): Adjust for vrange.
7677         (class range_op_handler): New.
7678         (get_bool_state): Adjust for vrange.
7679         (empty_range_varying): Same.
7680         (relop_early_resolve): Same.
7681         * tree-data-ref.cc (compute_distributive_range): Same.
7682         * tree-vrp.cc (get_range_op_handler): Remove.
7683         (range_fold_binary_symbolics_p): Use range_op_handler class
7684         instead of get_range_op_handler.
7685         (range_fold_unary_symbolics_p): Same.
7686         (range_fold_binary_expr): Same.
7687         (range_fold_unary_expr): Same.
7688         * value-query.cc (range_query::get_tree_range): Adjust for vrange.
7690 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
7692         * gimple-range-fold.h (gimple_range_type): Check type before
7693         calling supports_type_p.
7694         * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
7695         * value-query.cc (range_query::get_tree_range): Same.
7696         * value-range.cc (Value_Range::lower_bound): New.
7697         (Value_Range::upper_bound): New.
7698         (Value_Range::dump): New.
7699         * value-range.h (class Value_Range): New.
7700         (irange::supports_type_p): Do not check if type is non-zero.
7702 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
7704         * value-range-equiv.cc (value_range_equiv::set): New.
7705         * value-range-equiv.h (class value_range_equiv): Make set method
7706         virtual.
7707         Remove default bitmap argument from set method.
7708         * value-range.cc (vrange::contains_p): New.
7709         (vrange::singleton_p): New.
7710         (vrange::operator=): New.
7711         (vrange::operator==): New.
7712         (irange::fits_p): Move to .cc file.
7713         (irange::set_nonnegative): New.
7714         (unsupported_range::unsupported_range): New.
7715         (unsupported_range::set): New.
7716         (unsupported_range::type): New.
7717         (unsupported_range::set_undefined): New.
7718         (unsupported_range::set_varying): New.
7719         (unsupported_range::dump): New.
7720         (unsupported_range::union_): New.
7721         (unsupported_range::intersect): New.
7722         (unsupported_range::zero_p): New.
7723         (unsupported_range::nonzero_p): New.
7724         (unsupported_range::set_nonzero): New.
7725         (unsupported_range::set_zero): New.
7726         (unsupported_range::set_nonnegative): New.
7727         (unsupported_range::fits_p): New.
7728         (irange::set): Call irange::set_undefined.
7729         (irange::verify_range): Check discriminator field.
7730         (irange::dump): Dump [irange] marker.
7731         (irange::debug): Move to...
7732         (vrange::debug): ...here.
7733         (dump_value_range): Accept vrange.
7734         (debug): Same.
7735         * value-range.h (enum value_range_discriminator): New.
7736         (class vrange): New.
7737         (class unsupported_range): New.
7738         (struct vrange_traits): New.
7739         (is_a): New.
7740         (as_a): New.
7741         (class irange): Inherit from vrange.
7742         (dump_value_range): Adjust for vrange.
7743         (irange::kind): Rename to...
7744         (vrange::kind): ...this.
7745         (irange::varying_p): Rename to...
7746         (vrange::varying_p): ...this.
7747         (irange::undefined_p): Rename to...
7748         (vrange::undefined_p): ...this.
7749         (irange::irange): Set discriminator.
7750         (irange::union_): Convert to irange before passing to irange
7751         method.
7752         (irange::intersect): Same.
7753         (vrange::supports_type_p): New.
7754         * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
7755         NULL bitmap argument to value_range_equiv::set.
7756         (vr_values::extract_range_basic): Same.
7758 2022-06-01  Richard Biener  <rguenther@suse.de>
7760         PR tree-optimization/105763
7761         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
7762         Check gimple_range_ssa_p.
7764 2022-05-31  Jason Merrill  <jason@redhat.com>
7766         * Makefile.in (TAGS): Look at libcpp/*.cc.
7768 2022-05-31  Christophe Lyon  <christophe.lyon@arm.com>
7770         * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
7771         Prefix mode names with E_.
7773 2022-05-31  Alan Modra  <amodra@gmail.com>
7775         * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
7776         spelling of DW_AT_namelist_item.
7778 2022-05-31  Jakub Jelinek  <jakub@redhat.com>
7780         * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
7781         allow var to be private in the outer context.
7782         (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
7783         to build_outer_var_ref.
7785 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
7787         * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
7788         tieable with DImode on TARGET_64BIT, and SCmode tieable with
7789         V2SFmode, and DCmode with V2DFmode.
7791 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
7793         PR rtl-optimization/101617
7794         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
7795         special case (indicated by negate_cc_compare_p) to generate a
7796         -1/0 mask using neg;sbb.
7797         * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
7798         to generate an *x86_neg<mode>_ccc instruction.
7799         (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
7800         generate a *x86_mov<mode>cc_0_m1_neg instruction.
7802 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
7804         * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
7805         SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
7806         <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
7808 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
7810         PR target/70321
7811         * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
7812         DI mode equality/inequality using XOR here.  Instead generate a
7813         COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
7814         * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
7815         gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
7816         (general_scalar_chain::convert_compare): New function to convert
7817         scalar equality/inequality comparison into vector operations.
7818         (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
7819         new convert_compare helper method.
7820         (convertible_comparion_p): Update to match doubleword COMPARE
7821         of two register, memory or integer constant operands.
7822         * config/i386/i386-features.h (general_scalar_chain::convert_compare):
7823         Prototype/declare member function here.
7824         * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
7825         only allow new doubleword modes for EQ and NE operators.
7826         (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
7827         doubleword comparison into a pair of XORs followed by an IOR to
7828         set the (zero) flags register, optimizing the XORs if possible.
7829         * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
7830         iterator; V_AVX is (currently) only used by ptest.
7831         (sse4_1 mode attribute): Update to support V1TI and V2TI.
7833 2022-05-30  Uroš Bizjak  <ubizjak@gmail.com>
7835         * config/i386/i386.md: Remove constraints when used with
7836         const_int_operand, const0_operand, const_1_operand, constm1_operand,
7837         const8_operand, const128_operand, const248_operand, const123_operand,
7838         const2367_operand, const1248_operand, const359_operand,
7839         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
7840         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
7841         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
7842         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
7843         const_0_to_255_mul_8_operand, const_1_to_31_operand,
7844         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
7845         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
7846         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
7847         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
7848         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
7849         const_24_to_27_operand and const_28_to_31_operand.
7850         * config/i386/mmx.md: Ditto.
7851         * config/i386/sse.md: Ditto.
7852         * config/i386/subst.md: Ditto.
7853         * config/i386/sync.md: Ditto.
7855 2022-05-30  Jan Beulich  <jbeulich@suse.com>
7857         * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
7858         arguments.
7860 2022-05-30  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7862         * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
7864 2022-05-29  Iain Sandoe  <iain@sandoe.co.uk>
7866         PR target/105599
7867         * config/darwin.h: Move versions-specific handling of multiply_defined
7868         from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
7870 2022-05-29  Eric Gallager  <egallager@gcc.gnu.org>
7872         PR other/82383
7873         * doc/sourcebuild.texi: Add entries for the c++tools,
7874         gotools, libbacktrace, libcc1, libcody, liboffloadmic,
7875         and libsanitizer directories. Remove entry for boehm-gc.
7876         Fix alphabetization for libquadmath.
7878 2022-05-28  Joel Holdsworth  <jholdsworth@nvidia.com>
7880         * config/avr/avr-mcus.def: Add device definitions.
7881         * doc/avr-mmcu.texi: Corresponding changes.
7882         * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
7883         device prefix.
7884         * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
7885         from leaking into cc1.
7887 2022-05-28  Vladimir Makarov  <vmakarov@gcc.gnu.org>
7889         PR target/103722
7890         * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
7891         is special) for various scenarios.
7893 2022-05-28  Iain Sandoe  <iain@sandoe.co.uk>
7895         * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
7896         describing this macro.
7898 2022-05-27  Richard Biener  <rguenther@suse.de>
7900         * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
7902 2022-05-27  Martin Jambor  <mjambor@suse.cz>
7904         PR ipa/105639
7905         * ipa-prop.cc (propagate_controlled_uses): Check type of the
7906         constant before adding a LOAD reference.
7908 2022-05-27  Jakub Jelinek  <jakub@redhat.com>
7910         * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
7911         to OMP_CLAUSE_ENTER.
7912         * tree.h (OMP_CLAUSE_ENTER_TO): Define.
7913         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
7914         OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
7915         * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
7916         instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
7917         "to" instead of "enter".
7918         * tree-nested.cc (convert_nonlocal_omp_clauses,
7919         convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
7920         OMP_CLAUSE_TO_DECLARE.
7922 2022-05-27  Richard Biener  <rguenther@suse.de>
7924         PR tree-optimization/105726
7925         * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
7926         Constrain array-of-flexarray case more.
7928 2022-05-27  Jakub Jelinek  <jakub@redhat.com>
7930         PR sanitizer/105729
7931         * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
7932         to (X &) z + w if -fsanitize=null during GENERIC folding.
7934 2022-05-27  Roger Sayle  <roger@nextmovesoftware.com>
7936         * match.pd (match_zero_one_valued_p): New predicate.
7937         (mult @0 @1): Use zero_one_valued_p for optimization to the
7938         expression "bit_and @0 @1".
7939         (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
7940         (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
7941         (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
7942         (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
7943         Remove three redundant transforms obsoleted by the three above.
7945 2022-05-27  Roger Sayle  <roger@nextmovesoftware.com>
7947         * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
7948         to split a combined "and;cmp" sequence into "not;test".
7950 2022-05-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
7952         * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
7953         (bswapsi2_internal): Revise the template and condition, and add
7954         detection code for preceding the same insn in order to omit a
7955         "SSAI 8" instruction of the latter.
7956         (bswapdi2): Suppress built-in insn expansion with the corresponding
7957         library call when optimizing for size.
7959 2022-05-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
7961         * config/xtensa/xtensa-protos.h
7962         (xtensa_expand_block_set_unrolled_loop,
7963         xtensa_expand_block_set_small_loop): New prototypes.
7964         * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
7965         xtensa_expand_block_set_unrolled_loop,
7966         xtensa_expand_block_set_small_loop): New functions.
7967         * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
7968         * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
7970 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
7972         * config/xtensa/xtensa.cc (xtensa_expand_block_move):
7973         Make instruction counting more accurate, and simplify emitting insns.
7975 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
7977         * config/xtensa/constraints.md (M, O): Use the macro.
7978         * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
7979         sext_fldsz_operand): Ditto.
7980         * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
7981         xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
7982         xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
7983         xtensa_expand_prologue): Ditto.
7984         * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
7986 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
7988         * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
7989         * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
7990         Ditto.
7992 2022-05-25  Andrew MacLeod  <amacleod@redhat.com>
7994         * gimple-range-cache.cc: Adjust comments.
7995         * gimple-range-infer.cc: Adjust comments.
7996         * gimple-range-infer.h: Adjust comments.
7997         * gimple-range.cc: Adjust comments.
7999 2022-05-25  Andrew MacLeod  <amacleod@redhat.com>
8001         * Makefile.in (OBJS): Use gimple-range-infer.o.
8002         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
8003         (ranger_cache::range_from_dom): Rename var side_effect to infer.
8004         (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
8005         * gimple-range-cache.h: Include gimple-range-infer.h.
8006         (class ranger_cache): Adjust prototypes, use infer_range_manager.
8007         * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
8008         (gimple_infer_range::*): Rename from stmt_side_effects.
8009         (infer_range_manager::*): Rename from side_effect_manager.
8010         * gimple-range-side-effect.cc: Rename.
8011         * gimple-range-side-effect.h: Rename.
8012         * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
8013         (class gimple_infer_range): Rename from stmt_side_effects.
8014         (class infer_range_manager): Rename from side_effect_manager.
8015         * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
8016         from register_side_effects.
8017         * gimple-range.h (register_inferred_ranges): Adjust prototype.
8018         * range-op.h: Adjust comment.
8019         * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
8020         (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
8022 2022-05-25  Simon Cook  <simon.cook@embecosm.com>
8024         * config/riscv/arch-canonicalize: Only add mafd extension if
8025         base was rv32/rv64g.
8027 2022-05-25  Tobias Burnus  <tobias@codesourcery.com>
8029         * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
8031 2022-05-25  Jakub Jelinek  <jakub@redhat.com>
8033         PR sanitizer/105714
8034         * asan.cc (has_stmt_been_instrumented_p): For assignments which
8035         are both stores and loads, return true only if both destination
8036         and source have been instrumented.
8038 2022-05-25  Martin Liska  <mliska@suse.cz>
8039             Richard Biener   <rguenther@suse.de>
8041         * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
8042         * params.opt (max-unswitch-level): Remove.
8043         * doc/invoke.texi (max-unswitch-level): Likewise.
8044         * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
8045         gimplified expressions.
8046         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
8047         (tree_may_unswitch_on): Rename to ...
8048         (find_unswitching_predicates_for_bb): ... this and handle
8049         switch statements.
8050         (get_predicates_for_bb): Likewise.
8051         (set_predicates_for_bb): Likewise.
8052         (init_loop_unswitch_info): Likewise.
8053         (tree_ssa_unswitch_loops): Prepare stuff before calling
8054         tree_unswitch_single_loop.
8055         (tree_unswitch_single_loop): Rework the function using
8056         pre-computed predicates and with a per original loop cost model.
8057         (merge_last): New.
8058         (add_predicate_to_path): Likewise.
8059         (find_range_for_lhs): Likewise.
8060         (simplify_using_entry_checks): Rename to ...
8061         (evaluate_control_stmt_using_entry_checks): ... this, handle
8062         switch statements and improve simplifications using ranger.
8063         (simplify_loop_version): Rework using
8064         evaluate_control_stmt_using_entry_checks.
8065         (evaluate_bbs): New.
8066         (evaluate_loop_insns_for_predicate): Likewise.
8067         (tree_unswitch_loop): Adjust to allow switch statements and
8068         pass in the edge to unswitch.
8069         (clean_up_after_unswitching): New.
8070         (pass_tree_unswitch::execute): Pass down fun.
8072 2022-05-24  Eugene Rozenfeld  <erozen@microsoft.com>
8074         * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
8075         counts for the epilog loop.
8077 2022-05-24  Martin Sebor  <msebor@redhat.com>
8078             Richard Biener  <rguenther@suse.de>
8080         PR middle-end/105604
8081         * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
8082         (get_origin_and_offset_r): Remove null handling.  Handle variable array
8083         sizes.
8084         (get_origin_and_offset): Handle null argument here.  Simplify.
8085         (alias_offset): Update comment.
8086         * pointer-query.cc (field_at_offset): Update comment.  Handle members
8087         of variable-length types.
8089 2022-05-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8091         * target.def (vec_perm_const): Define new parameter op_mode and
8092         update doc.
8093         * doc/tm.texi: Regenerate.
8094         * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
8095         vec_perm_const hook to add new parameter op_mode and return false
8096         if result and operand modes do not match.
8097         * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
8098         * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
8099         * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
8100         * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
8101         * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
8102         * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
8103         * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
8104         * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
8105         * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
8106         prototype.
8107         * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
8108         (ashrv2di3): Likewise.
8109         * optabs.cc (expand_vec_perm_const): Likewise.
8110         * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
8111         * optabs-query.cc (can_vec_perm_const_p): Define new parameter
8112         op_mode and pass it to vec_perm_const hook.
8113         (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
8114         * match.pd (vec_perm X Y CST): Likewise.
8115         * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
8116         * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
8117         (vect_grouped_load_supported): Likewise.
8118         (vect_shift_permute_load_chain): Likewise.
8119         * tree-vect-generic.cc (lower_vec_perm): Likewise.
8120         * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
8121         * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
8122         * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
8123         * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
8124         (vect_transform_slp_perm_load): Likewise.
8125         (vectorizable_slp_permutation): Likewise.
8126         * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
8127         (vectorizable_bswap): Likewise.
8128         (scan_store_can_perm_p): Likewise.
8129         (vect_gen_perm_mask_checked): Likewise.
8131 2022-05-24  H.J. Lu  <hjl.tools@gmail.com>
8133         PR target/104816
8134         * config/i386/i386.opt: Remove Undocumented.
8135         * doc/invoke.texi: Document -mcet-switch.
8137 2022-05-24  Andrew Stubbs  <ams@codesourcery.com>
8139         * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
8140         * config/gcn/gcn-opts.h (enum gcn_isa): New.
8141         (TARGET_GCN3): Use enum gcn_isa.
8142         (TARGET_GCN3_PLUS): Likewise.
8143         (TARGET_GCN5): Likewise.
8144         (TARGET_GCN5_PLUS): Likewise.
8145         (TARGET_CDNA1): New.
8146         (TARGET_CDNA1_PLUS): New.
8147         (TARGET_CDNA2): New.
8148         (TARGET_CDNA2_PLUS): New.
8149         (TARGET_M0_LDS_LIMIT): New.
8150         (TARGET_PACKED_WORK_ITEMS): New.
8151         * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
8152         (gcn_option_override): Recognise CDNA ISA variants.
8153         (gcn_omp_device_kind_arch_isa): Support gfx90a.
8154         (gcn_expand_prologue): Make m0 init optional.
8155         Add support for packed work items.
8156         (output_file_start): Support gfx90a.
8157         (gcn_hsa_declare_function_name): Support gfx90a metadata.
8158         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
8159         __CDNA2__.
8160         * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
8161         (<su>mulsi3_highpart_imm): Likewise.
8162         (<su>mulsidi3): Likewise.
8163         (<su>mulsidi3_imm): Likewise.
8164         * config/gcn/gcn.opt (gpu_type): Add gfx90a.
8165         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
8166         (main): Support gfx90a.
8167         * config/gcn/t-gcn-hsa: Add gfx90a multilib.
8168         * config/gcn/t-omp-device: Add gfx90a isa.
8170 2022-05-24  Andrew Stubbs  <ams@codesourcery.com>
8172         * config.in: Regenerate.
8173         * config/gcn/gcn-hsa.h (X_FIJI): Delete.
8174         (X_900): Delete.
8175         (X_906): Delete.
8176         (X_908): Delete.
8177         (S_FIJI): Delete.
8178         (S_900): Delete.
8179         (S_906): Delete.
8180         (S_908): Delete.
8181         (NO_XNACK): New macro.
8182         (NO_SRAM_ECC): New macro.
8183         (SRAMOPT): Keep only v4 variant.
8184         (HSACO3_SELECT_OPT): Delete.
8185         (DRIVER_SELF_SPECS): Delete.
8186         (ASM_SPEC): Remove LLVM 9 support.
8187         * config/gcn/gcn-valu.md
8188         (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
8189         (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
8190         * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
8191         (print_operand_address): Remove assembler bug workaround.
8192         * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
8193         (EF_AMDGPU_SRAM_ECC_V3): Delete.
8194         (SET_XNACK_ON): Delete v3 variants.
8195         (SET_XNACK_OFF): Delete v3 variants.
8196         (TEST_XNACK): Delete v3 variants.
8197         (SET_SRAM_ECC_ON): Delete v3 variants.
8198         (SET_SRAM_ECC_ANY): Delete v3 variants.
8199         (SET_SRAM_ECC_OFF): Delete v3 variants.
8200         (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
8201         (TEST_SRAM_ECC_ANY): Delete v3 variants.
8202         (TEST_SRAM_ECC_ON): Delete v3 variants.
8203         (copy_early_debug_info): Remove v3 support.
8204         (main): Remove v3 support.
8205         * configure: Regenerate.
8206         * configure.ac: Replace all GCN feature checks with a version check.
8208 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
8210         * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
8211         i.e. a double word negation of a zero extended operand, to
8212         neg;sbb.
8214 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
8216         PR tree-optimization/105668
8217         * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
8218         V1TImode, just like V2DImode.
8219         * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
8220         Use VI_128 mode iterator instead of VI124_128 to include V2DI.
8221         (vcond_mask_v2div2di): Delete.
8222         (vcond_mask_v1tiv1ti): New define_expand.
8224 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
8226         * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
8227         to strncmp for strings of length one.
8229 2022-05-24  ShiYulong  <shiyulong@iscas.ac.cn>
8231         * config/riscv/predicates.md (imm5_operand): Add a new operand type for
8232         prefetch instructions.
8233         * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
8234         Extensions.
8235         (RISCV_ATYPE_SI): New.
8236         (RISCV_ATYPE_DI): New.
8237         * config/riscv/riscv-ftypes.def (0): New.
8238         (1): New.
8239         * config/riscv/riscv.md (riscv_clean_<mode>): New.
8240         (riscv_flush_<mode>): New.
8241         (riscv_inval_<mode>): New.
8242         (riscv_zero_<mode>): New.
8243         (prefetch): New.
8244         (riscv_prefetchi_<mode>): New.
8245         * config/riscv/riscv-cmo.def: New file.
8247 2022-05-24  ShiYulong  <shiyulong@iscas.ac.cn>
8249         * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
8250         * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
8251         (MASK_ZICBOM): New.
8252         (MASK_ZICBOP): New.
8253         (TARGET_ZICBOZ): New.
8254         (TARGET_ZICBOM): New.
8255         (TARGET_ZICBOP): New.
8256         * config/riscv/riscv.opt (riscv_zicmo_subext): New.
8258 2022-05-24  David Malcolm  <dmalcolm@redhat.com>
8260         * tree-vect-slp-patterns.cc: Add "final" and "override" to
8261         vect_pattern::build impls as appropriate.
8263 2022-05-24  David Malcolm  <dmalcolm@redhat.com>
8265         * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
8266         implementations, removing redundant "virtual" as appropriate.
8267         * ipa-fnsummary.h: Likewise.
8268         * ipa-modref.cc: Likewise.
8269         * ipa-param-manipulation.cc: Likewise.
8270         * ipa-profile.cc: Likewise.
8271         * ipa-prop.h: Likewise.
8272         * ipa-pure-const.cc: Likewise.
8273         * ipa-reference.cc: Likewise.
8274         * ipa-sra.cc: Likewise.
8275         * symbol-summary.h: Likewise.
8276         * symtab-thunks.cc: Likewise.
8278 2022-05-24  Martin Liska  <mliska@suse.cz>
8280         Revert:
8281         2022-05-24  Martin Liska  <mliska@suse.cz>
8283         * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
8284         warning.
8286 2022-05-24  Martin Liska  <mliska@suse.cz>
8288         * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
8289         warning.
8291 2022-05-24  Bruno Haible  <bruno@clisp.org>
8293         PR other/105527
8294         * doc/install.texi (Configuration): Add more details about --with-zstd.
8295         Document --with-zstd-include and --with-zstd-lib
8297 2022-05-24  Richard Biener  <rguenther@suse.de>
8299         PR middle-end/105711
8300         * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
8301         and use it.
8302         (extract_bit_field_1): Pass down the mode of op0 to
8303         extract_bit_field_as_subreg.
8305 2022-05-24  Vineet Gupta  <vineetg@rivosinc.com>
8307         * config/riscv/riscv.cc: (struct riscv_tune_param): Add
8308           fmv_cost.
8309         (rocket_tune_info): Add default fmv_cost 8.
8310         (sifive_7_tune_info): Ditto.
8311         (thead_c906_tune_info): Ditto.
8312         (optimize_size_tune_info): Ditto.
8313         (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
8315 2022-05-24  Jakub Jelinek  <jakub@redhat.com>
8317         PR c/105378
8318         * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
8319         builtin.
8320         * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
8321         clause but no depend clauses.
8322         * omp-expand.cc (expand_taskwait_call): Use
8323         BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
8324         BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
8326 2022-05-24  Richard Biener  <rguenther@suse.de>
8328         PR tree-optimization/100221
8329         * tree-ssa-dse.cc (contains_phi_arg): New function.
8330         (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
8332 2022-05-24  Richard Biener  <rguenther@suse.de>
8334         PR tree-optimization/105629
8335         * tree-ssa-phiopt.cc (spaceship_replacement): Allow
8336         a sign-extending conversion.
8338 2022-05-24  Kewen Lin  <linkw@linux.ibm.com>
8340         PR target/105627
8341         * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
8342         be a debug insn.
8343         (union_uses): Skip debug use_insn.
8345 2022-05-23  Vineet Gupta  <vineetg@rivosinc.com>
8347         * config/riscv/predicates.md (const_0_operand): Remove
8348         const_double.
8349         * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
8350         CONST_DOUBLE.
8351         * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
8353 2022-05-23  Mayshao  <mayshao-oc@zhaoxin.com>
8355         * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
8356         the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
8357         (cpu_indicator_init): Handle Zhaoxin processors.
8358         * common/config/i386/i386-common.cc: Add lujiazui.
8359         * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
8360         VENDOR_ZHAOXIN.
8361         (enum processor_types): Add ZHAOXIN_FAM7H.
8362         (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
8363         * config.gcc: Add lujiazui.
8364         * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
8365         Signatures for zhaoxin
8366         (signature_SHANGHAI_ecx): Ditto.
8367         (signature_SHANGHAI_edx): Ditto.
8368         * config/i386/driver-i386.cc (host_detect_local_cpu): Let
8369         -march=native recognize lujiazui processors.
8370         * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
8371         * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
8372         * config/i386/i386.h (enum processor_type): Ditto.
8373         * config/i386/i386.md: Add lujiazui.
8374         * config/i386/x86-tune-costs.h (struct processor_costs): Add
8375         lujiazui costs.
8376         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
8377         (ix86_adjust_cost): Ditto.
8378         * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
8379         (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
8380         (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
8381         (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
8382         (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
8383         (X86_TUNE_MOVX): Ditto.
8384         (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
8385         (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
8386         (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
8387         (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
8388         (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
8389         (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
8390         (X86_TUNE_USE_LEAVE): Ditto.
8391         (X86_TUNE_PUSH_MEMORY): Ditto.
8392         (X86_TUNE_LCP_STALL): Ditto.
8393         (X86_TUNE_USE_INCDEC): Ditto.
8394         (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
8395         (X86_TUNE_OPT_AGU): Ditto.
8396         (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
8397         (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
8398         (X86_TUNE_USE_SAHF): Ditto.
8399         (X86_TUNE_USE_BT): Ditto.
8400         (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
8401         (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
8402         (X86_TUNE_AVOID_MFENCE): Ditto.
8403         (X86_TUNE_EXPAND_ABS): Ditto.
8404         (X86_TUNE_USE_SIMODE_FIOP): Ditto.
8405         (X86_TUNE_USE_FFREEP): Ditto.
8406         (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
8407         (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
8408         (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
8409         (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
8410         (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
8411         * doc/extend.texi: Add details about lujiazui.
8412         * doc/invoke.texi: Add details about lujiazui.
8413         * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
8415 2022-05-23  Martin Liska  <mliska@suse.cz>
8417         * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
8419 2022-05-23  Richard Biener  <rguenther@suse.de>
8421         * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
8422         (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
8424 2022-05-23  Richard Biener  <rguenther@suse.de>
8426         * gimple-expr.cc (is_gimple_condexpr): Remove.
8427         * gimple-expr.h (is_gimple_condexpr): Likewise.
8428         * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
8429         * tree-if-conv.cc (set_bb_predicate): Likewie.
8430         (add_to_predicate_list): Likewise.
8431         (gen_phi_arg_condition): Likewise.
8432         (predicate_scalar_phi): Likewise.
8433         (predicate_statements): Likewise.
8435 2022-05-23  Richard Biener  <rguenther@suse.de>
8437         * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
8438         * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
8439         as is_gimple_val.
8440         * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
8441         * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
8442         * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
8443         Build the condition of the COND_EXPR separately.
8444         * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
8445         * tree-vect-generic.cc (expand_vector_condition): Likewise.
8446         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
8447         Likewise.
8448         * vr-values.cc (simplify_using_ranges::simplify): Likewise.
8449         * tree-vect-patterns.cc: Add comment indicating we are
8450         building invalid COND_EXPRs and why.
8451         * omp-expand.cc (expand_omp_simd): Gimplify the condition
8452         to the COND_EXPR separately.
8453         (expand_omp_atomic_cas): Note part that should be unreachable
8454         now.
8455         * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
8456         condition for valid replacements.
8457         * tree-if-conv.cc (predicate_bbs): Simulate previous
8458         re-folding of the condition in folded COND_EXPRs which
8459         is necessary because of unfolded GIMPLE_CONDs in the IL
8460         as in for example gcc.dg/fold-bopcond-1.c.
8461         * gimple-range-gori.cc (gori_compute::condexpr_adjust):
8462         Handle that the comparison is now in the def stmt of
8463         the select operand.  Required by gcc.dg/pr104526.c.
8465 2022-05-23  Tobias Burnus  <tobias@codesourcery.com>
8467         PR fortran/104949
8468         * langhooks-def.h (lhd_omp_array_size): New.
8469         (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
8470         (LANG_HOOKS_DECLS): Add it.
8471         * langhooks.cc (lhd_omp_array_size): New.
8472         * langhooks.h (struct lang_hooks_for_decls): Add hook.
8473         * omp-low.cc (scan_sharing_clauses, lower_omp_target):
8474         Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
8476 2022-05-23  Roger Sayle  <roger@nextmovesoftware.com>
8478         * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
8479         XOR/IOR case.  Account for two instructions for double-word
8480         operations.  In case of vector pandn, account for single
8481         instruction.  Likewise for integer andn with TARGET_BMI.
8482         <case NOT>: Vector NOT requires more than 1 instruction (pxor).
8483         <case NEG>: Double-word negation requires 3 instructions.
8485 2022-05-23  Tsukasa OI  <research_trasio@irq.a4lg.com>
8487         * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
8488         Fix "K" extension prefix to be placed before "J".
8489         * config/riscv/arch-canonicalize: Likewise.
8491 2022-05-23  liuhongt  <hongtao.liu@intel.com>
8493         * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
8494         <-> mask cost from 5 to 6.
8495         (icelake_cost): Ditto.
8497 2022-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
8499         * config/aarch64/aarch64.md
8500         (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
8501         (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
8502         (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
8503         (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
8504         (one_cmpl_<optab><mode>2): Likewise.
8505         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
8506         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
8507         (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
8508         (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
8509         (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
8510         (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
8511         (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
8512         (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
8513         (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
8514         (rolsi3_insn_uxtw): New pattern.
8515         * config/aarch64/iterators.md (SHIFT): Add rotate left.
8516         (SHIFT_no_rotate): Add new iterator.
8517         (SHIFT:shift): Print rotate left as ror.
8518         (is_rotl): Add test for left rotate.
8520 2022-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
8522         * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
8523         processing.  Add support for architectural extensions.
8524         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
8525         AARCH64_CPU_DEFAULT_FLAGS.
8526         (TARGET_CPU_NBITS): Remove.
8527         (TARGET_CPU_MASK): Remove.
8528         * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
8529         (get_tune_cpu): Assert CPU is always valid.
8530         (get_arch): Assert architecture is always valid.
8531         (aarch64_override_options): Cleanup CPU selection code and simplify logic.
8532         (aarch64_option_restore): Remove unnecessary checks on tune.
8534 2022-05-20  David Malcolm  <dmalcolm@redhat.com>
8536         * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
8537         "FINAL" and "OVERRIDE" with "final" and "override".
8538         * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
8539         * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
8540         * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
8541         * diagnostic-path.h: Likewise.
8542         * digraph.cc: Likewise.
8543         * gcc-rich-location.h: Likewise.
8544         * gimple-array-bounds.cc: Likewise.
8545         * gimple-loop-versioning.cc: Likewise.
8546         * gimple-range-cache.cc: Likewise.
8547         * gimple-range-cache.h: Likewise.
8548         * gimple-range-fold.cc: Likewise.
8549         * gimple-range-fold.h: Likewise.
8550         * gimple-range-tests.cc: Likewise.
8551         * gimple-range.h: Likewise.
8552         * gimple-ssa-evrp.cc: Likewise.
8553         * input.cc: Likewise.
8554         * json.h: Likewise.
8555         * read-rtl-function.cc: Likewise.
8556         * tree-complex.cc: Likewise.
8557         * tree-diagnostic-path.cc: Likewise.
8558         * tree-ssa-ccp.cc: Likewise.
8559         * tree-ssa-copy.cc: Likewise.
8560         * tree-vrp.cc: Likewise.
8561         * value-query.h: Likewise.
8562         * vr-values.h: Likewise.
8564 2022-05-20  Marcel Vollweiler  <marcel@codesourcery.com>
8566         * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
8567         target_memcpy_rect_async to omp_runtime_apis array.
8569 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
8571         * doc/sourcebuild.texi (Decimal floating point attributes): Document
8572         dfp_bid effective-target.
8574 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
8576         * config/aarch64/aarch64.cc
8577         (aarch64_split_128bit_move): Handle DFP modes.
8578         (aarch64_mode_valid_for_sched_fusion_p): Likewise.
8579         (aarch64_classify_address): Likewise.
8580         (aarch64_legitimize_address_displacement): Likewise.
8581         (aarch64_reinterpret_float_as_int): Likewise.
8582         (aarch64_float_const_zero_rtx_p): Likewise.
8583         (aarch64_can_const_movi_rtx_p): Likewise.
8584         (aarch64_anchor_offset): Likewise.
8585         (aarch64_secondary_reload): Likewise.
8586         (aarch64_rtx_costs): Likewise.
8587         (aarch64_legitimate_constant_p): Likewise.
8588         (aarch64_gimplify_va_arg_expr): Likewise.
8589         (aapcs_vfp_sub_candidate): Likewise.
8590         (aarch64_vfp_is_call_or_return_candidate): Likewise.
8591         (aarch64_output_scalar_simd_mov_immediate): Likewise.
8592         (aarch64_gen_adjusted_ldpstp): Likewise.
8593         (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
8594         * config/aarch64/aarch64.md
8595         (movsf_aarch64): Use SFD iterator and rename into
8596         mov<mode>_aarch64.
8597         (movdf_aarch64): Use DFD iterator and rename into
8598         mov<mode>_aarch64.
8599         (movtf_aarch64): Use TFD iterator and rename into
8600         mov<mode>_aarch64.
8601         (split pattern for move TF mode): Use TFD iterator.
8602         * config/aarch64/iterators.md
8603         (GPF_TF_F16_MOV): Add DFP modes.
8604         (SFD, DFD, TFD): New iterators.
8605         (GPF_TF): Add DFP modes.
8606         (TX, DX, DX2): Likewise.
8608 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
8610         * configure: Regenerate.
8612 2022-05-19  Roger Sayle  <roger@nextmovesoftware.com>
8614         PR middle-end/98865
8615         * expr.cc (expand_expr_real_2) [MULT_EXPR]:  Expand X*Y as X&Y
8616         when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
8617         likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
8619 2022-05-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
8621         * config/rs6000/rs6000-builtins.def: Rephrase
8622         to remove RS6000_BTC_SPECIAL from comment.
8623         * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
8624         RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
8625         RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
8626         RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
8627         RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
8628         RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
8629         RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
8630         RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
8631         RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
8632         RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
8633         RS6000_BTM_ALWAYS): Delete.
8635 2022-05-19  Richard Biener  <rguenther@suse.de>
8637         * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
8638         computation of the new value.
8640 2022-05-19  Richard Biener  <rguenther@suse.de>
8642         * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
8643         (add_to_value): Use get_expression_id.
8644         (bitmap_insert_into_set): Likewise.
8645         (bitmap_value_insert_into_set): Likewise.
8647 2022-05-19  David Malcolm  <dmalcolm@redhat.com>
8649         * doc/invoke.texi (-fanalyzer-checker=): Add
8650         -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
8651         the list of analyzer warnings disabled by
8652         -fanalyzer-checker=taint.
8654 2022-05-19  Jakub Jelinek  <jakub@redhat.com>
8656         PR debug/105630
8657         * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
8658         global vars without symtab node even when they have DECL_RTL
8659         set.
8661 2022-05-19  Jakub Jelinek  <jakub@redhat.com>
8663         PR c/105635
8664         * pointer-query.cc (gimple_parm_array_size): Return NULL if var
8665         doesn't have pointer or reference type.
8667 2022-05-18  Marek Polacek  <polacek@redhat.com>
8669         PR c/105131
8670         * doc/invoke.texi: Document -Wenum-int-mismatch.
8672 2022-05-18  Uros Bizjak  <ubizjak@gmail.com>
8674         * config/i386/gnu-user-common.h (defined): Only define
8675         TARGET_CAN_SPLIT_STACK for glibc targets.
8676         * config/i386/gnu.h (defined): Ditto.
8678 2022-05-18  Roger Sayle  <roger@nextmovesoftware.com>
8680         * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
8681         is wider than word_mode, a multiplication costs three word_mode
8682         multiplications and two word_mode additions.
8684 2022-05-18  Roger Sayle  <roger@nextmovesoftware.com>
8686         * config/i386/i386.md (define_split):  Split *andsi_1
8687         and *andn_si_ccno after reload with -Oz.
8689 2022-05-18  Frederik Harwath  <frederik@codesourcery.com>
8691         * graphite-scop-detection.cc (scop_detection::can_represent_loop):
8692         Output reason for failure to dump file.
8693         (scop_detection::harmful_loop_in_region): Likewise.
8694         (scop_detection::graphite_can_represent_expr): Likewise.
8695         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
8696         (scop_detection::stmt_simple_for_scop_p): Likewise.
8697         (print_sese_loop_numbers): New function.
8698         (scop_detection::add_scop): Use from here.
8700 2022-05-18  liuhongt  <hongtao.liu@intel.com>
8702         PR middle-end/103462
8703         * match.pd (bitwise_induction_p): New match.
8704         * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
8705         Declare.
8706         (analyze_and_compute_bitwise_induction_effect): New function.
8707         (enum bit_op_kind): New enum.
8708         (final_value_replacement_loop): Enhanced to handle bitwise
8709         induction.
8711 2022-05-18  Haochen Gui  <guihaoc@gcc.gnu.org>
8713         PR target/95737
8714         * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
8716 2022-05-18  liuhongt  <hongtao.liu@intel.com>
8718         PR target/104375
8719         * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
8720         define_insn.
8722 2022-05-18  liuhongt  <hongtao.liu@intel.com>
8724         PR target/104610
8725         * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
8726         for QImode when code is EQ or NE.
8727         * config/i386/i386.md (cbranchoi4): New expander.
8729 2022-05-18  Peter Bergner  <bergner@linux.ibm.com>
8730             Segher Boessenkool  <segher@kernel.crashing.org>
8732         PR target/105556
8733         * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
8734         mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
8735         mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
8736         mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
8737         Update other operands accordingly.
8739 2022-05-17  Marek Polacek  <polacek@redhat.com>
8741         * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
8743 2022-05-17  Pat Haugen  <pthaugen@linux.ibm.com>
8745         PR target/99685
8746         * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
8747         register count when not splitting IEEE 128-bit Complex.
8749 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
8751         * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
8752         target inside target if inner is reverse offload.
8754 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
8756         * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
8757         * config/nvptx/mkoffload.cc (process): Likewise.
8759 2022-05-17  Andrew MacLeod  <amacleod@redhat.com>
8761         * Makefile.in (OBJS): Add gimple-range-side-effect.o.
8762         * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
8763         (non_null_ref::~non_null_ref): Delete.
8764         (non_null_ref::set_nonnull): Delete.
8765         (non_null_ref::non_null_deref_p): Delete.
8766         (non_null_ref::process_name): Delete.
8767         (ranger_cache::ranger_cache): Initialize m_exit object.
8768         (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
8769         (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
8770         (ranger_cache::update_to_nonnull): Delete.
8771         (non_null_loadstore): Delete.
8772         (ranger_cache::block_apply_nonnull): Delete.
8773         (ranger_cache::apply_side_effects): New.
8774         * gimple-range-cache.h (class non_null_ref): Delete.
8775         (non_null_ref::adjust_range): Delete.
8776         (class ranger_cache): Adjust prototypes, add side effect manager.
8777         * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
8778         side effect manager for queries.
8779         (path_range_query::adjust_for_non_null_uses): Ditto.
8780         * gimple-range-path.h (class path_range_query): Delete non_null_ref.
8781         * gimple-range-side-effect.cc: New.
8782         * gimple-range-side-effect.h: New.
8783         * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
8784         (gimple_ranger::range_of_expr): Check def block for override value.
8785         (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
8786         (gimple_ranger::range_on_edge): Check for outgoing side-effects.
8787         (gimple_ranger::register_side_effects): Call apply_side_effects.
8788         (enable_ranger): Update contructor.
8789         * gimple-range.h (class gimple_ranger): Update prototype.
8790         (enable_ranger): Update prototype.
8791         * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
8793 2022-05-17  Giuliano Belinassi  <gbelinassi@suse.de>
8795         PR c++/105169
8796         * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
8797         * varasm.cc (switch_to_comdat_section): New
8798         (handle_vtv_comdat_section): Call switch_to_comdat_section.
8799         * varasm.h: Declare switch_to_comdat_section.
8801 2022-05-17  Richard Biener  <rguenther@suse.de>
8803         * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
8804         not clear bb->aux of the copied blocks.
8806 2022-05-17  Andrew MacLeod  <amacleod@redhat.com>
8808         PR tree-optimization/105458
8809         * value-relation.cc (path_oracle::register_relation): Merge, then check
8810         for equivalence.
8812 2022-05-17  Uroš Bizjak  <ubizjak@gmail.com>
8814         PR target/105624
8815         Revert:
8816         * config/i386/i386.md: Remove constraints when used with
8817         const_int_operand, const0_operand, const_1_operand, constm1_operand,
8818         const8_operand, const128_operand, const248_operand, const123_operand,
8819         const2367_operand, const1248_operand, const359_operand,
8820         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
8821         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
8822         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
8823         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
8824         const_0_to_255_mul_8_operand, const_1_to_31_operand,
8825         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
8826         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
8827         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
8828         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
8829         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
8830         const_24_to_27_operand and const_28_to_31_operand.
8831         * config/i386/mmx.md: Ditto.
8832         * config/i386/sse.md: Ditto.
8833         * config/i386/subst.md: Ditto.
8834         * config/i386/sync.md: Ditto.
8836 2022-05-17  Thomas Schwinge  <thomas@codesourcery.com>
8838         * diagnostic.cc: Don't advise to call 'abort' instead of
8839         'internal_error'.
8840         * system.h: Advise to call 'internal_error' instead of 'abort' or
8841         'fancy_abort'.
8843 2022-05-17  Frederik Harwath  <frederik@codesourcery.com>
8845         * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
8846         a reference to a variable which does not exist.
8847         * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
8848         in comment.
8850 2022-05-17  Frederik Harwath  <frederik@codesourcery.com>
8852         * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
8853         (isl_id_for_parameter): ... this new function name.
8854         (build_scop_context): Adjust function use.
8856 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
8858         PR target/105602
8859         * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
8860         * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
8862 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
8864         * tree-core.h (enum omp_clause_depend_kind): Add
8865         OMP_CLAUSE_DEPEND_INOUTSET.
8866         * tree-pretty-print.cc (dump_omp_clause): Handle
8867         OMP_CLAUSE_DEPEND_INOUTSET.
8868         * gimplify.cc (gimplify_omp_depend): Likewise.
8869         * omp-low.cc (lower_depend_clauses): Likewise.
8871 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
8873         PR target/105613
8874         * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
8875         andv4si3 only for EQ, for NE use iorv4si3 instead.
8877 2022-05-17  Richard Biener  <rguenther@suse.de>
8879         PR tree-optimization/105618
8880         * tree-ssa-sink.cc (statement_sink_location): For virtual
8881         PHI uses ignore those defining the used virtual operand.
8883 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
8885         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
8886         hanlde -> handle.  Fix up comment formatting.
8888 2022-05-17  liuhongt  <hongtao.liu@intel.com>
8890         PR target/105033
8891         * config/i386/sse.md (*vec_concatv4si): Extend to ..
8892         (*vec_concat<mode>): .. V16QI and V8HImode.
8893         (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
8894         (*vec_concatv8hi_permt2): Ditto.
8896 2022-05-17  liuhongt  <hongtao.liu@intel.com>
8898         PR tree-optimization/105591
8899         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
8900         vec_perm_expr index.
8902 2022-05-16  Jason Merrill  <jason@redhat.com>
8904         PR c/105492
8905         * attribs.cc (decl_attributes): Fix broken typedefs here.
8907 2022-05-16  David Malcolm  <dmalcolm@redhat.com>
8909         PR analyzer/105103
8910         * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
8911         * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
8912         -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
8913         -Wanalyzer-va-list-use-after-va-end.
8915 2022-05-16  Richard Biener  <rguenther@suse.de>
8917         * gimple-match.h (gimple_build): Move code_helper overloads ...
8918         * gimple-fold.h (gimple_build): ... here.
8919         (gimple_build): Transition to new worker API.  Provide
8920         overloads from sequence-based API.
8921         (gimple_convert): Likewise.
8922         (gimple_convert_to_ptrofftype): Likewise.
8923         (gimple_build_vector_from_val): Likewise.
8924         (gimple_build_vector): Likewise.
8925         (gimple_build_round_up): Likewise.
8926         * gimple-fold.cc (gimple_build_insert_seq): New helper.
8927         (gimple_build): Use it.  Transition combined_fn and code_helper
8928         API parts.
8929         (gimple_convert): Transition to new worker API.
8930         (gimple_convert_to_ptrofftype): Likewise.
8931         (gimple_build_vector_from_val): Likewise.
8932         (gimple_build_vector): Likewise.
8933         (gimple_build_round_up): Likewise.
8935 2022-05-16  Richard Biener  <rguenther@suse.de>
8937         * gimple-match.h (code_helper): Move class ...
8938         * tree.h (code_helper): ... here.
8940 2022-05-16  Martin Liska  <mliska@suse.cz>
8942         * opts-global.cc (write_langs): Add comment.
8944 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
8946         * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
8947         instead of a bitwise negation.
8948         <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
8950 2022-05-16  Martin Liska  <mliska@suse.cz>
8952         * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
8953         (decls_mismatched_attributes): Likewise.
8954         * builtins.cc (c_strlen): Likewise.
8955         * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
8956         * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
8957         * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
8958         (aarch64_init_simd_builtin_types): Likewise.
8959         (aarch64_init_builtin_rsqrt): Likewise.
8960         * config/aarch64/aarch64.cc (is_madd_op): Likewise.
8961         * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
8962         (arm_init_simd_builtin_types): Likewise.
8963         * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
8964         (c_prefix): Likewise.
8965         (main): Likewise.
8966         * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
8967         * config/darwin-c.cc (darwin_register_frameworks): Likewise.
8968         * config/gcn/mkoffload.cc (process_obj): Likewise.
8969         * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
8970         (fold_builtin_cpu): Likewise.
8971         * config/m32c/m32c.cc (PUSHM_N): Likewise.
8972         * config/nvptx/mkoffload.cc (process): Likewise.
8973         * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
8974         * config/s390/s390.cc (NR_C_MODES): Likewise.
8975         * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
8976         (create_insn_code_compression_table): Likewise.
8977         * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
8978         * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
8979         * dwarf2out.cc (ARRAY_SIZE): Likewise.
8980         * genhooks.cc (emit_documentation): Likewise.
8981         (emit_init_macros): Likewise.
8982         * gimple-ssa-sprintf.cc (format_floating): Likewise.
8983         * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
8984         * godump.cc (keyword_hash_init): Likewise.
8985         * hash-table.cc (hash_table_higher_prime_index): Likewise.
8986         * input.cc (for_each_line_table_case): Likewise.
8987         * ipa-free-lang-data.cc (free_lang_data): Likewise.
8988         * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
8989         * optc-save-gen.awk: Likewise.
8990         * spellcheck.cc (test_metric_conditions): Likewise.
8991         * tree-vect-slp-patterns.cc (sizeof): Likewise.
8992         (ARRAY_SIZE): Likewise.
8993         * tree.cc (build_common_tree_nodes): Likewise.
8995 2022-05-16  Martin Liska  <mliska@suse.cz>
8997         * opts-global.cc (write_langs): Allocate at least one byte.
8999 2022-05-16  Richard Biener  <rguenther@suse.de>
9001         * match.pd (A cmp B ? A : B -> min/max): New patterns
9002         carried over from fold_cond_expr_with_comparison.
9004 2022-05-16  liuhongt  <hongtao.liu@intel.com>
9006         PR target/105587
9007         * config/i386/i386-expand.cc
9008         (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
9009         d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
9011 2022-05-15  Uroš Bizjak  <ubizjak@gmail.com>
9013         * config/i386/i386.md: Remove constraints when used with
9014         const_int_operand, const0_operand, const_1_operand, constm1_operand,
9015         const8_operand, const128_operand, const248_operand, const123_operand,
9016         const2367_operand, const1248_operand, const359_operand,
9017         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
9018         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
9019         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
9020         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
9021         const_0_to_255_mul_8_operand, const_1_to_31_operand,
9022         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
9023         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
9024         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
9025         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
9026         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
9027         const_24_to_27_operand and const_28_to_31_operand.
9028         * config/i386/mmx.md: Ditto.
9029         * config/i386/sse.md: Ditto.
9030         * config/i386/subst.md: Ditto.
9031         * config/i386/sync.md: Ditto.
9033 2022-05-13  Roger Sayle  <roger@nextmovesoftware.com>
9034             Uroš Bizjak  <ubizjak@gmail.com>
9036         * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
9037         For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
9038         by a pshufd and pand.
9039         (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
9040         vector equality as a V2DImode vector comparison (see above),
9041         followed by a pshufd and pand.
9043 2022-05-13  Roger Sayle  <roger@nextmovesoftware.com>
9045         PR tree-optimization/83907
9046         * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
9047         for memset with an constant char value.
9048         (handle_store): Improved handling of stores with a first byte
9049         of zero, but not storing_all_zeros_p.
9051 2022-05-13  Philipp Tomsich  <philipp.tomsich@vrull.eu>
9052             Manolis Tsamis  <manolis.tsamis@vrull.eu>
9054         * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
9055         (CTZ_DEFINED_VALUE_AT_ZERO): Same.
9056         * doc/sourcebuild.texi: add documentation for RISC-V specific
9057         test target keywords
9059 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9061         PR tree-optimization/105597
9062         * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
9063         of the lhs and make sure it is not undefined.
9065 2022-05-13  Sebastian Pop  <spop@amazon.com>
9067         PR target/105162
9068         * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
9069         of str array.
9070         * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
9071         memmodel_from_int and handle MEMMODEL_SYNC_*.
9072         (DEF0): Add __aarch64_*_sync functions.
9074 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9076         * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
9077         enumerated values.
9078         * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
9079         * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
9080         new VREL enumerated values.
9081         (*::lhs_op2_relation): Ditto.
9082         (*::op1_op2_relation): Ditto.
9083         (*::fold_range): Use new VREL enumerated values.
9084         (minus_op1_op2_relation_effect): Ditto.
9085         (range_relational_tests): Ditto.
9086         * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
9087         (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
9088         relation_kind.
9089         (*_op1_op2_relation): Return relation_kind.
9090         (relop_early_resolve): Use VREL_UNDEFINED.
9091         * value-query.cc (range_query::query_relation): Use VREL_VARYING.
9092         * value-relation.cc (VREL_LAST): Change enumerated value.
9093         (vrel_range_assert): Delete.
9094         (print_relation): Remove range assert.
9095         (rr_negate_table): Adjust table to use new enumerated values..
9096         (relation_negate): Remove range assert.
9097         (rr_swap_table): Adjust.
9098         (relation_swap): Remove range assert.
9099         (rr_intersect_table): Adjust.
9100         (relation_intersect): Remove range assert.
9101         (rr_union_table): Adjust.
9102         (relation_union): Remove range assert.
9103         (rr_transitive_table): Adjust.
9104         (relation_transitive): Remove range assert.
9105         (equiv_oracle::query_relation): Use new VREL enumerated values.
9106         (equiv_oracle::register_relation): Ditto.
9107         (relation_oracle::register_stmt): Ditto.
9108         (dom_oracle::set_one_relation): Ditto.
9109         (dom_oracle::register_transitives): Ditto.
9110         (dom_oracle::query_relation): Ditto.
9111         (path_oracle::register_relation): Ditto.
9112         (path_oracle::query_relation): Ditto.
9113         * value-relation.h (enum relation_kind_t): New relation_kind.
9114         (*_op1_op2_relation): Adjust prototypes.
9116 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9118         * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
9119         * value-range.cc (irange::legacy_verbose_union_): Add return value.
9120         (irange::irange_single_pair_union): New.
9121         (irange::irange_union): Add return value.
9122         * value-range.h (class irange): Adjust prototypes.
9124 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9126         * value-range.cc (irange::legacy_verbose_intersect): Add return value.
9127         (irange::irange_contains_p): New.
9128         (irange::irange_intersect): Add return value.
9129         * value-range.h (class irange): Adjust prototypes.
9131 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9133         * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
9134         had_global value instead.
9136 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9138         PR tree-optimization/104547
9139         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
9140         the op1/op2 relation to the relation call.
9141         * range-op.cc (*::lhs_op1_relation): Add param.
9142         (*::lhs_op2_relation): Ditto.
9143         (operator_minus::lhs_op1_relation): New.
9144         (range_relational_tests): Add relation param.
9145         * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
9147 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9149         * gimple-range.cc (gimple_ranger::register_side_effects): First check
9150         if the DEF should be exported as a global.
9151         * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
9152         which will export globals.
9153         (execute_ranger_vrp): Remove call to export_global_ranges.
9155 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9157         * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
9159 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
9161         * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
9162         worlist truncated.
9163         (ranger_cache::entry_range): Add rfd_mode parameter.
9164         (ranger_cache::exit_range): Ditto.
9165         (ranger_cache::edge_range): New.  Incorporate from range_on_edge.
9166         (ranger_cache::range_of_expr): Adjust call to entry_range.
9167         (ranger_cache::range_on_edge): Split to edge_range and call.
9168         (ranger_cache::fill_block_cache): Always invoke range_from_dom.
9169         (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
9170         mutiple predecessors.
9171         (ranger_cache::update_to_nonnull): Adjust call to exit_range.
9172         * gimple-range-cache.h (ranger_cache): Add enum rfd_mode.  Adjust
9173         prototypes.
9175 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
9177         * gimple-harden-conditionals.cc: Include sbitmap.h.
9178         (pass_harden_conditional_branches::execute): Skip new blocks.
9179         (pass_harden_compares::execute): Likewise.
9181 2022-05-13  Richard Earnshaw  <rearnsha@arm.com>
9183         PR target/105463
9184         * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
9185         mve_memory_operand.
9186         (*movmisalign<mode>_mve_load): Likewise.
9187         * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
9188         form...
9189         (@movmisalign<mode>): ... thus.  Use generic predicates and then
9190         rework operands if they are not valid.  For MVE rework to a
9191         narrower element size if the alignment is not high enough.
9193 2022-05-13  Richard Earnshaw  <rearnsha@arm.com>
9195         * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
9196         when there is no write-back.  Fix use when strict is true.
9198 2022-05-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9200         * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
9201         definition.
9203 2022-05-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9205         * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
9206         extzvsi_internal): Rename from extv, extv_internal, extzv and
9207         extzv_internal, respectively.
9209 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
9211         * tree-sra.cc (sra_modify_assign): Check that scalar storage order
9212         is the same on the LHS and RHS before rewriting one with the model
9213         of the other.
9215 2022-05-13  Richard Biener  <rguenther@suse.de>
9217         * gimple-fold.cc (gimple_build): Adjust for new
9218         main API.
9219         * gimple-fold.h (gimple_build): New main APIs with
9220         iterator, insert direction and iterator update.
9221         (gimple_build): New forwarder template.
9222         (clear_padding_type_may_have_padding_p): Remove.
9223         (clear_type_padding_in_mask): Likewise.
9224         (arith_overflowed_p): Likewise.
9225         * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
9226         (clear_type_padding_in_mask): Likewise.
9227         (arith_overflowed_p): Likewise.
9228         * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
9229         (gimplify_build2): Likewise.
9230         (gimplify_build1): Likewise.
9231         * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
9232         compare stmt.
9233         * gengtype.cc (open_base_files): Re-order includes.
9234         * builtins.cc: Re-order gimple-fold.h include.
9235         * calls.cc: Likewise.
9236         * cgraphbuild.cc: Likewise.
9237         * cgraphunit.cc: Likewise.
9238         * config/rs6000/rs6000-builtin.cc: Likewise.
9239         * config/rs6000/rs6000-call.cc: Likewise.
9240         * config/rs6000/rs6000.cc: Likewise.
9241         * config/s390/s390.cc: Likewise.
9242         * expr.cc: Likewise.
9243         * fold-const.cc: Likewise.
9244         * function-tests.cc: Likewise.
9245         * gimple-match-head.cc: Likewise.
9246         * gimple-range-fold.cc: Likewise.
9247         * gimple-ssa-evrp-analyze.cc: Likewise.
9248         * gimple-ssa-evrp.cc: Likewise.
9249         * gimple-ssa-sprintf.cc: Likewise.
9250         * gimple-ssa-warn-access.cc: Likewise.
9251         * gimplify.cc: Likewise.
9252         * graphite-isl-ast-to-gimple.cc: Likewise.
9253         * ipa-cp.cc: Likewise.
9254         * ipa-devirt.cc: Likewise.
9255         * ipa-prop.cc: Likewise.
9256         * omp-low.cc: Likewise.
9257         * pointer-query.cc: Likewise.
9258         * range-op.cc: Likewise.
9259         * tree-cfg.cc: Likewise.
9260         * tree-if-conv.cc: Likewise.
9261         * tree-inline.cc: Likewise.
9262         * tree-object-size.cc: Likewise.
9263         * tree-ssa-ccp.cc: Likewise.
9264         * tree-ssa-dom.cc: Likewise.
9265         * tree-ssa-forwprop.cc: Likewise.
9266         * tree-ssa-ifcombine.cc: Likewise.
9267         * tree-ssa-loop-ivcanon.cc: Likewise.
9268         * tree-ssa-math-opts.cc: Likewise.
9269         * tree-ssa-pre.cc: Likewise.
9270         * tree-ssa-propagate.cc: Likewise.
9271         * tree-ssa-reassoc.cc: Likewise.
9272         * tree-ssa-sccvn.cc: Likewise.
9273         * tree-ssa-strlen.cc: Likewise.
9274         * tree-ssa.cc: Likewise.
9275         * value-pointer-equiv.cc: Likewise.
9276         * vr-values.cc: Likewise.
9278 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
9280         PR rtl-optimization/105455
9281         * gimple-harden-conditionals.cc (insert_check_and_trap): Set
9282         probabilities for newly-conditional edges.
9284 2022-05-13  liuhongt  <hongtao.liu@intel.com>
9286         PR tree-optimization/102583
9287         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
9288         contiguous stride in the VEC_PERM_EXPR.
9290 2022-05-12  Richard Biener  <rguenther@suse.de>
9292         PR rtl-optimization/105577
9293         * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
9294         edges before running fast DCE via df_analyze.
9296 2022-05-12  Richard Biener  <rguenther@suse.de>
9298         PR tree-optimization/105562
9299         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
9300         against all CLOBBER defs if there's not an obvious must-alias
9301         and we are not doing redundant store elimination.
9302         (vn_walk_cb_data::redundant_store_removal_p): New field.
9303         (vn_reference_lookup_pieces): Initialize it.
9304         (vn_reference_lookup): Add argument to specify if we are
9305         doing redundant store removal.
9306         (eliminate_dom_walker::eliminate_stmt): Specify we do.
9307         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
9309 2022-05-12  Haochen Jiang  <haochen.jiang@intel.com>
9311         PR target/104371
9312         * config/i386/sse.md (vi1avx2const): New define_mode_attr.
9313         (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
9314         New define_split pattern.
9316 2022-05-12  Jakub Jelinek  <jakub@redhat.com>
9318         * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
9319         if null_pointer_node.
9320         (gimplify_scan_omp_clauses): Likewise.
9321         * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
9322         as omp_all_memory.
9324 2022-05-11  Patrick Palka  <ppalka@redhat.com>
9326         * tree.h (TREE_VEC_BEGIN): Define.
9327         (TREE_VEC_END): Correct 'length' member access.
9328         (class tree_vec_range): Define.
9330 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
9332         * config/rs6000/rs6000.md: Use wa instead of <Fv>.
9334 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
9336         * config/rs6000/rs6000.md: Use d instead of <Ff>.
9338 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
9340         * config/rs6000/constraints.md (register_constraint "f"): Use
9341         RS6000_CONSTRAINT_d.
9342         * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
9343         RS6000_CONSTRAINT_f.
9344         (rs6000_init_hard_regno_mode_ok): Ditto.  Reorder and simplify a bit.
9345         * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
9346         RS6000_CONSTRAINT_d.
9348 2022-05-11  Richard Biener  <rguenther@suse.de>
9350         * gimple-fold.h (gimple_build): Use variadic template
9351         functions for the gimple_build API forwarders without
9352         location_t argument.
9354 2022-05-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
9356         PR middle-end/70090
9357         * asan.cc (initialize_sanitizer_builtins): Register
9358         __builtin_dynamic_object_size if necessary.
9360 2022-05-11  Richard Biener  <rguenther@suse.de>
9362         PR rtl-optimization/105559
9363         * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
9364         for non-debug insns.
9366 2022-05-11  Richard Biener  <rguenther@suse.de>
9368         * generic-match-head.cc: Include tree-eh.h.
9369         * match.pd ((cond ...) cmp X): New simplification inspired
9370         by fold_binary_op_with_conditional_arg.
9371         (eq/ne (cmp ...) true/false): Likewise.
9373 2022-05-11  Thomas Schwinge  <thomas@codesourcery.com>
9375         * doc/install.texi: Don't document '--with-hsa-runtime',
9376         '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
9378 2022-05-11  Martin Liska  <mliska@suse.cz>
9380         PR other/105527
9381         * doc/install.texi: Document the configure option --with-zstd.
9383 2022-05-11  Martin Liska  <mliska@suse.cz>
9385         * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
9386         compute index in cpu_features2.
9387         (set_cpu_feature): Likewise.
9388         * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
9389         loop for cpu_features2 and use NOP_EXPRs.
9391 2022-05-11  Richard Biener  <rguenther@suse.de>
9393         PR bootstrap/105551
9394         * opts.cc (finish_options): Also disable var-tracking if
9395         !DWARF2_DEBUGGING_INFO.
9397 2022-05-11  liuhongt  <hongtao.liu@intel.com>
9399         PR target/104915
9400         * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
9401         pre_reload define_insn_and_split.
9402         (*vec_setv2di_0_zero_extendhi_1): Ditto.
9403         (*vec_set<mode>_0_zero_extendsi): Ditto.
9404         (*vec_setv2di_0_zero_extendsi_1): Ditto.
9405         (ssewvecmode): New mode attr.
9406         (ssewvecmodelower): Ditto.
9407         (ssepackmodelower): Ditto.
9409 2022-05-11  Kewen Lin  <linkw@linux.ibm.com>
9411         * config/rs6000/constraints.md (register constraint v): Use
9412         rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
9414 2022-05-11  Martin Liska  <mliska@suse.cz>
9416         PR target/105355
9417         * config/riscv/riscv.opt: Remove Separate from
9418         -msmall-data-limit=.
9419         * optc-gen.awk: Report error for the described situation.
9420         * gcc.cc: Use Separate syntax.
9421         * opts.cc (gen_command_line_string): Change option name.
9423 2022-05-11  Haochen Gui  <guihaoc@gcc.gnu.org>
9425         PR target/105414
9426         * match.pd (minmax): Skip constant folding for fmin/fmax when both
9427         arguments are sNaN or one is sNaN and another is NaN.
9429 2022-05-10  Jakub Jelinek  <jakub@redhat.com>
9431         PR tree-optimization/105528
9432         * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
9433         set *gsi to gsi_for_stmt (ass_stmt).  Fix up function comment.
9435 2022-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
9437         * doc/md.texi (Defining Mode Iterators): Correct example replacement
9438         text.
9440 2022-05-10  Maciej W. Rozycki  <macro@embecosm.com>
9442         * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
9443         constants.
9444         (fmin<mode>3, fmax<mode>3): New insns.
9446 2022-05-10  Richard Biener  <rguenther@suse.de>
9448         * tree-if-conv.cc (fold_build_cond_expr): Use
9449         match-and-simplify to simplify the condition.
9450         (ifcvt_follow_ssa_use_edges): Remove.
9451         (predicate_scalar_phi): Use follow_all_ssa_edges.
9453 2022-05-10  Thomas Schwinge  <thomas@codesourcery.com>
9455         PR middle-end/100400
9456         * omp-oacc-kernels-decompose.cc
9457         (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
9458         call 'internal_error'.
9460 2022-05-10  Richard Biener  <rguenther@suse.de>
9462         PR middle-end/105537
9463         * toplev.cc (process_options): Move flag_var_tracking
9464         handling ...
9465         * opts.cc (finish_options): ... here.
9467 2022-05-10  Martin Liska  <mliska@suse.cz>
9469         * basic-block.h (struct basic_block_d): Use void *
9470         instead PTR.
9471         * cfgloop.h: Likewise.
9472         * cgraph.h: Likewise.
9473         * gengtype-state.cc (state_ident_by_name): Likewise.
9474         (record_type): Likewise.
9475         (read_state_already_seen_type): Likewise.
9476         * gengtype.cc (dump_type): Likewise.
9477         (input_file_by_name): Likewise.
9478         (main): Likewise.
9479         * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
9480         * ipa-utils.h (struct ipa_dfs_info): Likewise.
9481         * plugin.cc (htab_hash_plugin): Likewise.
9483 2022-05-10  Richard Biener  <rguenther@suse.de>
9485         * flags.h (dwarf_debuginfo_p): Add opts argument, guard
9486         API with !GENERATOR_FILE.
9487         * opts.cc (global_options): Poison.
9488         (global_options_set): Likewise.
9489         (finish_options): Refer to options via opts.
9491 2022-05-10  Uroš Bizjak  <ubizjak@gmail.com>
9492             Roger Sayle  <roger@nextmovesoftware.com>
9494         * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
9495         alternative when optimizing for size and the immediate operand is
9496         const_0_to_127_operand.
9497         (*andqi_2_maybe_si): Likewise.
9498         * config/i386/predicates.md (const_0_to_127_operand): New predicate.
9500 2022-05-10  Roger Sayle  <roger@nextmovesoftware.com>
9502         * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
9503         "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
9504         can't be negative.
9506 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
9508         PR target/105292
9509         * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
9510         true only for 8-byte vector modes.
9512 2022-05-10  Siddhesh Poyarekar  <siddhesh@gotplt.org>
9514         PR middle-end/70090
9515         * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
9516         (instrument_object_size): Get dynamic object size expression.
9518 2022-05-10  Jiufu Guo  <guojiufu@linux.ibm.com>
9520         PR preprocessor/101168
9521         * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
9522         Avoid empty identifier.
9524 2022-05-09  Qing Zhao  <qing.zhao@oracle.com>
9526         PR target/101891
9527         * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
9528         as a generic MMX mode instead of V4HImode.
9529         (zero_all_mm_registers): Use SET to zero instead of MOV for
9530         zeroing scratch registers.
9531         (ix86_zero_call_used_regs): Likewise.
9533 2022-05-09  liuhongt  <hongtao.liu@intel.com>
9535         PR target/105354
9536         * config/i386/i386-expand.cc
9537         (expand_vec_perm_pslldq_psrldq_por): New function.
9538         (ix86_expand_vec_perm_const_1): Try
9539         expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
9540         4/5-instruction sequence.
9542 2022-05-09  Martin Liška  <mliska@suse.cz>
9544         * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
9545         * system.h (STATIC_ASSERT): Define as static_assert for C++
9546         and fallback to array index in C.
9548 2022-05-09  Richard Biener  <rguenther@suse.de>
9550         PR tree-optimization/105517
9551         * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
9552         offset can be represented in the POINTER_PLUS_EXPR IL.
9553         (vn_reference_insert): Likewise.
9554         * poly-int.h (sext_hwi): Add poly version of sext_hwi.
9556 2022-05-09  Richard Biener  <rguenther@suse.de>
9558         * match.pd: Remove #if GIMPLE guards around ! using patterns.
9560 2022-05-09  liuhongt  <hongtao.liu@intel.com>
9562         PR target/105072
9563         * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
9564         New define_insn.
9565         (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
9566         define_insn_and_split.
9568 2022-05-09  Alex Coplan  <alex.coplan@arm.com>
9570         * cgraph.cc (cgraph_node::get_create): Don't dump if the current
9571         symtab state is PARSING.
9573 2022-05-09  Martin Liska  <mliska@suse.cz>
9575         * system.h (LIKELY): Define.
9576         (UNLIKELY): Likewise.
9577         * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
9578         macros.
9579         * dse.cc (set_position_unneeded): Likewise.
9580         (set_all_positions_unneeded): Likewise.
9581         (any_positions_needed_p): Likewise.
9582         (all_positions_needed_p): Likewise.
9583         * expmed.cc (flip_storage_order): Likewise.
9584         * genmatch.cc (dt_simplify::gen_1): Likewise.
9585         * ggc-common.cc (gt_pch_save): Likewise.
9586         * print-rtl.cc: Likewise.
9587         * rtl-iter.h (T>::array_type::~array_type): Likewise.
9588         (T>::next): Likewise.
9589         * rtl-ssa/internals.inl: Likewise.
9590         * rtl-ssa/member-fns.inl: Likewise.
9591         * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
9592         (rtx_properties::try_to_add_dest): Likewise.
9593         * rtlanal.h (growing_rtx_properties::repeat): Likewise.
9594         (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
9595         * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
9596         * sort.cc (likely): Likewise.
9597         (mergesort): Likewise.
9598         * wide-int.h (wi::eq_p): Likewise.
9599         (wi::ltu_p): Likewise.
9600         (wi::cmpu): Likewise.
9601         (wi::bit_and): Likewise.
9602         (wi::bit_and_not): Likewise.
9603         (wi::bit_or): Likewise.
9604         (wi::bit_or_not): Likewise.
9605         (wi::bit_xor): Likewise.
9606         (wi::add): Likewise.
9607         (wi::sub): Likewise.
9609 2022-05-09  Kito Cheng  <kito.cheng@sifive.com>
9611         * config/riscv/arch-canonicalize: Handle g correctly.
9613 2022-05-07  Marek Polacek  <polacek@redhat.com>
9615         PR c++/101833
9616         PR c++/47634
9617         * tree-core.h (struct attribute_spec): Update comment for HANDLER.
9619 2022-05-06  Jason Merrill  <jason@redhat.com>
9621         * diagnostic-color.cc: Add fnname and targs color entries.
9622         * doc/invoke.texi: Document them.
9624 2022-05-06  Jason Merrill  <jason@redhat.com>
9626         * vec.h (vec::iterate): Fix comment.
9628 2022-05-06   Michael Meissner  <meissner@linux.ibm.com>
9630         PR target/102059
9631         * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
9632         and -mpower10-fusion options for inlining purposes.
9634 2022-05-06  Christophe Lyon  <christophe.lyon@arm.com>
9636         * config/aarch64/iterators.md (GPF_TF_F16): Delete.
9638 2022-05-06  Marcel Vollweiler  <marcel@codesourcery.com>
9640         * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
9641         omp_runtime_apis array.
9643 2022-05-06  Hafiz Abid Qadeer  <abidh@codesourcery.com>
9645         * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
9646         (scan_sharing_clauses):  Check a restriction on allocate clause.
9648 2022-05-05  Sandra Loosemore  <sandra@codesourcery.com>
9650         * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
9651         and ORDERED clause conflict errors.  Add check for GRAINSIZE and
9652         NUM_TASKS on TASKLOOP.
9654 2022-05-05  Martin Liska  <mliska@suse.cz>
9656         * genautomata.cc (create_composed_state): Remove dead code.
9657         * graphite-poly.cc (print_pdrs): Likewise.
9658         * lto-wrapper.cc (run_gcc): Likewise.
9659         * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
9660         Likewise.
9662 2022-05-05  Martin Liska  <mliska@suse.cz>
9664         * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
9665         PROF_*.
9666         (gimple_gen_time_profiler): Likewise.
9668 2022-05-05  Martin Liska  <mliska@suse.cz>
9670         * value-prof.cc (stream_out_histogram_value): Remove sanity
9671         checking.
9673 2022-05-05  Richard Biener  <rguenther@suse.de>
9675         PR tree-optimization/104162
9676         * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
9677         &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
9678         becomes invariant.
9679         (vn_reference_insert): Likewise.
9681 2022-05-05  Richard Biener  <rguenther@suse.de>
9683         * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
9684         to real_value field.
9685         (tree_real_cst::value): Add real_value field.
9686         * tree.h (TREE_REAL_CST_PTR): Adjust.
9687         * tree.cc (build_real): Remove separate allocation.
9688         * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
9689         Likewise.
9691 2022-05-05  Richard Biener  <rguenther@suse.de>
9693         * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
9694         divisions with undefined overflow unconditionally.
9695         (pass_tree_ifcombine::execute): Rewrite stmts with undefined
9696         overflow to defined.
9698 2022-05-05  Richard Biener  <rguenther@suse.de>
9700         PR tree-optimization/105484
9701         * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
9702         whether the CFG changed.
9703         (gimple_expand_vec_exprs): When the CFG changed, clean it up.
9705 2022-05-05  Richard Biener  <rguenther@suse.de>
9707         PR tree-optimization/104595
9708         * tree-vect-patterns.cc (vect_recog_bool_pattern): For
9709         COND_EXPR do not fail if check_bool_pattern returns false.
9711 2022-05-04  Tobias Burnus  <tobias@codesourcery.com>
9713         * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
9714         item that is in an outer data-sharing clause.
9716 2022-05-04  Richard Biener  <rguenther@suse.de>
9718         PR tree-optimization/104658
9719         * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
9720         create VECTOR_BOOLEAN_TYPE_P extern defs.  Reset the vector
9721         type on nodes we promote.
9722         (vectorizable_bb_reduc_epilogue): Deal with externalized
9723         root.
9724         * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
9725         not allow VECTOR_BOOLEAN_TYPE_P extern defs.
9727 2022-05-04  Richard Biener  <rguenther@suse.de>
9729         PR tree-optimization/103116
9730         * tree-vect-stmts.cc (get_group_load_store_type): Handle the
9731         case we need peeling for gaps even though GROUP_GAP is zero.
9733 2022-05-04  Martin Liska  <mliska@suse.cz>
9735         * gengtype-state.cc (read_a_state_token): Remove dead code.
9736         * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
9738 2022-05-04  Richard Biener  <rguenther@suse.de>
9740         * gimplify.cc (gimplify_init_constructor): First gimplify,
9741         then simplify the result to a VECTOR_CST.
9743 2022-05-04  Jakub Jelinek  <jakub@redhat.com>
9745         * genconditions.cc (write_conditions): Append a { nullptr, -1 }
9746         element at the end of insn_conditions.
9747         (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
9748         ARRAY_SIZE (insn_conditions).
9750 2022-05-04  Christophe Lyon  <christophe.lyon@arm.com>
9752         PR target/104662
9753         * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
9754         vector of booleans and MVE is not enabled.
9756 2022-05-04  Richard Biener  <rguenther@suse.de>
9758         PR debug/105158
9759         * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
9760         Move debug stmts to the predecessor if moving to the
9761         destination is not possible.
9762         (remove_forwarder_block): Adjust.
9763         (remove_forwarder_block_with_phi): Likewise.
9765 2022-05-03  Roger Sayle  <roger@nextmovesoftware.com>
9767         PR tree-optimization/102950
9768         * range-op.cc (wi_optimize_signed_bitwise_op): New function to
9769         determine bounds of bitwise operations on signed types.
9770         (operator_bitwise_and::wi_fold): Call the above function.
9771         (operator_bitwise_or::wi_fold): Likewise.
9772         (operator_bitwise_xor::wi_fold): Likewise.  Additionally, the
9773         result can't be zero if the operands can't be equal.
9775 2022-05-03  Iain Sandoe  <iain@sandoe.co.uk>
9777         * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
9778         protocol class methods linker-visible.
9780 2022-05-03  Uroš Bizjak  <ubizjak@gmail.com>
9782         PR target/105079
9783         * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
9784         define_insn_and_split pattern.
9786 2022-05-03  Richard Biener  <rguenther@suse.de>
9788         PR middle-end/105083
9789         * tree-scalar-evolution.cc (scev_initialize): Verify we
9790         have appropriate loop state.
9791         * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
9792         loop init and finalization.
9794 2022-05-03  Richard Biener  <rguenther@suse.de>
9796         PR middle-end/105461
9797         * opts.cc (finish_options): Match the condition to
9798         disable flag_var_tracking to that of process_options.
9800 2022-05-03  Richard Biener  <rguenther@suse.de>
9802         * opts.cc: #undef OPTIONS_SET_P.
9803         (finish_options): Use opts_set instead of OPTIONS_SET_P.
9805 2022-05-03  Richard Biener  <rguenther@suse.de>
9807         PR tree-optimization/105394
9808         * tree-vect-generic.cc (expand_vector_condition): Adjust
9809         comp_width for non-integer mode masks as well.
9811 2022-05-03  Marcel Vollweiler  <marcel@codesourcery.com>
9813         * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
9814         omp_runtime_apis array.
9816 2022-05-02  Richard Biener  <rguenther@suse.de>
9818         * tree-scalar-evolution.cc (expression_expensive_p):
9819         Never consider mismatched calls as cheap.
9821 2022-05-02  Richard Biener  <rguenther@suse.de>
9823         PR tree-optimization/104240
9824         * tree-vect-slp.cc (op1_op0_map): New.
9825         (vect_get_operand_map): Handle compares.
9826         (vect_build_slp_tree_1): Support swapped operands for
9827         tcc_comparison.
9829 2022-05-02  Jakub Jelinek  <jakub@redhat.com>
9831         PR debug/105415
9832         * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
9833         if there is no symtab node for the VAR_DECL.
9835 2022-05-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9837         * gcov-io.cc (gcov_rewrite):  Clear the file error status.
9839 2022-05-02  Richard Biener  <rguenther@suse.de>
9841         PR tree-optimization/105437
9842         * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
9843         case where last_stmt alters control flow.
9845 2022-05-02  Richard Biener  <rguenther@suse.de>
9847         * dojump.cc (do_jump): Use CASE_CONVERT.
9848         * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
9850 2022-05-02  Jakub Jelinek  <jakub@redhat.com>
9852         * system.h: Include initializer_list.
9854 2022-05-01  Segher Boessenkool  <segher@kernel.crashing.org>
9856         * config/rs6000/constraints.md (Y constraint): Fix comment.
9858 2022-05-01  Aldy Hernandez  <aldyh@redhat.com>
9860         * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
9861         VR_RANGE before passing a piecewise range to set_range_info_raw.
9863 2022-04-30  Patrick Palka  <ppalka@redhat.com>
9865         * gengtype.cc (adjust_field_tree_exp): Remove.
9866         (adjust_field_type): Don't handle the "tree_exp" special attribute.
9867         * tree-core.h (struct tree_exp): Remove "special" and "desc"
9868         attributes.  Add "length" attribute.
9870 2022-04-29  Martin Jambor  <mjambor@suse.cz>
9872         PR ipa/100413
9873         * cgraph.cc (cgraph_node::remove): Release body of the node this
9874         is clone_of if appropriate.
9876 2022-04-29  Uroš Bizjak  <ubizjak@gmail.com>
9878         PR target/51954
9879         * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
9881 2022-04-29  Richard Biener  <rguenther@suse.de>
9883         * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
9884         (canonicalize_cond_expr_cond): Move here from gimple.cc,
9885         allow both COND_EXPR and GIMPLE_COND forms.
9886         * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
9887         * gimple.cc (canonicalize_cond_expr_cond): Remove here.
9888         * gimple.h (canonicalize_cond_expr_cond): Likewise.
9889         * gimple-loop-versioning.cc (loop_versioning::version_loop):
9890         Use is_gimple_condexpr_for_cond.
9891         * tree-parloops.cc (gen_parallel_loop): Likewise.
9892         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
9893         a proper cond expr after canonicalize_cond_expr_cond.
9894         Use is_gimple_condexpr_for_cond where appropriate.
9895         * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
9896         * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
9898 2022-04-29  Richard Biener  <rguenther@suse.de>
9900         * gimple-iterator.h (gsi_after_labels): Add overload for
9901         gimple_seq.
9902         (gsi_start_1): Rename to gsi_start and take a reference.
9903         (gsi_last_1): Likewise.
9904         * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
9905         * omp-low.cc (lower_rec_input_clauses): Likewise.
9906         (lower_omp_scan): Likewise.
9908 2022-04-29  Richard Biener  <rguenther@suse.de>
9910         PR tree-optimization/105431
9911         * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
9912         (powi_as_mults): Use absu_hwi.
9913         (gimple_expand_builtin_powi): Remove now pointless n != -n
9914         check.
9916 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
9918         * range-op.cc (empty_range_varying): Move to range-op.h.
9919         (range_true): Move to range.h.
9920         (range_false): Same.
9921         (range_true_and_false): Same.
9922         (enum bool_range_state): Move to range-op.h.
9923         (relop_early_resolve): Same.
9924         (operator_equal::op1_op2_relation): Abstract code to...
9925         (equal_op1_op2_relation): ...here.
9926         (operator_not_equal::op1_op2_relation): Abstract code to...
9927         (not_equal_op1_op2_relation): ...here.
9928         (operator_lt::op1_op2_relation): Abstract code to...
9929         (lt_op1_op2_relation): ...here.
9930         (operator_le::op1_op2_relation): Abstract code to...
9931         (le_op1_op2_relation): ...here.
9932         (operator_gt::op1_op2_relation): Abstract code to...
9933         (gt_op1_op2_relation): ...here.
9934         (operator_ge::op1_op2_relation): Abstract code to...
9935         (ge_op1_op2_relation): ...here.
9936         (class range_op_table): Move to range-op.h.
9937         * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
9938         (not_equal_op1_op2_relation): Same.
9939         (lt_op1_op2_relation): Same.
9940         (le_op1_op2_relation): Same.
9941         (gt_op1_op2_relation): Same.
9942         (ge_op1_op2_relation): Same.
9943         (enum bool_range_state): Same.
9944         (get_bool_state): Same.
9945         (empty_range_varying): Same.
9946         (relop_early_resolve): Same.
9947         (class range_op_table): Same.
9948         * range.h (range_true): Same.
9949         (range_false): Same.
9950         (range_true_and_false): Same.
9952 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
9954         * gimple-fold.cc (size_must_be_zero_p): Use reference
9955         instead of pointer
9956         * gimple-ssa-evrp-analyze.cc
9957         (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
9958         intersect to legacy_verbose_intersect.
9959         * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
9960         of pointer.
9961         * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
9962         instead of value_range_equiv.
9963         * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
9964         instead of pointer.
9965         (find_case_label_range): Same.
9966         * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
9967         (value_range_equiv::legacy_verbose_intersect): ...this.
9968         (value_range_equiv::union_): Rename to...
9969         (value_range_equiv::legacy_verbose_union_): ...this.
9970         * value-range-equiv.h (class value_range_equiv): Rename union and
9971         intersect to legacy_verbose_{intersect,union}.
9972         * value-range.cc (irange::union_): Rename to...
9973         (irange::legacy_verbose_union_): ...this.
9974         (irange::intersect): Rename to...
9975         (irange::legacy_verbose_intersect): ...this.
9976         * value-range.h (irange::union_): Rename union_ to
9977         legacy_verbose_union.
9978         (irange::intersect): Rename intersect to legacy_verbose_intersect.
9979         * vr-values.cc (vr_values::update_value_range): Same.
9980         (vr_values::extract_range_for_var_from_comparison_expr): Same.
9981         (vr_values::extract_range_from_cond_expr): Rename union_ to
9982         legacy_verbose_union.
9983         (vr_values::extract_range_from_phi_node): Same.
9985 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
9987         * gimple-ssa-evrp-analyze.cc
9988         (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
9989         that take a range.
9990         * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
9991         * ipa-prop.cc (ipcp_update_vr): Same.
9992         * tree-inline.cc (remap_ssa_name): Same.
9993         * tree-ssa-copy.cc (fini_copy_prop): Same.
9994         * tree-ssa-math-opts.cc (optimize_spaceship): Same.
9995         * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
9996         * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
9997         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
9998         * tree-ssa-strlen.cc (set_strlen_range): Same.
9999         (strlen_pass::handle_builtin_string_cmp): Same.
10000         * tree-ssanames.cc (set_range_info): Make static.
10001         (duplicate_ssa_name_range_info): Make static and add a new variant
10002         calling the static.
10003         * tree-ssanames.h (set_range_info): Remove version taking wide ints.
10004         (duplicate_ssa_name_range_info): Remove version taking a
10005         range_info_def and replace with a version taking SSA names.
10006         * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
10007         that take a range.
10008         (vect_do_peeling): Same.
10009         * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
10010         * vr-values.cc (simplify_truth_ops_using_ranges): Same.
10012 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
10014         * value-range.h (irange::irange): Use set_undefined.
10016 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
10018         * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
10019         irange::intersect (wide_int, wide_int).
10020         * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
10021         (adjust_imagpart_expr): Same.
10022         * value-range.h (irange::intersect (wide_int, wide_int)): Make
10023         private.
10025 2022-04-29  Richard Biener  <rguenther@suse.de>
10027         PR tree-optimization/104322
10028         * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
10030 2022-04-29  Richard Biener  <rguenther@suse.de>
10032         PR middle-end/105376
10033         * tree.cc (build_real): Special case dconst* arguments
10034         for decimal floating point types.
10036 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10038         * doc/gcov.texi (Profiling and Test Coverage in Freestanding
10039         Environments): New section.
10041 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10043         * doc/gcov-tool.texi: Document merge-stream subcommand.
10044         * doc/invoke.texi (fprofile-info-section): Mention merge-stream
10045         subcommand of gcov-tool.
10046         * gcov-tool.cc (gcov_profile_merge_stream): Declare.
10047         (print_merge_stream_usage_message): New.
10048         (merge_stream_usage): Likewise.
10049         (do_merge_stream): Likewise.
10050         (print_usage): Call print_merge_stream_usage_message().
10051         (main): Call do_merge_stream() to execute merge-stream subcommand.
10053 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10055         * gcov-io.cc (gcov_file_error): New enum.
10056         (gcov_var): Use gcov_file_error enum for the error member.
10057         (gcov_open): Use GCOV_FILE_NO_ERROR.
10058         (gcov_close): Use GCOV_FILE_WRITE_ERROR.
10059         (gcov_write): Likewise.
10060         (gcov_write_unsigned): Likewise.
10061         (gcov_write_string): Likewise.
10062         (gcov_read_bytes): Set error code if EOF is reached.
10063         (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
10065 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10067         * gcov-io.cc (GCOV_MODE_STDIN): Define.
10068         (gcov_position): For gcov-tool, return calculated position if file is
10069         stdin.
10070         (gcov_open):  For gcov-tool, use stdin if filename is NULL.
10071         (gcov_close): For gcov-tool, do not close stdin.
10072         (gcov_read_bytes): For gcov-tool, update position if file is stdin.
10073         (gcov_sync): For gcov-tool, discard input if file is stdin.
10075 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10077         * doc/invoke.texi (fprofile-info-section): Mention
10078         __gcov_filename_to_gcfn().  Use "freestanding" to match with C11
10079         standard language.  Fix minor example code issues.
10080         * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
10082 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10084         * gcov-io.cc (gcov_seek): Make it static.
10085         * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
10087 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10089         * gcov-tool.cc (gcov_do_dump): Add mode parameter.
10090         (gcov_output_files): Open files for reading and writing.
10092 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10094         * gcov-io.cc (gcov_open): Always use the mode parameter.
10095         * gcov-io.h (gcov_open): Declare it unconditionally.
10097 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10099         * gcov-tool.cc (gcov_profile_merge): Adjust return type.
10100         (profile_merge): Allow merging of directories which contain no profile
10101         files.
10103 2022-04-28  David Malcolm  <dmalcolm@redhat.com>
10105         * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
10106         fpath.txt output.
10108 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
10110         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
10111         temporary only if out overlaps compare_op, not when it overlaps
10112         op0 or op1.
10114 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
10116         PR lto/105399
10117         * cgraph.cc (cgraph_node::verify_node): Don't verify
10118         semantic_interposition flag against
10119         opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
10121 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
10123         PR target/105331
10124         * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
10125         temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
10126         of it.
10128 2022-04-28  Jonathan Wakely  <jwakely@redhat.com>
10130         * doc/install.texi (Configuration): Remove misleading text
10131         around LE PowerPC Linux multilibs.
10133 2022-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10135         PR d/103528
10136         * doc/install.texi (Tools/packages necessary for building GCC)
10137         (GDC): Document libphobos requirement.
10138         (Host/target specific installation notes for GCC, *-*-solaris2*):
10139         Document libphobos and GDC specifics.
10141 2022-04-28  Richard Biener  <rguenther@suse.de>
10143         PR tree-optimization/105219
10144         * tree-vect-loop.cc (vect_transform_loop): Disable
10145         special code narrowing the vectorized epilogue max
10146         iterations when peeling for alignment or gaps was in effect.
10148 2022-04-28  Xi Ruoyao  <xry111@mengyan1223.wang>
10150         * config/loongarch/loongarch.cc
10151         (loongarch_flatten_aggregate_field): Ignore empty fields for
10152         RECORD_TYPE.
10154 2022-04-27  Lulu Cheng  <chenglulu@loongson.cn>
10156         * config/loongarch/loongarch.md: Add fdiv define_expand template,
10157         then generate floating-point division and floating-point reciprocal
10158         instructions.
10160 2022-04-27  Lulu Cheng  <chenglulu@loongson.cn>
10162         * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
10163         to PLV instruction templates.
10165 2022-04-27  Richard Biener  <rguenther@suse.de>
10167         PR middle-end/104492
10168         * gimple-ssa-warn-access.cc
10169         (pass_waccess::warn_invalid_pointer): Exclude equality compare
10170         diagnostics for all kind of invalidations.
10171         (pass_waccess::check_dangling_uses): Fix post-dominator query.
10172         (pass_waccess::check_pointer_uses): Likewise.
10174 2022-04-27  Andreas Krebbel  <krebbel@linux.ibm.com>
10176         PR target/102024
10177         * config/s390/s390-protos.h (s390_function_arg_vector): Remove
10178         prototype.
10179         * config/s390/s390.cc (s390_single_field_struct_p): New function.
10180         (s390_function_arg_vector): Invoke s390_single_field_struct_p.
10181         (s390_function_arg_float): Likewise.
10183 2022-04-27  Jakub Jelinek  <jakub@redhat.com>
10185         PR sanitizer/105396
10186         * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
10187         where offset is bigger than off but smaller than m_prev_offset + 32
10188         bits by pushing one or more 0 bytes.  Sink the
10189         m_shadow_bytes.safe_push (value); flush_if_full (); statements from
10190         all cases to the end of the function.
10192 2022-04-27  Kewen Lin  <linkw@linux.ibm.com>
10194         PR target/105271
10195         * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
10196         stanza.
10198 2022-04-26  Thomas Schwinge  <thomas@codesourcery.com>
10200         * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
10201         data-share memory exhausted" error more verbose.
10203 2022-04-26  Martin Liska  <mliska@suse.cz>
10205         PR lto/105364
10206         * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
10207         (run_gcc): Parse OPT_fdiagnostics_urls_.
10208         (main): Initialize global_dc.
10210 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
10212         PR rtl-optimization/105314
10213         * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
10214         operand is equal to if_info->x, instead use the non-zero operand
10215         as one of the operands of AND with if_info->x as target.
10217 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
10219         PR tree-optimization/105374
10220         * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
10221         !fold_convertible_p rather than assuming fold_convert must succeed.
10223 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
10225         PR target/105367
10226         * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
10227         el_mode == DFmode ? double_type_node : float_type_node instead of
10228         TREE_TYPE (type_in) as first arguments to mathfn_built_in.
10230 2022-04-25  David Malcolm  <dmalcolm@redhat.com>
10232         PR analyzer/104308
10233         * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
10234         the location of new_stmt in all places that don't already set it,
10235         whether explicitly, or via a call to gsi_replace.
10237 2022-04-25  Paul A. Clarke  <pc@us.ibm.com>
10239         * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
10241 2022-04-25  Andrew MacLeod  <amacleod@redhat.com>
10243         PR tree-optimization/105276
10244         * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
10245         existing global range with calculated value.
10247 2022-04-25  Richard Biener  <rguenther@suse.de>
10249         PR tree-optimization/105368
10250         * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
10252 2022-04-25  Richard Biener  <rguenther@suse.de>
10254         PR tree-optimization/100810
10255         * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
10256         (find_ssa_undef): New function.
10257         (add_candidate_1): Avoid adding derived candidates with
10258         undefined SSA names and mark the original ones.
10259         (determine_group_iv_cost_generic): Reject rewriting
10260         uses with a different IV when that involves undefined SSA names.
10262 2022-04-25  Steven G. Kargl  <kargl@gcc.gnu.org>
10264         PR target/89125
10265         * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
10266         bsd_libc_has_function.
10267         * targhooks.cc (bsd_libc_has_function): New function.
10268         Expand the supported math functions to inclue C99 libm.
10269         * targhooks.h (bsd_libc_has_function): New Prototype.
10271 2022-04-25  Richard Biener  <rguenther@suse.de>
10273         PR rtl-optimization/105231
10274         * combine.cc (distribute_notes): Assert that a REG_EH_REGION
10275         with landing pad > 0 is from i3.  Put any REG_EH_REGION note
10276         on i3 or drop it if the insn can not trap.
10277         (try_combine): Ensure that we can merge REG_EH_REGION notes
10278         with non-call exceptions.  Ensure we are not splitting a
10279         trapping part of an insn with non-call exceptions when there
10280         is any REG_EH_REGION note to preserve.
10282 2022-04-25  Hongyu Wang  <hongyu.wang@intel.com>
10284         PR target/105339
10285         * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
10286         Add parentheses for parameters and djust format.
10287         (_mm512_mask_scalef_round_pd): Ditto.
10288         (_mm512_maskz_scalef_round_pd): Ditto.
10289         (_mm512_scalef_round_ps): Ditto.
10290         (_mm512_mask_scalef_round_ps): Ditto.
10291         (_mm512_maskz_scalef_round_ps): Ditto.
10292         (_mm_scalef_round_sd): Use _mm_undefined_pd.
10293         (_mm_scalef_round_ss): Use _mm_undefined_ps.
10294         (_mm_mask_scalef_round_sd): New macro.
10295         (_mm_mask_scalef_round_ss): Ditto.
10296         (_mm_maskz_scalef_round_sd): Ditto.
10297         (_mm_maskz_scalef_round_ss): Ditto.
10299 2022-04-23  Jakub Jelinek  <jakub@redhat.com>
10301         PR target/105338
10302         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
10303         op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
10304         cases.
10306 2022-04-22  Segher Boessenkool  <segher@kernel.crashing.org>
10308         PR target/105334
10309         * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
10310         (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
10311         (pack<mode>_hard for FMOVE128): ... this...
10312         (pack<mode>_soft for FMOVE128): ... and this.
10314 2022-04-22  Paul A. Clarke  <pc@us.ibm.com>
10316         * doc/extend.texi: Correct "This" to "These".
10318 2022-04-22  Jakub Jelinek  <jakub@redhat.com>
10320         PR rtl-optimization/105333
10321         * rtlanal.cc (replace_rtx): Use simplify_subreg or
10322         simplify_unary_operation if CONST_SCALAR_INT_P rather than just
10323         CONST_INT_P.
10325 2022-04-21  Segher Boessenkool  <segher@kernel.crashing.org>
10327         PR target/103197
10328         PR target/102146
10329         * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
10330         the "Z" alternatives in {l,st}{f,xs}iwzx.
10331         (zero_extendhi<mode>2 for EXTHI): Ditto.
10332         (zero_extendsi<mode>2 for EXTSI): Ditto.
10333         (*movsi_internal1): Ditto.
10334         (*mov<mode>_internal1 for QHI): Ditto.
10335         (movsd_hardfloat): Ditto.
10337 2022-04-21  Martin Liska  <mliska@suse.cz>
10339         * configure.ac: Enable compressed debug sections for mold
10340         linker.
10341         * configure: Regenerate.
10343 2022-04-21  Jakub Jelinek  <jakub@redhat.com>
10345         PR debug/105203
10346         * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
10347         on DEBUG_INSNs.
10349 2022-04-20  Richard Biener  <rguenther@suse.de>
10351         PR tree-optimization/104912
10352         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
10353         the cost model check to a separate BB to make sure it is
10354         checked first and not combined with other version checks.
10356 2022-04-20  Richard Biener  <rguenther@suse.de>
10358         PR tree-optimization/105312
10359         * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
10360         VCOND and VCONDU for EQ and NE.
10362 2022-04-20  Jan Hubicka  <hubicka@ucw.cz>
10364         PR ipa/103818
10365         * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
10366         poly_offset_int to avoid overflow.
10367         (modref_access_node::update2): likewise.
10369 2022-04-20  Jakub Jelinek  <jakub@redhat.com>
10371         PR ipa/105306
10372         * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
10373         to opt_for_fn (decl, flag_semantic_interposition).
10374         * cgraphclones.cc (cgraph_node::create_clone): Copy over
10375         semantic_interposition flag.
10377 2022-04-19  Sergei Trofimovich  <siarheit@google.com>
10379         PR gcov-profile/105282
10380         * value-prof.cc (stream_out_histogram_value): Allow negative counts
10381         on HIST_TYPE_INDIR_CALL.
10383 2022-04-19  Jakub Jelinek  <jakub@redhat.com>
10385         PR target/105257
10386         * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
10387         use gen_raw_REG instead of gen_rtx_REG and copy over also
10388         ORIGINAL_REGNO.  Use return 0; instead of /* fallthrough */.
10390 2022-04-19  Richard Biener  <rguenther@suse.de>
10392         PR tree-optimization/104010
10393         PR tree-optimization/103941
10394         * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
10395         we run into stmts in patterns continue walking those
10396         for uses outside of the vectorized region instead of
10397         marking the lane live.
10399 2022-04-18  Hans-Peter Nilsson  <hp@axis.com>
10401         * doc/install.texi <CRIS>: Remove references to removed websites and
10402         adjust for cris-*-elf being the only remaining toolchain.
10404 2022-04-18  Hans-Peter Nilsson  <hp@axis.com>
10406         * doc/invoke.texi <CRIS>: Remove references to options for removed
10407         subtarget cris-axis-linux-gnu and tweak wording accordingly.
10409 2022-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
10411         * doc/install.texi (Specific): Adjust mingw-w64 download link.
10413 2022-04-15  Hongyu Wang  <hongyu.wang@intel.com>
10415         * config/i386/smmintrin.h: Correct target pragma from sse4.1
10416         and sse4.2 to crc32 for crc32 intrinsics.
10418 2022-04-14  Indu Bhagat  <indu.bhagat@oracle.com>
10420         PR debug/105089
10421         * ctfc.cc (ctf_dvd_ignore_insert): New function.
10422         (ctf_dvd_ignore_lookup): Likewise.
10423         (ctf_add_variable): Keep track of non-defining decl DIEs.
10424         (new_ctf_container): Initialize the new hash-table.
10425         (ctfc_delete_container): Empty hash-table.
10426         * ctfc.h (struct ctf_container): Add new hash-table.
10427         (ctf_dvd_ignore_lookup): New declaration.
10428         (ctf_add_variable): Add additional argument.
10429         * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
10430         record for non-defining decl for which a defining decl exists
10431         in the same TU.
10432         (ctf_preprocess): Defer updating the number of global objts
10433         until here.
10434         (output_ctf_header): Use ctfc_vars_list_count as some CTF
10435         variables may not make it to the final output.
10436         (output_ctf_vars): Likewise.
10437         * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
10438         if this is known to be a non-defining decl DIE.
10440 2022-04-14  Indu Bhagat  <indu.bhagat@oracle.com>
10442         * ctfc.h (struct ctf_container): Introduce a new member.
10443         * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
10444         variable.
10446 2022-04-14  Jakub Jelinek  <jakub@redhat.com>
10448         PR target/105247
10449         * simplify-rtx.cc (simplify_const_binary_operation): For shifts
10450         or rotates by VOIDmode constant integer shift count use word_mode
10451         for the operand if int_mode is narrower than word.
10453 2022-04-14  Robin Dapp  <rdapp@linux.ibm.com>
10455         * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
10456         (s390_get_unit_mask): Likewise.
10457         (s390_is_fpd): Likewise.
10458         (s390_is_fxd): Likewise.
10459         * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
10460         * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
10461         Add z16.
10462         (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
10463         Likewise.
10464         * config/s390/3931.md: New file.
10466 2022-04-13  Richard Sandiford  <richard.sandiford@arm.com>
10468         PR tree-optimization/105254
10469         * config/aarch64/aarch64.cc
10470         (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
10471         loop_vec_info as argument.  Restrict the unroll factor to values
10472         that divide the VF.
10473         (aarch64_vector_costs::finish_cost): Update call accordingly.
10475 2022-04-13  Richard Biener  <rguenther@suse.de>
10477         PR tree-optimization/105263
10478         * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
10479         negates in multiplication chains with DFP.
10481 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
10483         PR middle-end/105253
10484         * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
10485         use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
10486         comparisons or tree_nop_conversion_p checks.
10488 2022-04-13  Hongyu Wang  <hongyu.wang@intel.com>
10490         PR target/103069
10491         * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
10492           Add missing set to target_val at pause label.
10494 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
10496         PR target/105234
10497         * attribs.cc (decl_attributes): Don't set
10498         DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
10499         NULL.
10501 2022-04-13  Richard Biener  <rguenther@suse.de>
10503         PR tree-optimization/105250
10504         * fold-const.cc (fold_convertible_p): Revert
10505         r12-7979-geaaf77dd85c333, instead check for size equality
10506         of the vector types involved.
10508 2022-04-13  Richard Biener  <rguenther@suse.de>
10510         Revert:
10511         2022-04-13  Richard Biener  <rguenther@suse.de>
10513         PR tree-optimization/104912
10514         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
10515         the cost model check to a separate BB to make sure it is
10516         checked first and not combined with other version checks.
10518 2022-04-13  Richard Biener  <rguenther@suse.de>
10520         PR tree-optimization/104912
10521         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
10522         the cost model check to a separate BB to make sure it is
10523         checked first and not combined with other version checks.
10525 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
10527         * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
10529 2022-04-12  Antoni Boucher  <bouanto@zoho.com>
10531         PR jit/104072
10532         * reginfo.cc: New functions (clear_global_regs_cache,
10533         reginfo_cc_finalize) to avoid an issue where compiling the same
10534         code multiple times gives an error about assigning the same
10535         register to 2 global variables.
10536         * rtl.h: New function (reginfo_cc_finalize).
10537         * toplev.cc: Call it.
10539 2022-04-12  Antoni Boucher  <bouanto@zoho.com>
10541         PR jit/104071
10542         * toplev.cc: Call the new function tree_cc_finalize in
10543         toplev::finalize.
10544         * tree.cc: New functions (clear_nonstandard_integer_type_cache
10545         and tree_cc_finalize) to clear the cache of non-standard integer
10546         types to avoid having issues with some optimizations of
10547         bitcast where the SSA_NAME will have a size of a cached
10548         integer type that should have been invalidated, causing a
10549         comparison of integer constant to fail.
10550         * tree.h: New function (tree_cc_finalize).
10552 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
10554         PR target/97348
10555         * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
10556         * config/nvptx/nvptx.opt (misa): Adjust comment.
10558 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
10560         Revert:
10561         2022-03-03  Tom de Vries  <tdevries@suse.de>
10563         * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
10565 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
10567         Revert:
10568         2022-03-31  Tom de Vries  <tdevries@suse.de>
10570         * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
10572 2022-04-12  Richard Biener  <rguenther@suse.de>
10574         PR ipa/104303
10575         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
10576         include local escaped memory as obviously necessary stores.
10578 2022-04-12  Richard Biener  <rguenther@suse.de>
10580         PR tree-optimization/105235
10581         * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
10582         return whether the CFG changed.
10583         (execute_cse_sincos_1): Adjust.
10585 2022-04-12  Przemyslaw Wirkus  <Przemyslaw.Wirkus@arm.com>
10587         PR target/104144
10588         * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
10589         (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
10590         (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
10591         (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
10592         (MULTILIB_REUSE): Remove remap rules for Armv9-a.
10593         * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
10594         (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
10596 2022-04-12  Richard Biener  <rguenther@suse.de>
10598         PR tree-optimization/105232
10599         * tree.cc (component_ref_size): Bail out for too large
10600         or non-constant sizes.
10602 2022-04-12  Richard Biener  <rguenther@suse.de>
10604         PR tree-optimization/105226
10605         * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
10606         we can split the exit of an outer loop we choose to version.
10608 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
10610         * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
10611         ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
10612         ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
10613         ix86_emit_swdivsf, ix86_emit_swsqrtsf,
10614         ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
10615         Formatting fix.
10616         * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
10618 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
10620         PR target/105214
10621         * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
10622         do_pending_stack_adjust.
10624 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
10626         PR rtl-optimization/105211
10627         * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
10628         fails for TREE_TYPE (arg), retry it with
10629         TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
10630         fails, emit call normally.
10632 2022-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>
10634         * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
10635         * config.gcc: Add z16 as march/mtune switch.
10636         * config/s390/driver-native.cc (s390_host_detect_local_cpu):
10637         Recognize z16 with -march=native.
10638         * config/s390/s390-opts.h (enum processor_type): Rename
10639         PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
10640         * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
10641         (PROCESSOR_3931_Z16): ... throughout the file.
10642         (s390_processor processor_table): Add z16 as cpu string.
10643         * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
10644         PF_Z16.
10645         (TARGET_CPU_ARCH14): Rename to ...
10646         (TARGET_CPU_Z16): ... this.
10647         (TARGET_CPU_ARCH14_P): Rename to ...
10648         (TARGET_CPU_Z16_P): ... this.
10649         (TARGET_ARCH14): Rename to ...
10650         (TARGET_Z16): ... this.
10651         (TARGET_ARCH14_P): Rename to ...
10652         (TARGET_Z16_P): ... this.
10653         * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
10654         check TARGET_Z16 instead of TARGET_ARCH14.
10655         * config/s390/s390.opt: Add z16 to processor_type.
10656         * doc/invoke.texi: Document z16 and arch14.
10658 2022-04-12  chenglulu  <chenglulu@loongson.cn>
10660         * config/loongarch/loongarch.cc: Fix bug for
10661         tmpdir-g++.dg-struct-layout-1/t033.
10663 2022-04-11  Peter Bergner  <bergner@linux.ibm.com>
10665         PR target/104894
10666         * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
10667         to longcall functions.
10669 2022-04-11  Jason Merrill  <jason@redhat.com>
10671         * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
10673 2022-04-11  Segher Boessenkool  <segher@kernel.crashing.org>
10675         PR target/105213
10676         PR target/103623
10677         * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
10679 2022-04-11  Jakub Jelinek  <jakub@redhat.com>
10681         PR tree-optimization/105218
10682         * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
10683         more than one predecessor or phi's bb more than 2 predecessors,
10684         reset phi result uses instead of adding a debug temp.
10686 2022-04-11  Kito Cheng  <kito.cheng@sifive.com>
10688         PR target/104853
10689         * config.gcc: Pass -misa-spec to arch-canonicalize and
10690         multilib-generator.
10691         * config/riscv/arch-canonicalize: Adding -misa-spec option.
10692         (SUPPORTED_ISA_SPEC): New.
10693         (arch_canonicalize): New argument `isa_spec`.
10694         Handle multiple ISA spec versions.
10695         * config/riscv/multilib-generator: Adding -misa-spec option.
10697 2022-04-11  Kito Cheng  <kito.cheng@sifive.com>
10699         * config/riscv/arch-canonicalize: Add TODO item.
10700         (IMPLIED_EXT): Sync.
10701         (arch_canonicalize): Checking until no change.
10703 2022-04-11  Tamar Christina  <tamar.christina@arm.com>
10705         PR target/105197
10706         * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
10707         not masked.
10709 2022-04-11  Jason Merrill  <jason@redhat.com>
10711         PR c++/100370
10712         * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
10713         deref == -1.
10715 2022-04-11  Jakub Jelinek  <jakub@redhat.com>
10717         PR tree-optimization/104639
10718         * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
10719         (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
10720         into x != cst3.
10722 2022-04-11  Jeff Law  <jeffreyalaw@gmail.com>
10724         * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
10725         sign bit of the source ends up in CC.
10727 2022-04-09  Jan Hubicka  <hubicka@ucw.cz>
10729         PR ipa/103376
10730         * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
10731         flag.
10733 2022-04-09  Jan Hubicka  <hubicka@ucw.cz>
10735         * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
10736         nondeterministic and side_effects flags.
10738 2022-04-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10740         PR target/105157
10741         * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
10742         * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
10743         (TARGET_CPU_MASK): Likewise.
10744         (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
10745         * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
10746         (aarch64_get_arch): Likewise.
10747         (aarch64_override_options): Use TARGET_CPU_NBITS.
10749 2022-04-08  Richard Biener  <rguenther@suse.de>
10751         PR tree-optimization/105198
10752         * tree-predcom.cc (find_looparound_phi): Check whether
10753         the found memory location of the entry value is clobbered
10754         inbetween the value we want to use and loop entry.
10756 2022-04-08  Jakub Jelinek  <jakub@redhat.com>
10758         PR tree-optimization/105189
10759         * fold-const.cc (make_range_step): Fix up handling of
10760         (unsigned) x +[low, -] ranges for signed x if low fits into
10761         typeof (x).
10763 2022-04-08  Richard Biener  <rguenther@suse.de>
10765         PR tree-optimization/105175
10766         * tree-vect-stmts.cc (vectorizable_operation): Suppress
10767         -Wvector-operation-performance if using emulated vectors.
10768         * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
10769         -Wvector-operation-performance when suppressed.
10770         (expand_vector_parallel): Likewise.
10771         (expand_vector_comparison): Likewise.
10772         (expand_vector_condition): Likewise.
10773         (lower_vec_perm): Likewise.
10774         (expand_vector_conversion): Likewise.
10776 2022-04-07  Tamar Christina  <tamar.christina@arm.com>
10778         PR target/104409
10779         * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
10780         (aarch64_general_init_builtins): Move LS64 code.
10781         * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
10782         arm_acle.h
10783         * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
10784         * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
10786 2022-04-07  Richard Biener  <rguenther@suse.de>
10787             Jan Hubicka  <hubicka@ucw.cz>
10789         PR ipa/104303
10790         * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
10791         ref_may_alias_global_p, ref_may_alias_global_p,
10792         stmt_may_clobber_global_p, pt_solution_includes_global): Add
10793         bool parameters indicating whether escaped locals should be
10794         considered global.
10795         * tree-ssa-structalias.cc (pt_solution_includes_global):
10796         When the new escaped_nonlocal_p flag is true also consider
10797         pt->vars_contains_escaped.
10798         * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
10799         Pass down new escaped_nonlocal_p flag.
10800         (ref_may_alias_global_p): Likewise.
10801         (stmt_may_clobber_global_p): Likewise.
10802         (ref_may_alias_global_p_1): Likewise.  For decls also
10803         query the escaped solution if true.
10804         (ref_may_access_global_memory_p): Remove.
10805         (modref_may_conflict): Use ref_may_alias_global_p with
10806         escaped locals considered global.
10807         (ref_maybe_used_by_stmt_p): Adjust.
10808         * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
10809         Likewise.
10810         * tree-ssa-dse.cc (dse_classify_store): Likewise.
10811         * trans-mem.cc (thread_private_new_memory): Likewise, but
10812         consider escaped locals global.
10813         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
10815 2022-04-07  Richard Biener  <rguenther@suse.de>
10817         PR tree-optimization/105185
10818         * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
10819         modref query again.
10821 2022-04-07  Tamar Christina  <tamar.christina@arm.com>
10823         PR target/104049
10824         * config/aarch64/aarch64-simd.md
10825         (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
10826         (reduc_plus_scal_<mode>): ... This.
10827         (reduc_plus_scal_v4sf): Moved.
10828         (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
10829         (reduc_plus_scal_v2si): ... This.
10831 2022-04-07  Jakub Jelinek  <jakub@redhat.com>
10833         PR tree-optimization/102586
10834         * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
10835         langhook.
10836         * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
10837         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
10838         * gimple-fold.cc (clear_padding_type): Use ftype instead of
10839         TREE_TYPE (field) some more.  For artificial FIELD_DECLs without
10840         name try the lang_hooks.types.classtype_as_base langhook and
10841         if it returns non-NULL, use that instead of ftype for recursive call.
10843 2022-04-07  Jakub Jelinek  <jakub@redhat.com>
10845         PR tree-optimization/105150
10846         * tree.cc (tree_builtin_call_types_compatible_p): New function.
10847         (get_call_combined_fn): Use it.
10849 2022-04-07  Richard Biener  <rguenther@suse.de>
10851         PR middle-end/105165
10852         * tree-complex.cc (expand_complex_asm): Sorry for asm goto
10853         _Complex outputs.
10855 2022-04-07  liuhongt  <hongtao.liu@intel.com>
10857         * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
10858         Removed.
10859         (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
10860         for mask_applied.
10861         (<code><mode>3<mask_name>): Ditto.
10862         (*<code><mode>3<mask_name>): Ditto.
10863         (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
10864         real instruction.
10865         (VFB_512): Ditto.
10866         (VFB): Ditto.
10868 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
10870         PR rtl-optimization/104985
10871         * combine.cc (struct undo): Add where.regno member.
10872         (do_SUBST_MODE): Rename to ...
10873         (subst_mode): ... this.  Change first argument from rtx * into int,
10874         operate on regno_reg_rtx[regno] and save regno into where.regno.
10875         (SUBST_MODE): Remove.
10876         (try_combine): Use subst_mode instead of SUBST_MODE, change first
10877         argument from regno_reg_rtx[whatever] to whatever.  For UNDO_MODE, use
10878         regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
10879         (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
10880         instead of *undo->where.r.
10881         (simplify_set): Use subst_mode instead of SUBST_MODE, change first
10882         argument from regno_reg_rtx[whatever] to whatever.
10884 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
10886         PR target/105069
10887         * config/sh/sh.opt (mdiv=): Add Save.
10889 2022-04-06  Martin Liska  <mliska@suse.cz>
10891         PR driver/105096
10892         * common.opt: Document properly based on what it does.
10893         * gcc.cc (display_help): Unify with what we have in common.opt.
10894         * opts.cc (common_handle_option): Do not print undocumented
10895         options.
10897 2022-04-06  Xi Ruoyao  <xry111@mengyan1223.wang>
10899         * config/mips/mips.cc (mips_fpr_return_fields): Ignore
10900         cxx17_empty_base_field_p fields and set an indicator.
10901         (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
10902         (mips_function_value_1): Inform psABI change about C++17 empty
10903         bases.
10905 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
10907         PR tree-optimization/105150
10908         * gimple.cc (gimple_builtin_call_types_compatible_p): Use
10909         builtin_decl_explicit here...
10910         (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
10911         here.
10913 2022-04-06  Richard Biener  <rguenther@suse.de>
10915         PR tree-optimization/105173
10916         * tree-ssa-reassoc.cc (find_insert_point): Get extra
10917         insert_before output argument and compute it.
10918         (insert_stmt_before_use): Adjust.
10919         (rewrite_expr_tree): Likewise.
10921 2022-04-06  Richard Biener  <rguenther@suse.de>
10923         PR ipa/105166
10924         * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
10925         out for non-pointer arguments.
10927 2022-04-06  Richard Biener  <rguenther@suse.de>
10929         PR tree-optimization/105163
10930         * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
10931         negated abnormals.
10933 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
10935         PR tree-optimization/105150
10936         * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
10937         For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
10938         preferrably on builtin_decl_explicit decl rather than fndecl.
10939         * tree-ssa-strlen.cc (valid_builtin_call): Don't call
10940         gimple_builtin_call_types_compatible_p here.
10942 2022-04-06  Richard Sandiford  <richard.sandiford@arm.com>
10944         PR tree-optimization/103761
10945         * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
10946         the ncopies parameter with an slp_node parameter.  Calculate the
10947         number of vectors based on it and vectype.  Rename lambda to
10948         group_memory_nvectors.
10949         (vectorizable_store, vectorizable_load): Update calls accordingly.
10951 2022-04-06  Martin Liska  <mliska@suse.cz>
10953         * doc/invoke.texi: Document it.
10955 2022-04-06  Richard Biener  <rguenther@suse.de>
10957         PR tree-optimization/105148
10958         * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
10959         2 and 3 of ARRAY_REFs.
10961 2022-04-06  Roger Sayle  <roger@nextmovesoftware.com>
10963         * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
10964         (*andnottf3): Replace with...
10965         (*andnot<mode>3): New define_insn using ANDNOT_MODE.
10967 2022-04-06  Richard Biener  <rguenther@suse.de>
10969         PR tree-optimization/105142
10970         * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
10971         basic-block parameter.
10972         (maybe_fold_or_comparisons): Likewise.
10973         * gimple-fold.cc (follow_outer_ssa_edges): New.
10974         (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
10975         when an outer condition basic-block is specified.
10976         (and_comparisons_1, and_var_with_comparison,
10977         and_var_with_comparison_1, or_comparisons_1,
10978         or_var_with_comparison, or_var_with_comparison_1): Receive and pass
10979         down the outer condition basic-block.
10980         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
10981         basic-block of the outer condition.
10983 2022-04-06  Kewen Lin  <linkw@linux.ibm.com>
10985         PR target/105002
10986         * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
10987         comparison codes UNLT/UNLE/UNGT/UNGE.
10989 2022-04-05  David Malcolm  <dmalcolm@redhat.com>
10991         * doc/extend.texi (Common Function Attributes): Document that
10992         'access' does not imply 'nonnull'.
10994 2022-04-05  Uroš Bizjak  <ubizjak@gmail.com>
10996         PR target/105139
10997         * config/i386/mmx.md (*movv2qi_internal):
10998         Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
11000 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
11002         * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
11003         define_expand and turn operands 0 and 1 from REGs to MEMs.
11004         (*aarch64_cpymemdi): New pattern.
11005         (aarch64_setmemdi): Turn into a define_expand and turn operand 0
11006         from a REG to a MEM.
11007         (*aarch64_setmemdi): New pattern.
11008         * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
11009         copy_to_mode_reg on all three registers.  Replace the original
11010         MEM addresses rather than creating wild reads and writes.
11011         (aarch64_expand_setmem_mops): Likewise for the size and for the
11012         destination memory and address.
11014 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
11016         PR target/103147
11017         * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
11018         * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
11019         from aarch64_simd_switcher.
11020         * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
11021         New variable.
11022         (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
11023         (register_tuple_type): Add more asserts.  Expect the alignment
11024         of the structure to be subject to flag_pack_struct and
11025         maximum_field_alignment.  Set aarch64_simd_tuple_modes.
11026         (aarch64_simd_switcher::aarch64_simd_switcher): New function.
11027         (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
11028         (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
11029         (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
11030         while calling aarch64_init_simd_builtins.
11031         * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
11032         (sve_switcher::~sve_switcher): Remove code now performed by
11033         aarch64_simd_switcher.
11035 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
11037         PR target/104897
11038         * config/aarch64/aarch64-sve-builtins.cc
11039         (function_resolver::infer_vector_or_tuple_type): Use error_n
11040         for "%d vectors" messages.
11042 2022-04-05  Chung-Lin Tang  <cltang@codesourcery.com>
11044         * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
11045         argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
11046         current clause.
11048 2022-04-05  Richard Biener  <rguenther@suse.de>
11050         PR c/105151
11051         * passes.def (pass_walloca): Move early instance into
11052         pass_build_ssa_passes to make SSA form available.
11054 2022-04-05  liuhongt  <hongtao.liu@intel.com>
11056         PR target/101908
11057         * config/i386/i386.cc (ix86_split_stlf_stall_load): New
11058         function
11059         (ix86_reorg): Call ix86_split_stlf_stall_load.
11060         * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
11061         param.
11063 2022-04-05  Alexandre Oliva  <oliva@adacore.com>
11065         * targhooks.cc (default_zero_call_used_regs): Attempt to group
11066         regs that the target refuses to use in their natural modes.
11067         (zcur_select_mode_rtx): New.
11068         * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
11069         (hard_regno_max_nregs): Define.
11070         * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
11072 2022-04-04  Alex Coplan  <alex.coplan@arm.com>
11074         * doc/match-and-simplify.texi: Fix typos.
11076 2022-04-04  Jakub Jelinek  <jakub@redhat.com>
11078         PR target/105144
11079         * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
11080         only if configured with --enable-maintainer-mode, otherwise compare
11081         tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
11082         if they differ, emit a message and fail.
11084 2022-04-04  Jakub Jelinek  <jakub@redhat.com>
11086         PR target/105144
11087         * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
11088         * config/aarch64/aarch64-tune.md: Regenerated.
11090 2022-04-04  Richard Biener  <rguenther@suse.de>
11092         PR tree-optimization/105132
11093         * tree-vect-stmts.cc (vectorizable_operation): Check that
11094         the input vectors have the same number of elements.
11096 2022-04-04  Richard Biener  <rguenther@suse.de>
11098         PR middle-end/105140
11099         * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
11101 2022-04-03  Jeff Law  <jeffreyalaw@gmail.com>
11103         PR target/104987
11104         * config/iq2000/iq2000.md (bbi): New attribute,  default to no.
11105         (delay slot descripts): Use different delay slot description when
11106         the insn as the "bbi" attribute.
11107         (bbi, bbin patterns): Set the bbi attribute to yes.
11109 2022-04-03  Jakub Jelinek  <jakub@redhat.com>
11111         PR target/105123
11112         * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
11113         using word as target for expand_simple_binop when doing ASHIFT and
11114         IOR.
11116 2022-04-02  Xi Ruoyao  <xry111@mengyan1223.wang>
11118         * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
11119         NULL before dereferencing it.
11121 2022-04-01  Qing Zhao  <qing.zhao@oracle.com>
11123         * config/i386/i386.cc (zero_all_st_registers): Return the value of
11124         num_of_st.
11125         (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
11126         the return value of zero_all_st_registers.
11127         * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
11128         * function.cc (gen_call_used_regs_seq): Add an assertion.
11129         * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
11131 2022-04-01  Xi Ruoyao  <xry111@mengyan1223.wang>
11133         PR target/102024
11134         * config/mips/mips.cc (mips_function_arg): Ignore zero-width
11135         fields, and inform if it causes a psABI change.
11137 2022-04-01  Xi Ruoyao  <xry111@mengyan1223.wang>
11139         PR target/102024
11140         * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
11141         zero-width bit-fields and set up an indicator.
11142         (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
11143         (mips_function_value_1): Diagnose when the presense of a C++
11144         zero-width bit-field changes function returning in GCC 12.
11146 2022-04-01  Jakub Jelinek  <jakub@redhat.com>
11148         PR tree-optimization/104645
11149         * tree-ssa-phiopt.cc (value_replacement): If assign has
11150         CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
11151         statement with constant evaluation.
11153 2022-04-01  YunQiang Su  <yunqiang.su@cipunited.com>
11155         * config/mips/mips.cc (mips_expand_prologue):
11156           IPL is 8bit for MCU ASE.
11158 2022-03-31  Bill Schmidt  <wschmidt@linux.ibm.com>
11160         PR target/104004
11161         * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
11162         (MTFSB0): Likewise.
11163         (MTFSB1): Likewise.
11164         (SET_FPSCR_RN): Likewise.
11165         (SET_FPSCR_DRN): Mark nosoft and no32bit.
11167 2022-03-31  Thomas Schwinge  <thomas@codesourcery.com>
11169         * doc/options.texi (Option file format): Clarifications around
11170         option definition records' help texts.
11172 2022-03-31  Thomas Schwinge  <thomas@codesourcery.com>
11174         * optc-gen.awk <END>: Fix "Multiple different help strings" error
11175         diagnostic.
11177 2022-03-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11179         * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
11180         determine_suggested_unroll_factor and m_has_avg.
11181         (determine_suggested_unroll_factor): New function.
11182         (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
11183         to set m_nosve_pattern.
11184         (aarch64_vector_costs::finish_costs): Use
11185         determine_suggested_unroll_factor.
11186         * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
11187         * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
11189 2022-03-31  Martin Jambor  <mjambor@suse.cz>
11191         PR ipa/103083
11192         * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
11193         (ipa_get_jf_ancestor_keep_null): New function.
11194         * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
11195         ancestor function.
11196         (compute_complex_assign_jump_func): Pass false to keep_null
11197         parameter of ipa_set_ancestor_jf.
11198         (compute_complex_ancestor_jump_func): Pass true to keep_null
11199         parameter of ipa_set_ancestor_jf.
11200         (update_jump_functions_after_inlining): Carry over keep_null from the
11201         original ancestor jump-function or merge them.
11202         (ipa_write_jump_function): Stream keep_null flag.
11203         (ipa_read_jump_function): Likewise.
11204         (ipa_print_node_jump_functions_for_edge): Print the new flag.
11205         * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const.  New
11206         member function known_nonzero_p.
11207         (ipcp_bits_lattice::known_nonzero_p): New.
11208         (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
11209         observe it.
11210         (ipcp_bits_lattice::meet_with): Likewise.
11211         (propagate_bits_across_jump_function): Simplify.  Pass true in
11212         drop_all_ones when it is necessary.
11213         (propagate_aggs_across_jump_function): Take care of keep_null
11214         flag.
11215         (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
11216         jump functions.
11218 2022-03-31  Martin Jambor  <mjambor@suse.cz>
11220         PR ipa/102513
11221         * ipa-cp.cc (decide_whether_version_node): Skip scalar values
11222         which do not fit the known value_range.
11224 2022-03-31  Martin Jambor  <mjambor@suse.cz>
11226         PR ipa/103171
11227         * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
11228         always when an ADDR_EXPR constant is known to reach a load because
11229         of inlining, not just when removing an ADDR reference.
11231 2022-03-31  Richard Biener  <rguenther@suse.de>
11233         PR tree-optimization/105109
11234         * tree-ssa.cc (execute_update_addresses_taken): Suppress
11235         diagnostics on the load of the other complex component.
11237 2022-03-31  Tom de Vries  <tdevries@suse.de>
11239         * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
11241 2022-03-31  Richard Biener  <rguenther@suse.de>
11243         PR rtl-optimization/105091
11244         * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
11245         bases.
11247 2022-03-31  Richard Biener  <rguenther@suse.de>
11249         Revert:
11250         2021-09-13  Richard Earnshaw  <rearnsha@arm.com>
11252         PR target/102125
11253         * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
11254         memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
11256 2022-03-31  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11258         * gcov-io.cc (gcov_read_string): Reword documentation comment.
11260 2022-03-30  Bill Schmidt  <wschmidt@linux.ibm.com>
11262         * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
11263         stanza.
11264         (NEG_V4SF): Likewise.
11265         (NEG_V4SI): Likewise.
11266         (NEG_V8HI): Likewise.
11267         (NEG_V2DF): Move to [vsx] stanza.
11268         (NEG_V2DI): Likewise.
11270 2022-03-30  Vladimir N. Makarov  <vmakarov@redhat.com>
11272         PR middle-end/105032
11273         * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
11275 2022-03-30  Tom de Vries  <tdevries@suse.de>
11276             Tobias Burnus  <tobias@codesourcery.com>
11278         * doc/invoke.texi (march): Document __PTX_SM__.
11279          (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
11280          __PTX_ISA_VERSION_MINOR__.
11282 2022-03-30  Jakub Jelinek  <jakub@redhat.com>
11284         PR sanitizer/105093
11285         * ubsan.cc (instrument_object_size): If t is equal to inner and
11286         is a decl other than global var, punt.  When emitting call to
11287         UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
11289 2022-03-30  Jakub Jelinek  <jakub@redhat.com>
11291         PR tree-optimization/105094
11292         * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
11293         bitsize <= 0 rather than just == 0.
11295 2022-03-30  Tom de Vries  <tdevries@suse.de>
11297         * doc/invoke.texi (misa, mptx): Update.
11298         (march, march-map): Add.
11300 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
11302         * opt-functions.awk (n_args): New function.
11303         (lang_enabled_by): Merge function into...
11304         * optc-gen.awk <END>: ... sole user here.
11305         Improve diagnostics.
11307 2022-03-29  Marek Polacek  <polacek@redhat.com>
11308             Jakub Jelinek  <jakub@redhat.com>
11310         PR middle-end/103597
11311         * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
11312         into labels.  Maybe set prev to the statement preceding UNUSED_LABEL_P.
11313         (gimplify_cond_expr): Set UNUSED_LABEL_P.
11314         * tree.h (UNUSED_LABEL_P): New.
11316 2022-03-29   Michael Meissner  <meissner@linux.ibm.com>
11318         * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
11319         be any VSX register.
11321 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
11323         PR target/102024
11324         * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
11325         zero-sized bit-fields.  Detect cases where a warning may be needed.
11326         (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
11327         zero-sized bit-field has caused parameter passing to change.
11329 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
11331         PR target/102024
11332         * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
11333         bit-fields.  Detect cases where a warning may be needed.
11334         (aapcs_vfp_is_call_or_return_candidate): Emit a note if
11335         a zero-sized bit-field has caused parameter passing to change.
11337 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
11339         PR target/96882
11340         * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
11341         ARM_PCS_AAPCS_LOCAL.
11343 2022-03-29  Tom de Vries  <tdevries@suse.de>
11345         PR target/104857
11346         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
11347         __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
11348         * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
11349         * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
11351 2022-03-29  Tom de Vries  <tdevries@suse.de>
11353         * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
11354         is ignored.
11356 2022-03-29  Tom de Vries  <tdevries@suse.de>
11358         PR target/104714
11359         * config/nvptx/nvptx.opt (march-map=*): Add aliases.
11361 2022-03-29  Jan Hubicka  <hubicka@ucw.cz>
11363         * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
11364         TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
11365         * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
11366         (TARGET_USE_GATHER_4PARTS): New macro.
11367         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
11368         (X86_TUNE_USE_GATHER_4PARTS): New tune
11370 2022-03-29  Tom de Vries  <tdevries@suse.de>
11372         * config/nvptx/nvptx.opt (march): Add alias of misa.
11374 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
11375             Lulu Cheng  <chenglulu@loongson.cn>
11377         * doc/install.texi: Add LoongArch options section.
11378         * doc/invoke.texi: Add LoongArch options section.
11379         * doc/md.texi: Add LoongArch options section.
11381 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
11382             Lulu Cheng  <chenglulu@loongson.cn>
11384         * config/loongarch/loongarch-c.cc
11386 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
11387             Lulu Cheng  <chenglulu@loongson.cn>
11389         * config/loongarch/larchintrin.h: New file.
11390         * config/loongarch/loongarch-builtins.cc: New file.
11392 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
11393             Lulu Cheng  <chenglulu@loongson.cn>
11395         * config/host-linux.cc: Add LoongArch support.
11396         * config/loongarch/loongarch-protos.h: New file.
11397         * config/loongarch/loongarch-tune.h: Likewise.
11398         * config/loongarch/loongarch.cc: Likewise.
11399         * config/loongarch/loongarch.h: Likewise.
11401 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
11402             Lulu Cheng  <chenglulu@loongson.cn>
11404         * config/loongarch/constraints.md: New file.
11405         * config/loongarch/generic.md: New file.
11406         * config/loongarch/la464.md: New file.
11407         * config/loongarch/loongarch-ftypes.def: New file.
11408         * config/loongarch/loongarch-modes.def: New file.
11409         * config/loongarch/loongarch.md: New file.
11410         * config/loongarch/predicates.md: New file.
11411         * config/loongarch/sync.md: New file.
11413 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
11414             Lulu Cheng  <chenglulu@loongson.cn>
11416         * configure: Regenerate file.
11418 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
11419             Lulu Cheng  <chenglulu@loongson.cn>
11421         * common/config/loongarch/loongarch-common.cc: New file.
11422         * config/loongarch/genopts/genstr.sh: New file.
11423         * config/loongarch/genopts/loongarch-strings: New file.
11424         * config/loongarch/genopts/loongarch.opt.in: New file.
11425         * config/loongarch/loongarch-str.h: New file.
11426         * config/loongarch/gnu-user.h: New file.
11427         * config/loongarch/linux.h: New file.
11428         * config/loongarch/loongarch-cpu.cc: New file.
11429         * config/loongarch/loongarch-cpu.h: New file.
11430         * config/loongarch/loongarch-def.c: New file.
11431         * config/loongarch/loongarch-def.h: New file.
11432         * config/loongarch/loongarch-driver.cc: New file.
11433         * config/loongarch/loongarch-driver.h: New file.
11434         * config/loongarch/loongarch-opts.cc: New file.
11435         * config/loongarch/loongarch-opts.h: New file.
11436         * config/loongarch/loongarch.opt: New file.
11437         * config/loongarch/t-linux: New file.
11438         * config/loongarch/t-loongarch: New file.
11439         * config.gcc: Add LoongArch support.
11440         * configure.ac: Add LoongArch support.
11442 2022-03-29  Thomas Schwinge  <thomas@codesourcery.com>
11444         * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
11445         typo.
11447 2022-03-29  Richard Biener  <rguenther@suse.de>
11449         PR tree-optimization/105080
11450         * tree-ssa-strlen.cc (printf_strlen_execute): Always init
11451         loops and SCEV.
11453 2022-03-28  Indu Bhagat  <indu.bhagat@oracle.com>
11455         * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
11456         (output_ctf_vars): Likewise.
11458 2022-03-28  Jason Merrill  <jason@redhat.com>
11460         PR c++/59426
11461         * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
11463 2022-03-28  H.J. Lu  <hjl.tools@gmail.com>
11465         PR target/105068
11466         * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
11467         "Yw" in clobber.
11469 2022-03-28  Tom de Vries  <tdevries@suse.de>
11471         PR target/104818
11472         * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
11473         * config/nvptx/nvptx-gen.opt: Regenerate.
11474         * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
11475         * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
11476         gen-opt.sh.
11478 2022-03-28  David Malcolm  <dmalcolm@redhat.com>
11480         PR analyzer/104308
11481         * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
11482         to loads then stores, set the location of the new load stmt.
11484 2022-03-28  Richard Biener  <rguenther@suse.de>
11486         PR tree-optimization/105070
11487         * tree-switch-conversion.h
11488         (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
11489         argument.
11490         * tree-switch-conversion.cc
11491         (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
11492         cond with location.
11493         (bit_test_cluster::emit): Annotate all generated expressions
11494         with location.
11496 2022-03-28  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11498         * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
11500 2022-03-28  liuhongt  <hongtao.liu@intel.com>
11502         PR target/105066
11503         * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
11504         alternative 4 from sse4_noavx to noavx.
11506 2022-03-28  Jakub Jelinek  <jakub@redhat.com>
11508         PR tree-optimization/105056
11509         * tree-predcom.cc (component::component): Initialize also comp_step.
11511 2022-03-27  H.J. Lu  <hjl.tools@gmail.com>
11513         PR target/105068
11514         * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
11515         "Yw".
11517 2022-03-26  Roger Sayle  <roger@nextmovesoftware.com>
11519         PR middle-end/104885
11520         * calls.cc (mark_stack_region_used): Check that the region
11521         is within the allocated size of stack_usage_map.
11523 2022-03-26  Jakub Jelinek  <jakub@redhat.com>
11525         PR rtl-optimization/103775
11526         * recog.cc (check_invalid_inc_dec): New function.
11527         (insn_invalid_p): Return 1 if REG_INC operand overlaps
11528         any stored REGs.
11530 2022-03-26  H.J. Lu  <hjl.tools@gmail.com>
11532         PR target/105058
11533         * config/i386/sse.md (loadiwkey): Replace "v" with "x".
11534         (aes<aesklvariant>u8): Likewise.
11536 2022-03-26  H.J. Lu  <hjl.tools@gmail.com>
11538         PR target/105052
11539         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
11540         Replace "Yv" with "x".
11541         (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
11542         (ssse3_psign<mode>3): Likewise.
11544 2022-03-26  Hans-Peter Nilsson  <hp@axis.com>
11546         * reload.cc (find_reloads): Align comment with code where
11547         considering the intersection of register classes then tweaking the
11548         regclass for the current alternative or rejecting it.
11550 2022-03-25  Christophe Lyon  <christohe.lyon@arm.com>
11552         PR target/104882
11553         Revert
11554         2021-06-11  Christophe Lyon  <christophe.lyon@linaro.org>
11556         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
11557         (mve_vec_unpack<US>_hi_<mode>): Delete.
11558         (@mve_vec_pack_trunc_lo_<mode>): Delete.
11559         (mve_vmovntq_<supf><mode>): Remove '@' prefix.
11560         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
11561         from vec-common.md.
11562         (vec_unpack<US>_lo_<mode>): Likewise.
11563         (vec_pack_trunc_<mode>): Rename from
11564         neon_quad_vec_pack_trunc_<mode>.
11565         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
11566         (vec_unpack<US>_lo_<mode>): Delete.
11567         (vec_pack_trunc_<mode>): Delete.
11569 2022-03-25  Vladimir N. Makarov  <vmakarov@redhat.com>
11571         PR middle-end/104971
11572         * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
11573         regs to clear remove_p flag.
11575 2022-03-25  Richard Biener  <rguenther@suse.de>
11577         PR tree-optimization/105053
11578         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
11579         the correct live-out stmt for a reduction chain.
11581 2022-03-25  Richard Biener  <rguenther@suse.de>
11583         PR middle-end/105049
11584         * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
11585         CONSTRUCTOR first elements.
11587 2022-03-25  Tobias Burnus  <tobias@codesourcery.com>
11589         PR analyzer/103533
11590         * doc/invoke.texi (Static Analyzer Options): Move
11591         @ignore block after @gccoptlist's '}' for 'make pdf'.
11593 2022-03-25  David Malcolm  <dmalcolm@redhat.com>
11595         PR analyzer/104954
11596         * doc/invoke.texi (Static Analyzer Options): Add
11597         -fdump-analyzer-untracked.
11599 2022-03-25  Avinash Sonawane  <rootkea@gmail.com>
11601         PR analyzer/103533
11602         * doc/invoke.texi: Document that enabling taint analyzer
11603         checker disables some warnings from `-fanalyzer`.
11605 2022-03-24  Alexandre Oliva  <oliva@adacore.com>
11607         PR debug/104564
11608         * gimple-harden-conditionals.cc (detach_value): Keep temps
11609         anonymous.
11611 2022-03-24  Alexandre Oliva  <oliva@adacore.com>
11613         PR middle-end/104975
11614         * gimple-harden-conditionals.cc
11615         (pass_harden_compares::execute): Force split in case of
11616         multiple edges.
11618 2022-03-24  Jakub Jelinek  <jakub@redhat.com>
11620         PR c++/105035
11621         * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
11622         field0 or field1 is not a FIELD_DECL, return false.
11624 2022-03-24  Richard Biener  <rguenther@suse.de>
11626         * tree-predcom.cc (chain::chain): Add CTOR.
11627         (component::component): Likewise.
11628         (pcom_worker::release_chain): Use delete.
11629         (release_components): Likewise.
11630         (pcom_worker::filter_suitable_components): Likewise.
11631         (pcom_worker::split_data_refs_to_components): Use new.
11632         (make_invariant_chain): Likewise.
11633         (make_rooted_chain): Likewise.
11634         (pcom_worker::combine_chains): Likewise.
11635         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
11636         Make sure to release previously constructed scalar_results.
11637         * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
11638         for vec_offsets.
11639         * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
11640         Release m_flag_set_edges.
11642 2022-03-24  Siddhesh Poyarekar  <siddhesh@gotplt.org>
11644         PR tree-optimization/104970
11645         * tree-object-size.cc (parm_object_size): Restrict size
11646         computation scenarios to explicit access attributes.
11648 2022-03-24  Kewen Lin  <linkw@linux.ibm.com>
11650         PR target/104967
11651         * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
11652         function types.
11654 2022-03-23  Richard Biener  <rguenther@suse.de>
11656         PR target/102125
11657         * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
11658         use of movmisalign when either the source or destination
11659         decl is properly aligned.
11661 2022-03-23  Richard Biener  <rguenther@suse.de>
11663         PR rtl-optimization/105028
11664         * ira-color.cc (form_threads_from_copies): Remove unnecessary
11665         copying of the sorted_copies tail.
11667 2022-03-23  Martin Liska  <mliska@suse.cz>
11669         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
11670         Use %qs in format.
11671         * config/rs6000/rs6000.cc (rs6000_option_override_internal):
11672         Reword the error message.
11674 2022-03-23  liuhongt  <hongtao.liu@intel.com>
11676         PR target/104976
11677         * config/i386/sse.md (ssePSmodelower): New.
11678         (*avx_cmp<mode>3_ltint_not): Force_reg operand before
11679         lowpart_subreg to avoid NULL_RTX.
11680         (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
11681         <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
11682         fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
11683         <avx512>_<complexopname>_<mode>_mask<round_name>,
11684         avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
11685         avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
11686         avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
11687         avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
11688         float<floatunssuffix><mode>v4hf2,
11689         float<floatunssuffix>v2div2hf2,
11690         fix<fixunssuffix>_truncv4hf<mode>2,
11691         fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
11692         extendv2hfv2df2,
11693         trunc<mode>v4hf2,truncv2dfv2hf2,
11694         *avx512bw_permvar_truncv16siv16hi_1,
11695         *avx512bw_permvar_truncv16siv16hi_1_hf,
11696         *avx512f_permvar_truncv8siv8hi_1,
11697         *avx512f_permvar_truncv8siv8hi_1_hf,
11698         *avx512f_vpermvar_truncv8div8si_1,
11699         *avx512f_permvar_truncv32hiv32qi_1,
11700         *avx512f_permvar_truncv16hiv16qi_1,
11701         *avx512f_permvar_truncv4div4si_1,
11702         *avx512f_pshufb_truncv8hiv8qi_1,
11703         *avx512f_pshufb_truncv4siv4hi_1,
11704         *avx512f_pshufd_truncv2div2si_1,
11705         sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
11706         ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
11708 2022-03-22  Tom de Vries  <tdevries@suse.de>
11710         PR target/104925
11711         * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
11712         Use % as register prefix.
11714 2022-03-22  Tom de Vries  <tdevries@suse.de>
11716         * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
11717         (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
11718         mexperimental.
11720 2022-03-22  Tom de Vries  <tdevries@suse.de>
11722         * config/nvptx/nvptx.opt (mexperimental): New option.
11724 2022-03-22  Tom de Vries  <tdevries@suse.de>
11726         PR target/104957
11727         * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
11728         * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
11729         for alias.
11730         (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
11731         (nvptx_asm_output_def_from_decls): New function.
11732         * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
11733         gcc_unreachable ().
11734         (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
11735         nvptx_asm_output_def_from_decls.
11736         * config/nvptx/nvptx.opt (malias): New opt.
11738 2022-03-22  Tom de Vries  <tdevries@suse.de>
11740         PR target/104916
11741         PR target/104783
11742         * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
11743         sync (or uniform warp check for mptx < 6.0).
11745 2022-03-22  Richard Biener  <rguenther@suse.de>
11747         PR tree-optimization/105012
11748         * tree-if-conv.cc (ifcvt_local_dce): Only call
11749         dse_classify_store when we have a VDEF.
11751 2022-03-22  Martin Liska  <mliska@suse.cz>
11753         PR target/104902
11754         * config/nvptx/nvptx.cc (handle_ptx_version_option):
11755         Fix option wrapping in an error message.
11757 2022-03-22  Martin Liska  <mliska@suse.cz>
11759         PR target/104903
11760         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
11761         Wrap const keyword.
11763 2022-03-22  Martin Liska  <mliska@suse.cz>
11765         * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
11766         name.
11768 2022-03-22  Martin Liska  <mliska@suse.cz>
11770         PR target/104898
11771         * config/rs6000/rs6000.cc (rs6000_option_override_internal):
11772         Use %qs instead of (%qs).
11774 2022-03-22  Martin Liska  <mliska@suse.cz>
11776         PR target/104898
11777         * config/i386/i386-options.cc (ix86_option_override_internal):
11778           Use '%qs' instead of '(%qs)'.
11780 2022-03-22  Martin Liska  <mliska@suse.cz>
11782         PR target/104898
11783         * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
11784         Use 'qs' and remove usage '(%qs)'.
11785         (aarch64_handle_attr_cpu): Likewise.
11786         (aarch64_handle_attr_tune): Likewise.
11787         (aarch64_handle_attr_isa_flags): Likewise.
11789 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
11790             Andre Vieira  <andre.simoesdiasvieira@arm.com>
11792         * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
11793         struct.
11794         (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
11795         cost.
11796         (neoverse512tvb_tunings): Likewise.
11798 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
11799             Andre Vieira  <andre.simoesdiasvieira@arm.com>
11801         * config/aarch64/aarch64.cc (demeter_addrcost_table,
11802         demeter_regmove_cost, demeter_advsimd_vector_cost,
11803         demeter_sve_vector_cost, demeter_scalar_issue_info,
11804         demeter_advsimd_issue_info, demeter_sve_issue_info,
11805         demeter_vec_issue_info, demeter_vector_cost,
11806         demeter_tunings): New tuning structs.
11807         (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
11808         tuning.
11809         * config/aarch64/aarch64-cores.def: Add entry for demeter.
11810         * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
11812 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
11813             Andre Vieira  <andre.simoesdiasvieira@arm.com>
11815         * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
11816         (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
11817         * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
11818         tunings to use cpu_memmov_cost struct.
11820 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
11821             Andre Vieira  <andre.simoesdiasvieira@arm.com>
11823         * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
11824         neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
11825         neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
11826         neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
11827         neoversen2_vec_issue_info, neoversen2_tunings): New structs.
11828         (neoversen2_tunings): Use new structs and update tuning flags.
11829         (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
11830         tuning.
11832 2022-03-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11834         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
11835         bit.
11837 2022-03-22  liuhongt  <hongtao.liu@intel.com>
11839         PR target/104982
11840         * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
11841         following splitter to reversed condition.
11843 2022-03-22  Jakub Jelinek  <jakub@redhat.com>
11845         PR rtl-optimization/104989
11846         * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
11847         sorry for passing too large argument, instead set sibcall_failure
11848         for pass == 0, or a new normal_failure flag otherwise.  If
11849         normal_failure is set, don't assert all stack has been deallocated
11850         at the end and throw away the whole insn sequence.
11852 2022-03-22  Qian Jianhua  <qianjh@cn.fujitsu.com>
11854         * print-tree.cc: Change array length
11856 2022-03-22  Hongyu Wang  <hongyu.wang@intel.com>
11858         PR target/104978
11859         * config/i386/sse.md
11860         (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
11861         Use avx512f_movsf_mask instead of vmovaps or vblend, and
11862         force_reg before lowpart_subreg.
11863         (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
11865 2022-03-21  H.J. Lu  <hjl.tools@gmail.com>
11867         PR target/105000
11868         * common/config/i386/i386-common.cc
11869         (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
11870         OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
11872 2022-03-21  H.J. Lu  <hjl.tools@gmail.com>
11874         PR target/104998
11875         * common/config/i386/cpuinfo.h (get_available_features): Pass
11876         0x19 to __cpuid for bit_AESKLE.  Enable FEATURE_AESKLE only if
11877         bit_AESKLE is set.
11879 2022-03-21  Richard Sandiford  <richard.sandiford@arm.com>
11881         PR middle-end/104869
11882         * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
11883         (clobber_group::next_clobber): Likewise.
11884         (def_lookup::prev_def): Rename to...
11885         (def_lookup::last_def_of_prev_group): ...this.
11886         (def_lookup::next_def): Rename to...
11887         (def_lookup::first_def_of_next_group): ...this.
11888         (def_lookup::matching_or_prev_def): Rename to...
11889         (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
11890         (def_lookup::matching_or_next_def): Rename to...
11891         (def_lookup::matching_set_or_first_def_of_next_group): ...this.
11892         (def_lookup::prev_def): New function, taking the lookup insn as
11893         argument.
11894         (def_lookup::next_def): Likewise.
11895         * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
11896         (def_lookup::last_def_of_prev_group): ...this.
11897         (def_lookup::next_def): Rename to...
11898         (def_lookup::first_def_of_next_group): ...this.
11899         (def_lookup::matching_or_prev_def): Rename to...
11900         (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
11901         (def_lookup::matching_or_next_def): Rename to...
11902         (def_lookup::matching_set_or_first_def_of_next_group): ...this.
11903         * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
11904         above renaming.
11905         * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
11906         (clobber_group::next_clobber): Likewise.
11907         (def_lookup::prev_def): Likewise.
11908         (def_lookup::next_def): Likewise.
11909         (function_info::make_use_available): Pass the lookup insn to
11910         def_lookup::prev_def and def_lookup::next_def.
11912 2022-03-21  Martin Liska  <mliska@suse.cz>
11914         * doc/invoke.texi: Document min-pagesize parameter.
11916 2022-03-21  Richard Biener  <rguenther@suse.de>
11918         * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
11919         we are estimating niter of loop.
11921 2022-03-21  Kito Cheng  <kito.cheng@sifive.com>
11923         * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
11924         Update flag name and mask name.
11925         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
11926         misc macro for vector extensions.
11927         * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
11928         (MASK_VECTOR_ELEN_32): ... this.
11929         (MASK_VECTOR_EEW_64): Rename to ...
11930         (MASK_VECTOR_ELEN_64): ... this.
11931         (MASK_VECTOR_EEW_FP_32): Rename to ...
11932         (MASK_VECTOR_ELEN_FP_32): ... this.
11933         (MASK_VECTOR_EEW_FP_64): Rename to ...
11934         (MASK_VECTOR_ELEN_FP_64): ... this.
11935         (TARGET_VECTOR_ELEN_32): New.
11936         (TARGET_VECTOR_ELEN_64): Ditto.
11937         (TARGET_VECTOR_ELEN_FP_32): Ditto.
11938         (TARGET_VECTOR_ELEN_FP_64): Ditto.
11939         (TARGET_MIN_VLEN): Ditto.
11940         * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
11941         (riscv_vector_elen_flags): ... this.
11943 2022-03-21  Hongyu Wang  <hongyu.wang@intel.com>
11945         PR target/104977
11946         * config/i386/sse.md
11947         (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
11948         Correct round operand for intel dialect.
11950 2022-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>
11952         * diagnostic.cc (diagnostic_cc_tests): Rename to...
11953         (c_diagnostic_cc_tests): ...this.
11954         * opt-problem.cc (opt_problem_cc_tests): Rename to...
11955         (c_opt_problem_cc_tests): ...this.
11956         * selftest-run-tests.cc (selftest::run_tests): No longer run
11957         opt_problem_cc_tests or diagnostic_cc_tests.
11958         * selftest.h (diagnostic_cc_tests): Remove declaration.
11959         (opt_problem_cc_tests): Likewise.
11961 2022-03-19  Marc Nieper-Wißkirchen  <marc@nieper-wisskirchen.de>
11963         PR jit/63854
11964         * hash-traits.h (struct typed_const_free_remove): New.
11965         (struct free_string_hash): New.
11966         * pass_manager.h: Use free_string_hash.
11967         * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
11968         (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
11970 2022-03-19  Jakub Jelinek  <jakub@redhat.com>
11972         PR middle-end/104971
11973         * config/i386/i386-expand.cc
11974         (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
11975         don't push/pop anything and just return const0_rtx.
11977 2022-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
11979         PR rtl-optimization/104961
11980         * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
11982 2022-03-18  Jason Merrill  <jason@redhat.com>
11984         * tree.h (IDENTIFIER_LENGTH): Add comment.
11986 2022-03-18  Jakub Jelinek  <jakub@redhat.com>
11988         PR middle-end/99578
11989         PR middle-end/100680
11990         PR tree-optimization/100834
11991         * params.opt (--param=min-pagesize=): New parameter.
11992         * pointer-query.cc
11993         (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
11994         (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
11995         of zero for pointer constants equal or larger than min-pagesize.
11997 2022-03-18  Tom de Vries  <tdevries@suse.de>
11999         * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
12000         Set gfor location only when dealing with a OMP_TASKLOOP.
12002 2022-03-18  Tom de Vries  <tdevries@suse.de>
12004         * gimplify.cc (gimplify_omp_for): Set taskloop location.
12006 2022-03-18  Tom de Vries  <tdevries@suse.de>
12008         PR target/104952
12009         * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
12010         is executed unconditionally.
12012 2022-03-18  liuhongt  <hongtao.liu@intel.com>
12014         PR target/104974
12015         * config/i386/i386.md (*movhi_internal): Set attr type from HI
12016         to HF for alternative 12 under TARGET_AVX512FP16.
12018 2022-03-18  Cui,Lili  <lili.cui@intel.com>
12020         PR target/104963
12021         * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
12022         * doc/invoke.texi: Update documents for Intel sapphirerapids.
12024 2022-03-17  Roger Sayle  <roger@nextmovesoftware.com>
12026         PR target/86722
12027         PR tree-optimization/90356
12028         * config/i386/i386.md (*movtf_internal): Don't guard
12029         standard_sse_constant_p clause by optimize_function_for_size_p.
12030         (*movdf_internal): Likewise.
12031         (*movsf_internal): Likewise.
12033 2022-03-17  Andrew MacLeod  <amacleod@redhat.com>
12035         PR tree-optimization/102943
12036         * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
12037         dominators and apply intermediary outgoing edge ranges.
12039 2022-03-17  Richard Biener  <rguenther@suse.de>
12041         PR tree-optimization/104960
12042         * passes.def: Add pass parameter to pass_sink_code, mark
12043         last one to unsplit edges.
12044         * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
12045         (pass_sink_code::execute): Always execute TODO_cleanup_cfg
12046         when we need to unsplit edges.
12048 2022-03-17  Jakub Jelinek  <jakub@redhat.com>
12050         PR middle-end/103984
12051         * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
12052         TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
12053         and asan unpoisioning, then append the temporary sequence and
12054         finally the TARGET_EXPR_CLEANUP clobbers.
12056 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
12058         * config/i386/sse.md: Delete corrupt character/typo.
12060 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
12062         PR target/94680
12063         * config/i386/sse.md (sse2_movq128): New define_expand to
12064         preserve previous named instruction.
12065         (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
12066         generalized to VI8F_128 (both V2DI and V2DF).
12068 2022-03-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
12070         PR tree-optimization/104941
12071         * tree-object-size.cc (size_for_offset): Make useless conversion
12072         check lighter and assign result of fold_convert to OFFSET.
12074 2022-03-16  H.J. Lu  <hjl.tools@gmail.com>
12076         PR target/104890
12077         * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
12078         pushing target("general-regs-only").
12080 2022-03-16  Kito Cheng  <kito.cheng@sifive.com>
12082         * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
12083         Add version info for zk, zks and zkn.
12085 2022-03-16  LiaoShihua  <shihua@iscas.ac.cn>
12087         * common/config/riscv/riscv-common.cc
12088         (riscv_combine_info): New.
12089         (riscv_subset_list::handle_combine_ext): Combine back into zk to
12090         maintain the canonical order in isa strings.
12091         (riscv_subset_list::parse): Ditto.
12092         * config/riscv/riscv-subset.h (handle_combine_ext): New.
12094 2022-03-16  Richard Biener  <rguenther@suse.de>
12096         PR tree-optimization/102008
12097         * passes.def: Move the added code sinking pass before the
12098         preceeding phiopt pass.
12100 2022-03-16  Patrick Palka  <ppalka@redhat.com>
12102         PR c++/96780
12103         * doc/invoke.texi (C++ Dialect Options): Document
12104         -ffold-simple-inlines.
12106 2022-03-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
12108         PR tree-optimization/104942
12109         * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
12111 2022-03-16  Jakub Jelinek  <jakub@redhat.com>
12113         PR target/104910
12114         * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
12115         imm rtx.
12117 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
12118             Richard Biener  <rguenther@suse.de>
12120         * gimple-match-head.cc (single_use): Implement inline using a
12121         single loop.
12123 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
12125         * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
12126         instead of HONOR_NANS.
12127         (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
12128         this can't trap/signal.
12130 2022-03-16  liuhongt  <hongtao.liu@intel.com>
12132         PR target/104946
12133         * config/i386/i386-builtin.def (BDESC): Add
12134         CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
12135         * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
12136         __builtin_ia32_blendvpd w/o sse4.2
12138 2022-03-15  Peter Bergner  <bergner@linux.ibm.com>
12140         PR target/104923
12141         * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
12142         acceptable MEM addresses.
12144 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
12146         PR target/91229
12147         * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
12148         riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
12149         to warning calls.
12151 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
12153         PR target/104890
12154         * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
12155         instead of general-regs-only.
12157 2022-03-15  Roger Sayle  <roger@nextmovesoftware.com>
12158             Marc Glisse  <marc.glisse@inria.fr>
12159             Richard Biener  <rguenther@suse.de>
12161         PR tree-optimization/101895
12162         * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
12163         (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
12165 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
12167         PR rtl-optimization/104814
12168         * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
12169         end with onlyjump_p.  Assume BB_END (test_bb) is always non-NULL.
12171 2022-03-15  Martin Sebor  <msebor@redhat.com>
12173         PR middle-end/104436
12174         * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
12175         Check for warning suppression.  Avoid by-value arguments transformed
12176         into by-transparent-reference.
12178 2022-03-14  Roger Sayle  <roger@nextmovesoftware.com>
12179             Uroš Bizjak  <ubizjak@gmail.com>
12181         * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
12182         transformation when *zero_extend<mode>si2 is not available.
12184 2022-03-14  Xi Ruoyao  <xry111@mengyan1223.wang>
12186         * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
12187         * config/mips/mips.cc (mips_option_override): Make
12188         -fsanitize=address imply -fasynchronous-unwind-tables.  This is
12189         needed by libasan for stack backtrace on MIPS.
12190         (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
12192 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
12194         PR debug/104778
12195         * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
12196         SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
12197         call simplified the first operand into VOIDmode constant.
12199 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
12201         PR tree-optimization/102586
12202         * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
12203         argument type should be pointer to trivially-copyable type unless it
12204         is address of a variable or parameter.
12206 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
12208         PR target/99754
12209         * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
12210         first   rather than last element of the vector, use __m32_u to do
12211         a really unaligned load, use just 0 instead of (int)0.
12212         (_mm_loadu_si16): Put loaded value into first rather than last
12213         element of the vector, use __m16_u to do a really unaligned load,
12214         use just 0 instead of (short)0.
12216 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
12218         PR other/104899
12219         * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
12220         in diagnostic message - cannott -> cannot.  Use %< and %> around
12221         names of attribute.  Avoid too long line.
12222         * range-op.cc (operator_logical_and::op1_range): Fix up a typo
12223         in comment - cannott -> cannot.  Use 2 spaces after . instead of one.
12225 2022-03-14  liuhongt  <hongtao.liu@intel.com>
12227         PR target/104666
12228         * config/i386/i386-expand.cc
12229         (ix86_check_builtin_isa_match): New func.
12230         (ix86_expand_builtin): Move code to
12231         ix86_check_builtin_isa_match and call it.
12232         * config/i386/i386-protos.h
12233         (ix86_check_builtin_isa_match): Declare.
12234         * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
12235         builtin into gimple when isa mismatches.
12237 2022-03-13  Tobias Burnus  <tobias@codesourcery.com>
12239         * doc/invoke.texi: Fix typos.
12240         * doc/tm.texi.in: Remove duplicated word.
12241         * doc/tm.texi: Regenerate.
12243 2022-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
12245         PR target/104829
12246         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
12247         "ppc" and "ppc64" based on rs6000_cpu.
12249 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
12251         PR middle-end/100280
12252         PR middle-end/104892
12253         * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
12254         Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
12256 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
12258         PR middle-end/100280
12259         PR middle-end/104086
12260         * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
12261         Mark variables used in 'present' clauses as addressable.
12262         * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
12263         handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
12265 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
12267         PR other/65095
12268         * tree-core.h (user_omp_claus_code_name): Declare function.
12269         * tree.cc (user_omp_clause_code_name): New function.
12271 2022-03-12  Roger Sayle  <roger@nextmovesoftware.com>
12273         PR middle-end/98420
12274         * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
12275         (the defaut) or -fno-signed-zeros.
12277 2022-03-12   Michael Meissner  <meissner@linux.ibm.com>
12279         PR target/104868
12280         * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
12281         moving from a GPR register to an Altivec register.
12283 2022-03-11  Roger Sayle  <roger@nextmovesoftware.com>
12285         PR tree-optimization/98335
12286         * config/i386/i386.md (peephole2): Eliminate redundant insv.
12287         Combine movl followed by movb.  Transform xorl followed by
12288         a suitable movb or movw into the equivalent movz[bw]l.
12290 2022-03-11  Roger Sayle  <roger@nextmovesoftware.com>
12291             Richard Biener  <rguenther@suse.de>
12293         PR tree-optimization/98335
12294         * builtins.cc (get_object_alignment_2): Export.
12295         * builtins.h (get_object_alignment_2): Likewise.
12296         * tree-ssa-alias.cc (ao_ref_alignment): New.
12297         * tree-ssa-alias.h (ao_ref_alignment): Declare.
12298         * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
12299         to align head/tail, writing more bytes but using fewer store insns.
12301 2022-03-11  Richard Biener  <rguenther@suse.de>
12303         PR tree-optimization/104880
12304         * tree-ssa.cc (execute_update_address_taken): Remember if we
12305         optimistically made something not addressable and
12306         prepare to undo it.
12308 2022-03-11  Richard Biener  <rguenther@suse.de>
12310         PR target/104762
12311         * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
12312         cost the first lane of SSE pieces as inserts for vec_construct.
12314 2022-03-10  Roger Sayle  <roger@nextmovesoftware.com>
12316         PR c++/84964
12317         * calls.cc (expand_call): Ignore stack adjustments after sorry.
12319 2022-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
12321         PR target/103074
12322         * lra-constraints.cc (split_reg): Set up
12323         check_and_force_assignment_correctness_p when splitting hard
12324         register live range.
12326 2022-03-10  Martin Jambor  <mjambor@suse.cz>
12328         PR ipa/104813
12329         * ipa-cp.cc (create_specialized_node): Move removal of
12330         self-recursive calls from callers vector before refrence
12331         adjustments.
12333 2022-03-10  Richard Biener  <rguenther@suse.de>
12335         PR tree-optimization/102943
12336         * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
12337         Make a bitmap_head.
12338         (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
12339         to tree view.
12340         (sbr_sparse_bitmap::set_bb_range): Adjust.
12341         (sbr_sparse_bitmap::get_bb_range): Likewise.
12343 2022-03-10  Richard Biener  <rguenther@suse.de>
12345         PR tree-optimization/102943
12346         * tree-ssa-dom.cc (back_propagate_equivalences): Only
12347         populate the dominance bitmap if fast queries are not
12348         available.  Use a tree view bitmap.
12349         (record_temporary_equivalences): Cache the dominance bitmap
12350         across all equivalences on the edge.
12352 2022-03-10  Tom de Vries  <tdevries@suse.de>
12354         PR target/104840
12355         * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
12356         of false,true.
12358 2022-03-10  Tom de Vries  <tdevries@suse.de>
12360         PR target/104783
12361         * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
12362         (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
12363         (nvptx_get_unisimt_outside_simt_predicate): New function.
12364         (predicate_insn): New function, factored out of ...
12365         (nvptx_reorg_uniform_simt): ... here.  Predicate all emitted insns.
12366         * config/nvptx/nvptx.h (struct machine_function): Add
12367         unisimt_outside_simt_predicate field.
12368         * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
12369         (define_insn "nvptx_uniform_warp_check"): Make predicable.
12371 2022-03-10  Tom de Vries  <tdevries@suse.de>
12373         * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
12374         result.
12376 2022-03-10  Tom de Vries  <tdevries@suse.de>
12378         PR target/104815
12379         * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
12380         modifier.
12381         * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
12383 2022-03-10  Tom de Vries  <tdevries@suse.de>
12385         * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
12386         Emit atom.and.b64 instead of atom.b64.and.
12388 2022-03-10  Tom de Vries  <tdevries@suse.de>
12390         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
12391         (MULTILIB_OPTIONS): ... here.
12393 2022-03-10  Tom de Vries  <tdevries@suse.de>
12395         PR target/104758
12396         * config/nvptx/nvptx.opt (misa): Set default to sm_30.
12397         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
12399 2022-03-10  Thomas Schwinge  <thomas@codesourcery.com>
12401         PR middle-end/90115
12402         PR middle-end/102330
12403         PR middle-end/104774
12404         * omp-low.cc (oacc_privatization_candidate_p)
12405         (oacc_privatization_scan_clause_chain)
12406         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
12407         Analyze 'lookup_decl'-translated DECL.
12409 2022-03-10  Jakub Jelinek  <jakub@redhat.com>
12411         PR target/99708
12412         * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
12413         RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
12414         (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
12415         * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
12416         "**NULL**" if type_node is NULL first.  Handle
12417         ieee128_float_type_node.
12418         (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
12419         and ptr_ibm128_float_type_node.  Set ibm128_float_type_node and
12420         ieee128_float_type_node to NULL rather than long_double_type_node if
12421         they aren't supported.  Do support __ibm128 even if
12422         !TARGET_FLOAT128_TYPE when long double is double double.
12423         (rs6000_expand_builtin): Error if bif_is_ibm128 and
12424         !ibm128_float_type_node.  Remap RS6000_BIF_{,UN}PACK_IF to
12425         RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
12426         for it.
12427         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
12428         __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
12429         (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
12430         Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
12431         Formatting fix.
12432         * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
12433         (struct attrinfo): Add isibm128 member.
12434         (TYPE_MAP_SIZE): Remove.
12435         (type_map): Use [] instead of [TYPE_MAP_SIZE].  For "if" use
12436         ibm128_float_type_node only if it is non-NULL, otherwise fall back
12437         to long_double_type_node.  Remove "pif" entry.
12438         (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
12439         (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
12440         (write_type_node): Use sizeof type_map / sizeof type_map[0]
12441         instead of TYPE_MAP_SIZE.
12442         (write_bif_static_init): Handle isibm128.
12443         * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
12444         (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
12445         attribute.
12447 2022-03-09  Richard Biener  <rguenther@suse.de>
12449         * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
12450         with non-decl operand, avoiding a copy.
12452 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
12454         PR target/104781
12455         * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
12457 2022-03-09  Richard Biener  <rguenther@suse.de>
12459         PR middle-end/104786
12460         * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
12461         for VLAs without an upper size bound.
12463 2022-03-09  Xi Ruoyao  <xry111@mengyan1223.wang>
12465         PR tree-optimization/104851
12466         * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
12467         error.
12469 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
12471         PR c/104711
12472         * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
12473         is enabled by it only for C++11 to C++17 rather than for C++03 or
12474         later.
12475         (-Wshift-negative-value): Similarly (except here we stated
12476         that it is enabled for C++11 or later).
12478 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
12480         PR rtl-optimization/104839
12481         * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
12482         Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
12483         (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
12484         instead of incorrect 0 in SUBREG_PROMOTED_SET.
12486 2022-03-09  Xi Ruoyao  <xry111@mengyan1223.wang>
12488         PR target/104842
12489         * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
12490         value before adding an offset.
12492 2022-03-08  Christophe Lyon  <christophe.lyon@arm.com>
12494         * config/arm/arm-builtins.cc
12495         (arm_binop_none_none_unone_qualifiers): Delete.
12496         (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
12498 2022-03-08  Iain Sandoe  <iain@sandoe.co.uk>
12500         PR translation/104552
12501         * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
12502         the PCH out of memory error message punctuation and wording.
12504 2022-03-08  Marek Polacek  <polacek@redhat.com>
12506         PR rtl-optimization/104777
12507         * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
12508         ASM_OPERANDS_LABEL_VEC has at least one element.
12510 2022-03-08  H.J. Lu  <hjl.tools@gmail.com>
12512         PR target/104781
12513         * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
12514         stack realignment or regparm nested function with EH return.
12516 2022-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12518         PR target/104790
12519         * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
12520         * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
12521         register for non widening loads or narrowing stores.
12523 2022-03-08  Eric Gallager  <egallager@gcc.gnu.org>
12525         PR translation/104552
12526         * params.opt: Fix typo.
12528 2022-03-08  Richard Biener  <rguenther@suse.de>
12530         PR tree-optimization/84201
12531         * params.opt (-param=vect-induction-float): Add.
12532         * doc/invoke.texi (vect-induction-float): Document.
12533         * tree-vect-loop.cc (vectorizable_induction): Honor
12534         param_vect_induction_float.
12536 2022-03-08  Martin Jambor  <mjambor@suse.cz>
12538         PR translation/104552
12539         * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
12540         "that" in the description.
12542 2022-03-08  Richard Biener  <rguenther@suse.de>
12544         PR tree-optimization/104825
12545         * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
12546         guard modref get_ao_ref on a pointer typed argument.
12548 2022-03-08  liuhongt  <hongtao.liu@intel.com>
12550         * config/i386/sse.md (*vec_dupv4si): Disable memory operand
12551         for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
12553 2022-03-07  Jonathan Wakely  <jwakely@redhat.com>
12555         * doc/invoke.texi (C++ Modules): Remove anachronism.
12557 2022-03-07  Martin Liska  <mliska@suse.cz>
12559         PR middle-end/104381
12560         * opts.cc (finish_options): If debug info is disabled
12561         (debug_info_level) and -fvar-tracking is unset, disable it.
12563 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
12565         * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
12566         * config/riscv/riscv.cc: Likewise.
12567         * config/darwin.h: Likewise.
12568         * config/i386/i386.cc: Likewise.
12569         * config/aarch64/thunderx3t110.md: Likewise.
12570         * config/aarch64/fractional-cost.h: Likewise.
12571         * config/vax/vax.cc: Likewise.
12572         * config/rs6000/pcrel-opt.md: Likewise.
12573         * config/rs6000/predicates.md: Likewise.
12574         * ctfc.h: Likewise.
12575         * tree-ssa-uninit.cc: Likewise.
12576         * value-relation.h: Likewise.
12577         * gimple-range-gori.cc: Likewise.
12578         * ipa-polymorphic-call.cc: Likewise.
12579         * pointer-query.cc: Likewise.
12580         * ipa-sra.cc: Likewise.
12581         * internal-fn.cc: Likewise.
12582         * varasm.cc: Likewise.
12583         * gimple-ssa-warn-access.cc: Likewise.
12585 2022-03-07  Martin Liska  <mliska@suse.cz>
12587         PR target/104794
12588         * config/arm/arm.cc (arm_option_override_internal): Add missing
12589         space.
12591 2022-03-07  Richard Biener  <rguenther@suse.de>
12593         PR tree-optimization/104782
12594         * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
12595         Re-instantiate r10-5979 fix, add comment.
12597 2022-03-07  Martin Liska  <mliska@suse.cz>
12599         PR target/104797
12600         * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
12601         parenthesis from built-in name.
12603 2022-03-07  Martin Liska  <mliska@suse.cz>
12605         PR target/104794
12606         * config/arm/arm.cc (arm_option_override_internal): Fix quoting
12607         of options in error messages.
12608         (arm_option_reconfigure_globals): Likewise.
12610 2022-03-07  Martin Liska  <mliska@suse.cz>
12612         PR target/104794
12613         * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
12614         message.  Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
12615         have only range [0,32].
12617 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
12619         PR target/104775
12620         * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
12621         S constraint instead of T in the last alternative.
12623 2022-03-07  Martin Liska  <mliska@suse.cz>
12625         * plugin.cc (default_plugin_dir_name): Remove <dir> from error
12626         message.
12628 2022-03-07  Martin Liska  <mliska@suse.cz>
12630         PR translation/90148
12631         * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
12632         quote to a proper place.
12633         * plugin.cc (default_plugin_dir_name): Likewise.
12635 2022-03-07  Martin Liska  <mliska@suse.cz>
12637         PR target/99297
12638         * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
12639         string.
12641 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
12643         PR target/104779
12644         * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
12645         define_expand pattern.  Rename define_insn to ...
12646         (*avx512dq_mul<mode>3<mask_name>): ... this.
12647         (<code><mode>3_mask): New any_logic define_expand pattern.
12648         (<mask_codefor><code><mode>3<mask_name>): Rename to ...
12649         (*<code><mode>3<mask_name>): ... this.
12651 2022-03-05  Jakub Jelinek  <jakub@redhat.com>
12653         * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
12654         visited bitmap and its use.  Also punt on EDGE_ABNORMAL edges.
12656 2022-03-05  Roger Sayle  <roger@nextmovesoftware.com>
12657             Uroš Bizjak  <ubizjak@gmail.com>
12659         PR testsuite/104732
12660         * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
12661         Include DI mode unconditionally.
12662         (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
12663         i.e. always split on !TARGET_64BIT.
12664         (*<any_or>di3_doubleword): Likewise.
12665         (*one_cmpldi2_doubleword): Likewise.
12666         (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
12667         (<any_or><mode>3 expander): Likewise.
12668         (one_cmpl<mode>2 expander): Likewise.
12670 2022-03-05   Michael Meissner  <meissner@linux.ibm.com>
12672         PR target/104698
12673         * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
12674         (mtvsrdd_diti_w1): Delete.
12675         (extendditi2): Convert from define_expand to
12676         define_insn_and_split.  Replace with code to deal with both GPR
12677         registers and with altivec registers.
12679 2022-03-04  Segher Boessenkool  <segher@kernel.crashing.org>
12681         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
12682         bit.  Handle most older CPUs.
12684 2022-03-04  Iain Sandoe  <iain@sandoe.co.uk>
12686         * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
12687         avoid a mismatch with DECL_MD_FUNCTION_CODE().
12689 2022-03-04  Iain Sandoe  <iain@sandoe.co.uk>
12691         PR target/104117
12692         * config/rs6000/darwin.md (@machopic_high_<mode>): New.
12693         (@machopic_low_<mode>): New.
12694         * config/rs6000/predicates.md (macho_pic_address): New.
12695         * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
12696         apply the TLS processing to Darwin.
12697         * lra-constraints.cc (process_address_1): Revert the changes
12698         in r12-7209.
12700 2022-03-04  Peter Bergner  <bergner@linux.ibm.com>
12702         PR target/87496
12703         PR target/104208
12704         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
12705         ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
12706         -mlong-double-128.
12707         Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
12708         from here...
12709         * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
12710         ... to here.
12712 2022-03-04  Jakub Jelinek  <jakub@redhat.com>
12714         PR middle-end/104529
12715         * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
12716         on automatic objects which will be runtime initialized.
12718 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
12720         PR middle-end/100280
12721         PR middle-end/104132
12722         PR middle-end/104133
12723         * omp-low.cc (task_shared_vars): Rename to
12724         'make_addressable_vars'.  Adjust all users.
12725         (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
12726         'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
12728 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
12730         PR middle-end/100280
12731         * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
12732         * tree-core.h: Document it.
12733         * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
12734         'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
12735         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
12736         Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
12737         'TREE_ADDRESSABLE'.
12739 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
12741         PR middle-end/100280
12742         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
12743         Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
12744         '[...]' declared in block made addressable".
12746 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
12748         PR middle-end/100400
12749         PR middle-end/103836
12750         PR middle-end/104061
12751         * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
12752         Catch 'GIMPLE_DEBUG'.
12754 2022-03-04  Jakub Jelinek  <jakub@redhat.com>
12756         PR c/104627
12757         * tree.cc (warn_deprecated_use): For types prefer to use node
12758         and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
12759         NULL.
12761 2022-03-04  H.J. Lu  <hjl.tools@gmail.com>
12763         PR target/104704
12764         * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
12765         a pseudo register.
12767 2022-03-03  Martin Sebor  <msebor@redhat.com>
12769         PR middle-end/104761
12770         * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
12771         mark_dfs_back_edges.
12773 2022-03-03  Martin Liska  <mliska@suse.cz>
12775         * configure.ac: Use linker plug-in by default.
12776         * configure: Regenerate.
12778 2022-03-03  Martin Liska  <mliska@suse.cz>
12780         * configure.ac: Now ld.mold support LTO plugin API, use it.
12781         * configure: Regenerate.
12783 2022-03-03  Tom de Vries  <tdevries@suse.de>
12785         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
12787 2022-03-03  Tom de Vries  <tdevries@suse.de>
12789         PR target/104758
12790         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
12792 2022-03-03  Tom de Vries  <tdevries@suse.de>
12794         * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
12796 2022-03-03  Jakub Jelinek  <jakub@redhat.com>
12798         PR middle-end/104757
12799         * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
12800         gimplify_omp_for.
12801         (gimplify_expr) <case OMP_SIMD>: Temporarily disable
12802         gimplify_ctxp->into_ssa around call to gimplify_omp_for.
12804 2022-03-03  Jakub Jelinek  <jakub@redhat.com>
12806         PR middle-end/104558
12807         * calls.cc (store_one_arg): When not calling emit_push_insn
12808         because size_rtx is const0_rtx, call at least anti_adjust_stack
12809         on arg->locate.alignment_pad if !argblock and the alignment might
12810         be non-zero.
12812 2022-03-02  Alexandre Oliva  <oliva@adacore.com>
12814         * lra-constraints.cc (undo_optional_reloads): Recognize and
12815         drop insns of multi-word move sequences, tolerate removal
12816         iteration on an already-removed clobber, and refuse to
12817         substitute original pseudos into clobbers.
12819 2022-03-02  Qing Zhao  <qing.zhao@oracle.com>
12821         PR middle-end/102276
12822         * common.opt (-Wtrivial-auto-var-init): New option.
12823         * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
12824         (-ftrivial-auto-var-init): Update option;
12825         * gimplify.cc (emit_warn_switch_unreachable): New function.
12826         (warn_switch_unreachable_r): Rename to ...
12827         (warn_switch_unreachable_and_auto_init_r): This.
12828         (maybe_warn_switch_unreachable): Rename to ...
12829         (maybe_warn_switch_unreachable_and_auto_init): This.
12830         (gimplify_switch_expr): Update calls to renamed function.
12832 2022-03-02  Richard Biener  <rguenther@suse.de>
12834         PR rtl-optimization/104686
12835         * ira-color.cc (object_conflicts_with_allocno_p): New function
12836         using a bitvector test instead of iterating when possible.
12837         (allocnos_conflict_p): Choose the best allocno to iterate over
12838         object conflicts.
12839         (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
12840         last.
12842 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
12844         * cfg.cc (dump_edge_info): Dump goto_locus if present.
12846 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
12848         PR rtl-optimization/104589
12849         * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
12850         INSN_LOCATION comparison with goto_locus.
12852 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
12854         * tree-ssa-strlen.cc (strlen_pass::handle_assign,
12855         strlen_pass::before_dom_children): Comment spelling fixes.
12857 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
12859         * ipa-modref-tree.cc (modref_access_node::contains,
12860         modref_access_node::closer_pair_p, modref_access_node::insert,
12861         modref_access_node::insert_kill): Comment spelling fixes.
12862         * ipa-modref.cc: Likewise.
12863         (modref_summary::finalize, ignore_nondeterminism_p,
12864         class modref_access_analysis,
12865         modref_access_analysis::set_side_effects,
12866         modref_access_analysis::set_nondeterministic,
12867         modref_access_analysis::record_global_memory_load,
12868         modref_access_analysis::propagate, modref_access_analysis::analyze,
12869         struct escape_point, class modref_lattice, modref_lattice::merge,
12870         modref_lattice::merge_deref, class modref_eaf_analysis,
12871         modref_eaf_analysis::merge_call_lhs_flags,
12872         modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
12873         modref_eaf_analysis::record_escape_points, remap_kills,
12874         update_escape_summary, remove_useless_summaries,
12875         ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
12876         Likewise.
12877         * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
12878         Likewise.
12879         * ipa-modref-tree.h (enum modref_special_parms,
12880         struct modref_access_node): Likewise.
12882 2022-03-01  Jakub Jelinek  <jakub@redhat.com>
12884         PR tree-optimization/104715
12885         * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
12886         unnecessarily test if ptr is a SSA_NAME, it has to be.  Only push lhs
12887         of a call if gimple_call_return_arg is equal to ptr, not just when it
12888         is non-NULL.
12890 2022-03-01  Jakub Jelinek  <jakub@redhat.com>
12892         * gimple-ssa-warn-access.cc (warn_string_no_nul,
12893         maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
12894         matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
12895         pass_waccess::check_alloca, pass_waccess::check_strcat,
12896         memmodel_to_uhwi, fntype_argno_type,
12897         pass_waccess::maybe_check_access_sizes,
12898         pass_waccess::check_call_access,
12899         pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
12900         Comment spelling fixes.
12902 2022-03-01  Richard Biener  <rguenther@suse.de>
12904         PR tree-optimization/104716
12905         * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
12906         Check if we can copy the loop.
12908 2022-03-01  H.J. Lu  <hjl.tools@gmail.com>
12910         PR middle-end/104721
12911         * cfgexpand.cc (expand_gimple_basic_block): Clear
12912         currently_expanding_gimple_stmt when returning inside the loop.
12914 2022-03-01  Martin Liska  <mliska@suse.cz>
12916         PR ipa/104533
12917         * multiple_target.cc (get_attr_len): Move to tree.c.
12918         (expand_target_clones): Remove single value checking.
12919         * tree.cc (get_target_clone_attr_len): New fn.
12920         * tree.h (get_target_clone_attr_len): Likewise.
12922 2022-03-01  Martin Liska  <mliska@suse.cz>
12924         PR gcov-profile/104677
12925         * doc/invoke.texi: Document more .gcda file name generation.
12927 2022-03-01  Tom de Vries  <tdevries@suse.de>
12929         PR target/102429
12930         * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
12931         * config/nvptx/nvptx.md
12932         (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
12933         New predicate.
12934         (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
12935         Use nvptx_register_or_complex_di_df_register_operand.
12937 2022-03-01  Tom de Vries  <tdevries@suse.de>
12939         * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
12940         * config/nvptx/gen-copyright.sh: New file.
12941         * config/nvptx/gen-h.sh: New file.
12942         * config/nvptx/gen-opt.sh: New file.
12943         * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
12944         (TARGET_SM75, TARGET_SM80): Move ...
12945         * config/nvptx/nvptx-gen.h: ... here.  New file, generate.
12946         * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
12947         * config/nvptx/nvptx-gen.opt: ... here.  New file, generate.
12948         * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
12949         ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
12951 2022-03-01  Tom de Vries  <tdevries@suse.de>
12953         * config/nvptx/gen-omp-device-properties.sh: New file.
12954         * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
12956 2022-03-01  Tom de Vries  <tdevries@suse.de>
12958         * config/nvptx/nvptx-sm.def: New file.
12959         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
12960         * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
12961         * config/nvptx/nvptx.cc (sm_version_to_string)
12962         (nvptx_omp_device_kind_arch_isa): Same.
12964 2022-03-01  Robin Dapp  <rdapp@linux.ibm.com>
12966         PR rtl-optimization/104154
12967         * config/arc/arc.cc (gen_compare_reg):  Return the CC-mode
12968         comparison ifcvt passed us.
12970 2022-03-01  Hongyu Wang  <hongyu.wang@intel.com>
12972         PR target/104664
12973         * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
12974           Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
12976 2022-02-28  Roger Sayle  <roger@nextmovesoftware.com>
12978         PR tree-optimization/91384
12979         * config/i386/i386.md (peephole2): Eliminate final testl insn
12980         from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
12981         transforming using *negsi_2 for the negation.
12983 2022-02-28  Roger Sayle  <roger@nextmovesoftware.com>
12984             Eric Botcazou  <ebotcazou@adacore.com>
12986         PR middle-end/80270
12987         * expmed.cc (extract_integral_bit_field): If OP0 is a hard
12988         register, copy it to a pseudo before calling simplify_gen_subreg.
12990 2022-02-28  Vladimir N. Makarov  <vmakarov@redhat.com>
12992         PR rtl-optimization/104637
12993         * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
12994         as possible on one subpass.
12996 2022-02-28  Qing Zhao  <qing.zhao@oracle.com>
12998         PR middle-end/104550
12999         * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
13000         created uses.
13002 2022-02-28  Martin Liska  <mliska@suse.cz>
13004         PR ipa/104648
13005         * main.cc (main): Use flag_checking instead of CHECKING_P
13006         and run toplev::finalize only if there is not error seen.
13008 2022-02-28  Richard Biener  <rguenther@suse.de>
13010         * tree-ssa-pre.cc (compute_avail): Revert part of last change.
13012 2022-02-28  Richard Biener  <rguenther@suse.de>
13014         PR tree-optimization/104700
13015         * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
13016         into ...
13017         (find_or_generate_expression): ... here, simplifying code.
13019 2022-02-28  Tom de Vries  <tdevries@suse.de>
13021         * config/nvptx/nvptx-opts.h (enum ptx_version): Add
13022         PTX_VERSION_default.
13023         * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
13024         PTX_VERSION_default.
13025         * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
13027 2022-02-28  Richard Biener  <rguenther@suse.de>
13029         PR rtl-optimization/104686
13030         * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
13031         skipping bits that are zero.
13032         (ira_object_conflict_iter_cond): Likewise.
13034 2022-02-28  Hongyu Wang  <hongyu.wang@intel.com>
13036         * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
13037         (_mm512_ternarylogic_epi64): Truncate imm to unsigned
13038         char to avoid error when using ~enum as parameter.
13039         (_mm512_mask_ternarylogic_epi64): Likewise.
13040         (_mm512_maskz_ternarylogic_epi64): Likewise.
13041         (_mm512_ternarylogic_epi32): Likewise.
13042         (_mm512_mask_ternarylogic_epi32): Likewise.
13043         (_mm512_maskz_ternarylogic_epi32): Likewise.
13044         * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
13045         Adjust imm param type to unsigned char.
13046         (_mm256_mask_ternarylogic_epi64): Likewise.
13047         (_mm256_maskz_ternarylogic_epi64): Likewise.
13048         (_mm256_ternarylogic_epi32): Likewise.
13049         (_mm256_mask_ternarylogic_epi32): Likewise.
13050         (_mm256_maskz_ternarylogic_epi32): Likewise.
13051         (_mm_ternarylogic_epi64): Likewise.
13052         (_mm_mask_ternarylogic_epi64): Likewise.
13053         (_mm_maskz_ternarylogic_epi64): Likewise.
13054         (_mm_ternarylogic_epi32): Likewise.
13055         (_mm_mask_ternarylogic_epi32): Likewise.
13056         (_mm_maskz_ternarylogic_epi32): Likewise.
13058 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
13059             Marc Glisse  <marc.glisse@inria.fr>
13061         PR tree-optimization/104675
13062         * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
13063         Restrict simplifications to INTEGRAL_TYPE_P.
13065 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
13067         PR target/104681
13068         * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
13070 2022-02-25  Claudiu Zissulescu  <claziss@synopsys.com>
13072         * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
13073         comparison is not valid.
13074         * config/arc/arc.md (movsicc): Fail if comparison is not valid.
13075         (movdicc): Likewise.
13076         (movsfcc): Likewise.
13077         (movdfcc): Likewise.
13079 2022-02-25  Richard Biener  <rguenther@suse.de>
13081         PR tree-optimization/103037
13082         * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
13083         (vn_nary_length_from_stmt): Likewise.
13084         (init_vn_nary_op_from_stmt): Likewise.
13085         (vn_nary_op_compute_hash): Likewise.
13086         * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
13087         (vn_nary_length_from_stmt): Likewise.
13088         (init_vn_nary_op_from_stmt): Likewise.
13089         (vn_nary_op_compute_hash): Likewise.
13090         * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
13091         (get_or_alloc_expr_for_nary): Pass in the value-id to use,
13092         (re-)compute the hash value and if the expression is not
13093         found allocate it from pre_expr_obstack.
13094         (phi_translate_1): Do not insert the NARY found in the
13095         VN tables but build a PRE expression from the valueized
13096         NARY with the value-id we eventually found.
13097         (find_or_generate_expression): Assert we have an entry
13098         for constant values.
13099         (compute_avail): Insert not valueized expressions into
13100         EXP_GEN using the value-id from the VN tables.
13101         (init_pre): Allocate pre_expr_obstack.
13102         (fini_pre): Free pre_expr_obstack.
13104 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
13106         PR target/104674
13107         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
13108         * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
13109         SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
13111 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
13113         * warning-control.cc (get_nowarn_spec): Comment spelling fix.
13115 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
13117         PR middle-end/104679
13118         * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
13120 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
13122         PR tree-optimization/104675
13123         * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
13124         COMPLEX_TYPE.
13126 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
13128         PR target/104121
13129         PR target/103302
13130         * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
13132 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
13134         PR middle-end/104540
13135         * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
13136         dw_cfi_cfa_loc.
13138 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
13140         PR tree-optimization/103856
13141         * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
13142         eh edge to be requested through an extra parameter.
13143         (pass_harden_compares::execute): Copy PHI args in the EH dest
13144         block for the new EH edge added for the inverted compare.
13146 2022-02-24  Palmer Dabbelt  <palmer@rivosinc.com>
13148         * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
13149         of position independence that -mcmodel=medany affords.
13151 2022-02-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
13153         PR target/104656
13154         * configure.ac: --disable-gcov if targetting bpf-*.
13155         * configure: Regenerate.
13157 2022-02-24  Richard Biener  <rguenther@suse.de>
13159         PR tree-optimization/104676
13160         * tree-loop-distribution.cc (loop_distribution::execute):
13161         Do a full scev_reset.
13163 2022-02-24  Jakub Jelinek  <jakub@redhat.com>
13165         PR tree-optimization/104601
13166         * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
13167         non-SSA_NAME lhs value number vdef to itself instead of e.g. the
13168         vuse value number.
13170 2022-02-24  Tom de Vries  <tdevries@suse.de>
13171             Tobias Burnus  <tobias@codesourcery.com>
13173         * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
13174         sm_70, sm_75 and sm_80.
13175         * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
13177 2022-02-24  Tom de Vries  <tdevries@suse.de>
13179         * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
13180         "rotrsi3"): New define_insn.
13182 2022-02-24  Tom de Vries  <tdevries@suse.de>
13184         * config/nvptx/nvptx.cc (gen_comment): Use
13185         DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
13187 2022-02-24  liuhongt  <hongtao.liu@intel.com>
13189         * config/i386/sse.md (<code>v1ti3): Add suffix and replace
13190         isa attr of alternative 2 from avx to avx512vl.
13192 2022-02-23  Richard Biener  <rguenther@suse.de>
13193             Jakub Jelinek  <jakub@redhat.com>
13195         PR tree-optimization/104644
13196         * doc/match-and-simplify.texi: Amend ! documentation.
13197         * genmatch.cc (expr::gen_transform): Code-generate ! support
13198         for GENERIC.
13199         (parser::parse_expr): Allow ! for GENERIC.
13200         * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
13201         bswap.
13203 2022-02-23  Richard Biener  <rguenther@suse.de>
13205         PR tree-optimization/101636
13206         * tree-vect-slp.cc (vect_print_slp_tree): Dump the
13207         vector type of the node.
13208         (vect_slp_analyze_operations): Make sure the CTOR
13209         is vectorized with an expected type.
13210         (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
13212 2022-02-23  Jakub Jelinek  <jakub@redhat.com>
13214         PR c/104633
13215         * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
13216         Don't warn about calls to corresponding builtin from extern inline
13217         gnu_inline wrappers.
13219 2022-02-23  Roger Sayle  <roger@nextmovesoftware.com>
13221         PR target/104489
13222         * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
13224 2022-02-23  Christophe Lyon  <christophe.lyon@arm.com>
13226         PR target/100757
13227         PR target/101325
13228         * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
13229         typo.
13231 2022-02-23  Cui,Lili  <lili.cui@intel.com>
13233         * doc/invoke.texi: Update documents for Intel architectures.
13235 2022-02-22  Roger Sayle  <roger@nextmovesoftware.com>
13237         * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
13238         bootstrap.
13240 2022-02-22  Thomas Schwinge  <thomas@codesourcery.com>
13242         * omp-low.cc (omp_build_component_ref): Move function...
13243         * omp-general.cc (omp_build_component_ref): ... here.  Remove
13244         'static'.
13245         * omp-general.h (omp_build_component_ref): Declare function.
13246         * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
13247         function.
13248         (build_receiver_ref, build_sender_ref): Call
13249         'omp_build_component_ref' instead.
13251 2022-02-22  Thomas Schwinge  <thomas@codesourcery.com>
13253         * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
13254         simplify.  Adjust all users.
13256 2022-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
13258         PR target/88134
13259         * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
13260         atomic_update_decl): Add GTY markup.
13262 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13264         * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
13266 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13268         PR target/100757
13269         PR target/101325
13270         * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
13271         predicate.
13272         (CX_BINARY_UNONE_QUALIFIERS): Likewise.
13273         (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
13274         (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
13275         (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
13276         (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
13277         * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
13278         * config/arm/mve.md: Use VxBI instead of HI.
13280 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13282         PR target/100757
13283         PR target/101325
13284         * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
13285         qualifier.
13286         (STRSBU_P_QUALIFIERS): Likewise.
13287         (LDRGBS_Z_QUALIFIERS): Likewise.
13288         (LDRGBU_Z_QUALIFIERS): Likewise.
13289         (LDRGBWBXU_Z_QUALIFIERS): Likewise.
13290         (LDRGBWBS_Z_QUALIFIERS): Likewise.
13291         (LDRGBWBU_Z_QUALIFIERS): Likewise.
13292         (STRSBWBS_P_QUALIFIERS): Likewise.
13293         (STRSBWBU_P_QUALIFIERS): Likewise.
13294         * config/arm/mve.md: Use VxBI instead of HI.
13296 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13298         PR target/100757
13299         PR target/101325
13300         * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
13301         (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
13302         (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
13303         (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
13304         (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
13305         (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
13306         (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
13307         (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
13308         (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
13309         (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
13310         (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
13311         (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
13312         (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
13313         (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
13314         (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
13315         (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
13316         (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
13317         (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
13318         (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
13319         (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
13320         (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
13321         (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
13322         (STRS_P_QUALIFIERS): Use predicate qualifier.
13323         (STRU_P_QUALIFIERS): Likewise.
13324         (STRSU_P_QUALIFIERS): Likewise.
13325         (STRSS_P_QUALIFIERS): Likewise.
13326         (LDRGS_Z_QUALIFIERS): Likewise.
13327         (LDRGU_Z_QUALIFIERS): Likewise.
13328         (LDRS_Z_QUALIFIERS): Likewise.
13329         (LDRU_Z_QUALIFIERS): Likewise.
13330         (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
13331         (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
13332         (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
13333         (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
13334         * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
13335         * config/arm/mve.md: Use MVE_VPRED instead of HI.
13337 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13339         PR target/100757
13340         PR target/101325
13341         * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
13342         Delete.
13343         (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
13344         (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
13345         (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
13346         * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
13347         predicated qualifiers.
13348         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
13349         (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
13351 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13353         PR target/100757
13354         * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
13355         (arm_expand_vector_compare): Update prototype.
13356         * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
13357         (arm_vector_mode_supported_p): Add support for VxBI modes.
13358         (arm_expand_vector_compare): Remove useless generation of vpsel.
13359         (arm_expand_vcond): Fix select operands.
13360         (arm_get_mask_mode): New.
13361         * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
13362         (vec_cmpu<mode><MVE_vpred>): New.
13363         (vcond_mask_<mode><MVE_vpred>): New.
13364         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
13365         (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
13366         * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
13367         (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
13368         and disable for MVE.
13369         * doc/sourcebuild.texi (arm_mve): Document new effective-target.
13371 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13373         PR target/100757
13374         PR target/101325
13375         * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
13376         (BINOP_PRED_NONE_NONE_QUALIFIERS)
13377         (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
13378         (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
13379         * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
13380         * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
13381         modes.
13382         (arm_mode_to_pred_mode): New.
13383         (arm_expand_vector_compare): Use the right VxBI mode instead of
13384         HI.
13385         (arm_expand_vcond): Likewise.
13386         (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
13387         (mve_bool_vec_to_const): New.
13388         (neon_make_constant): Call mve_bool_vec_to_const when needed.
13389         * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
13390         (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
13391         (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
13392         (vpselq_s, vpselq_f): Use new predicated qualifiers.
13393         * config/arm/constraints.md (DB): New.
13394         * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
13395         (MVE_VPRED, MVE_vpred): New attribute iterators.
13396         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
13397         (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
13398         (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
13399         (@mve_vpselq_<supf>v2di): Define separately.
13400         (mov<mode>): New expander for VxBI modes.
13401         * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
13402         MVE_7_HI iterator and add support for DB constraint.
13404 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13405             Richard Sandiford  <richard.sandiford@arm.com>
13407         PR target/100757
13408         PR target/101325
13409         * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
13410         VNx2BI): Update definition.
13411         * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
13412         simd types.
13413         (arm_init_builtin): Map predicate vectors arguments to HImode.
13414         (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
13415         rtx. Move return value to HImode rtx.
13416         * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
13417         * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
13418         * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
13419         Pred2x8_t,Pred4x4_t): New.
13420         * emit-rtl.cc (init_emit_once): Handle all boolean modes.
13421         * genmodes.cc (mode_data): Add boolean field.
13422         (blank_mode): Initialize it.
13423         (make_complex_modes): Fix handling of boolean modes.
13424         (make_vector_modes): Likewise.
13425         (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
13426         (make_vector_bool_mode): Likewise.
13427         (BOOL_MODE): New.
13428         (make_bool_mode): New.
13429         (emit_insn_modes_h): Fix generation of boolean modes.
13430         (emit_class_narrowest_mode): Likewise.
13431         * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
13432         parameter.  Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
13433         define BImode.
13434         * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
13435         Fix handling of constm1_rtx for VECTOR_BOOL.
13436         * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
13437         (native_decode_vector_rtx): Likewise.
13438         (test_vector_ops_duplicate): Skip vec_merge test
13439         with vectors of booleans.
13440         * varasm.cc (output_constant_pool_2): Likewise.
13442 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13444         * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
13445         for operand 1.
13447 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13449         * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
13451 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
13453         * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
13454         (REG_CLASS_NAMES): Likewise.
13455         (REG_CLASS_CONTENTS): Likewise.
13456         (CLASS_MAX_NREGS): Handle VPR.
13457         * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
13459 2022-02-22  Tobias Burnus  <tobias@codesourcery.com>
13460             Tom de Vries  <tdevries@suse.de>
13462         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
13463         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
13464         Likewise.
13465         * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
13467 2022-02-22  Tobias Burnus  <tobias@codesourcery.com>
13468             Tom de Vries  <tdevries@suse.de>
13470         * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
13471         * doc/invoke.texi (-mptx): Update for new values and defaults.
13473 2022-02-22  Tom de Vries  <tdevries@suse.de>
13475         * config/nvptx/nvptx.cc (gen_comment): New function.
13476         (workaround_uninit_method_1, workaround_uninit_method_2)
13477         (workaround_uninit_method_3): : Use gen_comment.
13478         * config/nvptx/nvptx.opt (mptx-comment): New option.
13480 2022-02-22  Richard Biener  <rguenther@suse.de>
13482         * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
13483         for a splat.
13485 2022-02-22  Roger Sayle  <roger@nextmovesoftware.com>
13486             Richard Biener  <rguenther@suse.de>
13488         * fold-const.cc (ctor_single_nonzero_element): New function to
13489         return the single non-zero element of a (vector) constructor.
13490         * fold-const.h (ctor_single_nonzero_element): Prototype here.
13491         * match.pd (reduc (constructor@0)): Simplify reductions of a
13492         constructor containing a single non-zero element.
13493         (reduc (@0 op VECTOR_CST) ->  (reduc @0) op CONST): Simplify
13494         reductions of vector operations of the same operator with
13495         constant vector operands.
13497 2022-02-22  Jakub Jelinek  <jakub@redhat.com>
13499         PR tree-optimization/104604
13500         * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
13501         Only check if gimple_assign_rhs1 is COMPLEX_CST if
13502         gimple_assign_rhs_code is COMPLEX_CST.
13504 2022-02-22  Jakub Jelinek  <jakub@redhat.com>
13506         PR target/104612
13507         * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
13508         on input operands before calling lowpart_subreg on it.  For output
13509         operand, use a vmode pseudo as destination and then move its lowpart
13510         subreg into operands[0] if lowpart_subreg fails on dest.
13511         (ix86_expand_xorsign): Likewise.
13513 2022-02-22  Richard Biener  <rguenther@suse.de>
13515         PR tree-optimization/104582
13516         PR target/99881
13517         * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
13518         Cost GPR to vector register moves for integer vector construction.
13520 2022-02-22  Richard Biener  <rguenther@suse.de>
13522         PR tree-optimization/104582
13523         * tree-vectorizer.h (stmt_info_for_cost::node): New field.
13524         (vector_costs::add_stmt_cost): Add SLP node parameter.
13525         (dump_stmt_cost): Likewise.
13526         (add_stmt_cost): Likewise, new overload and adjust.
13527         (add_stmt_costs): Adjust.
13528         (record_stmt_cost): New overload.
13529         * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
13530         (vector_costs::add_stmt_cost): Adjust.
13531         * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
13532         Adjust.
13533         * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
13534         the SLP node for costing.
13535         (vectorizable_slp_permutation): Likewise.
13536         * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
13537         new overloads.
13538         * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
13539         Adjust.
13540         * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
13541         Adjust.
13542         * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
13543         Adjust.
13544         (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
13546 2022-02-22  Richard Biener  <rguenther@suse.de>
13548         PR tree-optimization/104582
13549         * tree-vectorizer.h (add_stmt_cost): New overload.
13550         (record_stmt_cost): Likewise.
13551         * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
13552         Use add_stmt_costs.
13553         (vect_get_known_peeling_cost): Use new overloads.
13554         (vect_estimate_min_profitable_iters): Likewise.  Consistently
13555         use scalar_stmt for costing versioning checks.
13556         * tree-vect-stmts.cc (record_stmt_cost): New overload.
13558 2022-02-22  Hongyu Wang  <hongyu.wang@intel.com>
13560         PR target/103069
13561         * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
13562         Split atomic fetch and loop part.
13563         (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
13564         * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
13565         prototype.
13566         * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
13567         expander under TARGET_RELAX_CMPXCHG_LOOP.
13568         (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
13570 2022-02-21  Dan Li  <ashimida@linux.alibaba.com>
13572         * config/aarch64/aarch64.cc (SLOT_REQUIRED):
13573         Change wb_candidate[12] to wb_push_candidate[12].
13574         (aarch64_layout_frame): Likewise, and
13575         change callee_adjust when scs is enabled.
13576         (aarch64_save_callee_saves):
13577         Change wb_candidate[12] to wb_push_candidate[12].
13578         (aarch64_restore_callee_saves):
13579         Change wb_candidate[12] to wb_pop_candidate[12].
13580         (aarch64_get_separate_components):
13581         Change wb_candidate[12] to wb_push_candidate[12].
13582         (aarch64_expand_prologue): Push x30 onto SCS before it's
13583         pushed onto stack.
13584         (aarch64_expand_epilogue): Pop x30 frome SCS, while
13585         preventing it from being popped from the regular stack again.
13586         (aarch64_override_options_internal): Add SCS compile option check.
13587         (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
13588         * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
13589         wb_pop_candidate[12], and rename wb_candidate[12] to
13590         wb_push_candidate[12].
13591         * config/aarch64/aarch64.md (scs_push): New template.
13592         (scs_pop): Likewise.
13593         * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
13594         * doc/tm.texi: Regenerate.
13595         * doc/tm.texi.in: Add hook have_shadow_call_stack.
13596         * flag-types.h (enum sanitize_code):
13597         Add SANITIZE_SHADOW_CALL_STACK.
13598         * opts.cc (parse_sanitizer_options): Add shadow-call-stack
13599         and exclude SANITIZE_SHADOW_CALL_STACK.
13600         * target.def: New hook.
13601         * toplev.cc (process_options): Add SCS compile option check.
13602         * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
13604 2022-02-21  Tom de Vries  <tdevries@suse.de>
13606         PR target/104440
13607         * config/nvptx/nvptx.cc (workaround_uninit_method_1)
13608         (workaround_uninit_method_2, workaround_uninit_method_3)
13609         (workaround_uninit): New function.
13610         (nvptx_reorg): Use workaround_uninit.
13611         * config/nvptx/nvptx.opt (minit-regs): New option.
13613 2022-02-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13615         PR rtl-optimization/104498
13616         * alias.cc (compare_base_symbol_refs): Correct distance computation
13617         when swapping x and y.
13619 2022-02-21  Andrew Pinski  <apinski@marvell.com>
13621         PR c/104506
13622         * tree-ssa.cc (tree_ssa_useless_type_conversion):
13623         Check the inner type before calling useless_type_conversion_p.
13625 2022-02-19  Tom de Vries  <tdevries@suse.de>
13627         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
13628         * config/nvptx/nvptx.md
13629         (define_insn "nvptx_atomic_store<mode>"): Rename to ...
13630         (define_insn "nvptx_atomic_store_sm70<mode>"): This.
13631         (define_insn "nvptx_atomic_store<mode>"): New define_insn.
13632         (define_expand "atomic_store<mode>"): Handle rename.  Use
13633         nvptx_atomic_store instead of atomic_exchange.
13635 2022-02-19  Tom de Vries  <tdevries@suse.de>
13637         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
13638         insns with atomic attribute.  Assert that all handled insns are
13639         PARALLELs.
13640         * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
13641         Set atomic attribute to false.
13643 2022-02-19  Tom de Vries  <tdevries@suse.de>
13645         * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
13646         type to bool.
13647         (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
13648         nvptx_warpsync, if necessary.
13650 2022-02-19  Jakub Jelinek  <jakub@redhat.com>
13652         PR sanitizer/102656
13653         * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
13654         known to be within bounds, treat it like automatic variables.
13655         If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
13656         current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
13657         it addressable.
13659 2022-02-18  Pat Haugen  <pthaugen@linux.ibm.com>
13661         * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
13662         (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
13663         mpower10-fusion-logical-add, mpower10-fusion-add-logical,
13664         mpower10-fusion-2add, mpower10-fusion-2store): Remove.
13665         * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
13666         OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
13667         * config/rs6000/rs6000.cc (rs6000_option_override_internal,
13668         power10_sched_reorder): Likewise.
13669         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
13670         gen_addadd): Likewise
13671         * config/rs6000/fusion.md: Regenerate.
13673 2022-02-18  Jakub Jelinek  <jakub@redhat.com>
13675         PR target/104257
13676         PR target/104598
13677         * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
13678         rather than __posix_memalign.
13680 2022-02-18  Richard Biener  <rguenther@suse.de>
13682         PR target/104581
13683         * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
13684         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
13685         of calling ix86_avx_u128_mode_source which would eventually
13686         have returned AVX_U128_ANY in some very special case.
13688 2022-02-18  Richard Biener  <rguenther@suse.de>
13690         PR tree-optimization/96881
13691         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
13692         CLOBBER handling.
13693         (control_parents_preserved_p): New function.
13694         (eliminate_unnecessary_stmts): Check that we preserved control
13695         parents before retaining a CLOBBER.
13696         (perform_tree_ssa_dce): Pass down aggressive flag
13697         to eliminate_unnecessary_stmts.
13699 2022-02-17  Jason Merrill  <jason@redhat.com>
13701         * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
13702         on TYPE_MAIN_VARIANT.
13704 2022-02-17  Paul A. Clarke  <pc@us.ibm.com>
13706         PR target/104257
13707         * config/rs6000/bmi2intrin.h: Uglify local variables.
13708         * config/rs6000/emmintrin.h: Likewise.
13709         * config/rs6000/mm_malloc.h: Likewise.
13710         * config/rs6000/mmintrin.h: Likewise.
13711         * config/rs6000/pmmintrin.h: Likewise.
13712         * config/rs6000/smmintrin.h: Likewise.
13713         * config/rs6000/tmmintrin.h: Likewise.
13714         * config/rs6000/xmmintrin.h: Likewise.
13716 2022-02-17  Robin Dapp  <rdapp@linux.ibm.com>
13718         PR target/104335
13719         * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
13720         if the expected comparison's first operand is of mode MODE_CC.
13722 2022-02-17  Vladimir N. Makarov  <vmakarov@redhat.com>
13724         PR rtl-optimization/104447
13725         * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
13726         hard reg set by lra_no_alloc_regs.
13728 2022-02-17  liuhongt  <hongtao.liu@intel.com>
13730         PR tree-optimization/104551
13731         PR tree-optimization/103771
13732         * match.pd (cond_expr_convert_p): Add types_match check when
13733         convert is extension.
13734         * tree-vect-patterns.cc
13735         (gimple_cond_expr_convert_p): Adjust comments.
13736         (vect_recog_cond_expr_convert_pattern): Ditto.
13738 2022-02-17  Jakub Jelinek  <jakub@redhat.com>
13740         PR debug/104557
13741         * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
13742         if expr has VOIDmode.
13744 2022-02-17  liuhongt  <hongtao.liu@intel.com>
13746         * config/i386/cpuid.h (bit_MPX): Removed.
13747         (bit_BNDREGS): Ditto.
13748         (bit_BNDCSR): Ditto.
13750 2022-02-17  Michael Meissner  <meissner@the-meissners.org>
13752         PR target/99708
13753         * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
13754         __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
13755         Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
13756         is created.
13758 2022-02-16  Andrew MacLeod  <amacleod@redhat.com>
13760         * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
13761         range_compatible_p instead of direct type comparison.
13763 2022-02-16  Jakub Jelinek  <jakub@redhat.com>
13765         PR rtl-optimization/104544
13766         * combine.cc (try_combine): When looking for insn whose links
13767         should be updated from i3 to i2, don't stop on debug insns, instead
13768         skip over them.
13770 2022-02-16  Richard Sandiford  <richard.sandiford@arm.com>
13772         PR target/100056
13773         * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
13774         * config/aarch64/aarch64.md: Extend the PR100056 patterns
13775         to handle plus in the same way as ior, if the operands have
13776         no set bits in common.
13778 2022-02-15  Andrew MacLeod  <amacleod@redhat.com>
13780         PR tree-optimization/104526
13781         * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
13782         new routine.
13783         * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
13784         of dependency chain if there isn't one.
13785         (gori_compute::condexpr_adjust): New.
13786         * gimple-range-gori.h (class gori_compute): New prototype.
13788 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
13790         PR target/100874
13791         * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
13792         Declare.
13793         * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
13794         * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
13796 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
13798         * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
13799         (vect_scalar_ops_slice_hash): Likewise.
13800         (vect_scalar_ops_slice::op): New function.
13801         * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
13802         (vect_scalar_ops_slice_hash::hash): Likewise.
13803         (vect_scalar_ops_slice_hash::equal): Likewise.
13804         (vect_prologue_cost_for_slp): Check for duplicate vectors.
13805         * config/aarch64/aarch64.cc
13806         (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
13807         (aarch64_aligned_constant_offset_p): New function.
13808         (aarch64_stp_sequence_cost): Likewise.
13809         (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
13810         (aarch64_vector_costs::finish_cost): Likewise.
13812 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
13814         * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
13815         use after free.
13817 2022-02-15  Richard Biener  <rguenther@suse.de>
13819         PR tree-optimization/104543
13820         * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
13821         come after the inner loop.
13823 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
13825         PR target/104536
13826         * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
13827         cannot instead of can%'t in diagnostics.  Formatting fixes.
13829 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
13831         PR middle-end/104522
13832         * fold-const.h (native_interpret_real): Declare.
13833         * fold-const.cc (native_interpret_real): No longer static.  Don't
13834         perform MODE_COMPOSITE_P verification here.
13835         (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
13836         for all modes.
13837         * gimple-fold.cc (clear_padding_type): Call native_interpret_real
13838         instead of native_interpret_expr.
13839         * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
13840         and comparison verification for all FLOAT_MODE_P modes, not just
13841         MODE_COMPOSITE_P.
13843 2022-02-15  Richard Biener  <rguenther@suse.de>
13845         PR tree-optimization/104519
13846         * fold-const.cc (multiple_of_p): Remove never true condition.
13847         * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
13848         the appropriate types for determining whether the difference
13849         of final and base is a multiple of the step.
13851 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
13853         PR debug/104517
13854         * omp-low.cc (task_cpyfns): New variable.
13855         (delete_omp_context): Don't call finalize_task_copyfn from here.
13856         (create_task_copyfn): Push task_stmt into task_cpyfns.
13857         (execute_lower_omp): Call finalize_task_copyfn here on entries from
13858         task_cpyfns vector and release the vector.
13860 2022-02-14  Martin Sebor  <msebor@redhat.com>
13862         PR middle-end/104355
13863         * doc/invoke.texi (-Warray-bounds): Update documentation.
13865 2022-02-14  Michael Meissner  <meissner@the-meissners.org>
13867         PR target/104253
13868         * config/rs6000/rs6000.cc (init_float128_ibm): Update the
13869         conversion functions used to convert IFmode types.
13871 2022-02-14  Andrew Stubbs  <ams@codesourcery.com>
13873         * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
13875 2022-02-14  Richard Biener  <rguenther@suse.de>
13877         PR tree-optimization/104528
13878         * tree-ssa.h (find_released_ssa_name): Declare.
13879         * tree-ssa.cc (find_released_ssa_name): Export.
13880         * cfgloop.cc (verify_loop_structure): Look for released
13881         SSA names in loops nb_iterations.
13882         * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
13883         estimates.
13885 2022-02-14  Richard Biener  <rguenther@suse.de>
13887         PR tree-optimization/104511
13888         * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
13889         touching DFP <-> FP conversions.
13891 2022-02-14  Richard Biener  <rguenther@suse.de>
13893         PR middle-end/104497
13894         * gimplify.cc (gimplify_compound_lval): Make sure the
13895         base is a non-register if needed and possible.
13897 2022-02-13  liuhongt  <hongtao.liu@intel.com>
13899         PR target/103771
13900         * match.pd (cond_expr_convert_p): New match.
13901         * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
13902         (vect_recog_cond_expr_convert_pattern): New.
13904 2022-02-12  Jakub Jelinek  <jakub@redhat.com>
13906         PR sanitizer/104449
13907         * asan.cc: Include tree-eh.h.
13908         (handle_builtin_alloca): Handle the case when __builtin_alloca or
13909         __builtin_alloca_with_align can throw.
13911 2022-02-12  Jakub Jelinek  <jakub@redhat.com>
13913         PR target/104502
13914         * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
13915         and AVX512VL isn't available, move operands[1] to operands[0] first.
13917 2022-02-12  Uroš Bizjak  <ubizjak@gmail.com>
13919         PR target/79754
13920         * config/i386/i386.cc (type_natural_mode):
13921         Skip decimal float vector modes.
13923 2022-02-11  Iain Sandoe  <iain@sandoe.co.uk>
13924             Vladimir Makarov  <vmakarov@redhat.com>
13926         PR target/104117
13927         * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
13928         Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
13929         emitting PIC code.
13930         (legitimate_lo_sum_address_p): Likewise.
13931         * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
13932         load from an invalid lo_sum address.
13934 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
13936         PR tree-optimization/104499
13937         * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
13938         of convert.
13940 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
13942         * tree.cc (build_common_builtin_nodes): Fix up formatting in
13943         __builtin_clear_padding decl creation.
13944         * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
13945         for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
13946         argument rather than in 3rd argument.
13947         (gimplify_call_expr): Likewise.  Fix up comment formatting.
13948         * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
13949         2 arguments instead of 3, take for_auto_init from the value
13950         of 2nd argument.
13952 2022-02-11  Vladimir N. Makarov  <vmakarov@redhat.com>
13954         PR rtl-optimization/104400
13955         * lra-constraints.cc (process_alt_operands): Don't make union of
13956         this_alternative_exclude_start_hard_regs when reg class in insn
13957         alternative covers other reg classes in the same alternative.
13959 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
13961         PR middle-end/104446
13962         * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
13963         operands.
13965 2022-02-11  Richard Biener  <rguenther@suse.de>
13967         PR middle-end/104496
13968         * internal-fn.cc (vectorized_internal_fn_supported_p):
13969         Bail out for integer mode vector types.
13971 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
13973         PR rtl-optimization/104459
13974         * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
13975         moving DEBUG_INSNs between bbs.
13977 2022-02-11  liuhongt  <hongtao.liu@intel.com>
13979         PR tree-optimization/104479
13980         * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
13981         for the dest of uncond_op.
13983 2022-02-11  Tom de Vries  <tdevries@suse.de>
13985         PR target/104456
13986         * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
13987         insn.
13989 2022-02-10  Qing Zhao  <qing.zhao@oracle.com>
13991         PR middle-end/100775
13992         * function.cc (gen_call_used_regs_seq): Call
13993         df_update_exit_block_uses when updating df.
13995 2022-02-10  Uroš Bizjak  <ubizjak@gmail.com>
13997         PR target/104469
13998         * config/i386/sse.md (vec_unpacks_float_lo_v4si):
13999         Change operand 1 constraint to register_operand.
14001 2022-02-10  Richard Biener  <rguenther@suse.de>
14003         PR tree-optimization/104373
14004         * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
14005         walk kind.
14006         * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
14007         walk kind as argument.
14008         (run_rpo_vn): Adjust.
14009         (pass_fre::execute): Likewise.
14010         * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
14011         blocks not reachable.
14012         (execute_late_warn_uninitialized): Mark all edges as
14013         executable.
14014         (execute_early_warn_uninitialized): Use VN to compute
14015         executable edges.
14016         (pass_data_early_warn_uninitialized): Enable a dump file,
14017         change dump name to warn_uninit.
14019 2022-02-10  Richard Biener  <rguenther@suse.de>
14021         PR middle-end/104467
14022         * match.pd (vector extract simplification): Multiply the
14023         number of CTOR elements with the number of element elements.
14025 2022-02-10  Richard Biener  <rguenther@suse.de>
14027         PR tree-optimization/104466
14028         * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
14029         for the MR_DEPENDENCE checks as intended.
14031 2022-02-10  Tom de Vries  <tdevries@suse.de>
14033         * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
14034         define_insn.
14035         (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
14036         TARGET_SM70.
14037         (define_c_enum "unspecv"): Add UNSPECV_ST.
14039 2022-02-10  Tom de Vries  <tdevries@suse.de>
14041         * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
14042         * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
14043         (nvptx_mem_maybe_shared_p): New function.
14044         * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
14045         define_expand.
14047 2022-02-10  Tom de Vries  <tdevries@suse.de>
14049         PR target/97005
14050         * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
14051         driver JIT bug by using sub.s16 instead of sub.u16.
14053 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
14055         * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
14056         floating point constants as operands 1 and/or 2.
14058 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
14060         PR target/104345
14061         * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
14062         (sel_false<mode>): Likewise.
14063         (define_code_iterator eqne): New code iterator for EQ and NE.
14064         (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
14065         the negation of a selp instruction.
14066         (*selp<mode>_not_<code>): New define_insn_and_split to optimize
14067         the bitwise not of a selp instruction.
14068         (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
14070 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
14072         * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
14073         in machine description.
14074         (logic): Move code attribute earlier in machine description.
14075         (ilogic): New code attribute, like logic but "ior" for IOR.
14076         (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
14077         (<ilogic><mode>3): New define_insn for HSDIM logic operations.
14078         (<ilogic>bi3): New define_insn for BI mode logic operations.
14079         (define_split): Lower logic operations from integer modes to
14080         BI mode predicate operations.
14082 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
14084         * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
14085         (one_cmplbi2): New define_insn for not.pred.
14086         (mulditi3): New define_expand for signed widening multiply.
14087         (umulditi3): New define_expand for unsigned widening multiply.
14088         (smul<mode>3_highpart): New define_insn for signed highpart mult.
14089         (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
14090         (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
14091         (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
14092         (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
14093         (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
14094         (*setcc<mode>_from_not_bi): New define_insn.
14095         (*setcc_isinf<mode>): New define_insn for testp.infinite.
14096         (isinf<mode>2): New define_expand.
14098 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
14100         * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
14101         (setcc<mode>_from_bi): Additionally support QImode.
14102         (extendbi<mode>2): Additionally support QImode.
14103         (zero_extendbi<mode>2): Additionally support QImode.
14104         (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
14105         iterators for signed and unsigned, binary and unary operations.
14106         (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
14107         expanders to perform QImode operations using SImode instructions.
14108         (cstoreqi4): New define_expand.
14109         (*ext_truncsi2_qi): New define_insn.
14110         (*zext_truncsi2_qi): New define_insn.
14112 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
14114         * config/nvptx/nvptx.md (*cmpf): New define_insn.
14115         (cstorehf4): New define_expand.
14116         (fmahf4): New define_insn.
14117         (neghf2): New define_insn.
14118         (abshf2): New define_insn.
14120 2022-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
14122         * doc/install.texi (Specific): Change the www.bitwizard.nl
14123         reference to use https.
14125 2022-02-10  Marcel Vollweiler  <marcel@codesourcery.com>
14127         * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
14128         OMP_CLAUSE_HAS_DEVICE_ADDR
14129         and handle array sections.
14130         (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
14131         * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
14132         (lower_omp_target): Same.
14133         * tree-core.h (enum omp_clause_code): Same.
14134         * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
14135         (convert_local_omp_clauses): Same.
14136         * tree-pretty-print.cc (dump_omp_clause): Same.
14137         * tree.cc: Same.
14139 2022-02-10  Eugene Rozenfeld  <erozen@microsoft.com>
14141         * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
14142         that will result in direct recursive calls.
14144 2022-02-10  Andrew Pinski  <apinski@marvell.com>
14146         PR target/104474
14147         * config/aarch64/aarch64.cc
14148         (aarch64_sve_expand_vector_init_handle_trailing_constants):
14149         Use CONST0_RTX instead of const0_rtx for the non-constant elements.
14151 2022-02-09  Uroš Bizjak  <ubizjak@gmail.com>
14153         PR target/104462
14154         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
14155         Also include OPTION_MASK_ISA2_AVX2_UNSET.
14157 2022-02-09  Uroš Bizjak  <ubizjak@gmail.com>
14159         PR target/104458
14160         * config/i386/i386-expand.cc (ix86_split_idivmod):
14161         Force operands[2] and operands[3] into a register..
14163 2022-02-09  Jeff Law  <jeffreyalaw@gmail.com>
14165         PR target/97040
14166         * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
14167         (*v850_fnmssf4): Renamed from fnmssf4
14169 2022-02-09  Ian Lance Taylor  <iant@golang.org>
14171         * godump.cc (go_force_record_alignment): Really name the alignment
14172         field "_" (complete 2021-12-29 change).
14174 2022-02-09  Bill Schmidt  <wschmidt@linux.ibm.com>
14176         * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
14177         function prototype.
14178         (VREPLACE_UN_UV4SI): Likewise.
14179         (VREPLACE_UN_V2DF): Likewise.
14180         (VREPLACE_UN_V2DI): Likewise.
14181         (VREPLACE_UN_V4SF): Likewise.
14182         (VREPLACE_UN_V4SI): Likewise.
14183         * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
14184         function prototypes.
14185         * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
14186         (vreplace_un_<mode>): New define_insn.
14188 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
14190         * config/aarch64/iterators.md (VDCSIF): New mode iterator.
14191         (VDBL): Handle SF.
14192         (single_wx, single_type, single_dtype, dblq): New mode attributes.
14193         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
14194         from VDC to VDCSIF.
14195         (store_pair_lanes<mode>): Likewise.
14196         (*aarch64_combine_internal<mode>): Likewise.
14197         (*aarch64_combine_internal_be<mode>): Likewise.
14198         (*aarch64_combinez<mode>): Likewise.
14199         (*aarch64_combinez_be<mode>): Likewise.
14200         * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
14201         8-byte modes for ADDR_QUERY_LDP_STP_N.
14202         (aarch64_print_operand): Likewise for %y.
14204 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
14206         * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
14207         Use aarch64_combine instead of move_lo/hi_quad.  Tabify.
14208         (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
14209         (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
14210         (vec_pack_trunc_<mode>): Take general_operand elements and use
14211         aarch64_combine rather than move_lo/hi_quad to combine them.
14212         (vec_pack_trunc_df): Likewise.
14214 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
14216         * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
14217         Delete.
14218         * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
14219         to...
14220         (*aarch64_combinez<mode>): ...this.
14221         (@aarch64_combinez_be<mode>): Rename to...
14222         (*aarch64_combinez_be<mode>): ...this.
14223         (@aarch64_vec_concat<mode>): New expander.
14224         (aarch64_combine<mode>): Use it.
14225         (@aarch64_simd_combine<mode>): Delete.
14226         * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
14227         (aarch64_expand_vector_init): Use aarch64_vec_concat.
14229 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
14231         * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
14232         New predicate.
14233         * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
14234         (*aarch64_combine_internal_be<mode>): New patterns.
14236 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
14238         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
14239         (move_lo_quad_internal_be_<mode>): Delete.
14240         (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
14242 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
14244         * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
14245         Declare.
14246         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
14247         aarch64_mergeable_load_pair_p instead of inline check.
14248         * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
14249         (aarch64_check_consecutive_mems): Allow the reversed parameter
14250         to be null.
14251         (aarch64_mergeable_load_pair_p): New function.
14253 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
14255         * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
14256         element to be an aarch64_simd_nonimmediate_operand.
14258 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
14260         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
14261         aarch64_simd_nonimmediate_operand instead of
14262         aarch64_simd_general_operand.
14263         (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
14264         general_operand.
14265         (@aarch64_combinez_be<mode>): Likewise.
14267 2022-02-09  Richard Biener  <rguenther@suse.de>
14269         PR middle-end/104464
14270         * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
14271         throwing check to after unproblematic replacement.
14273 2022-02-09  Roger Sayle  <roger@nextmovesoftware.com>
14275         PR tree-optimization/104420
14276         * match.pd (mult @0 real_zerop): Tweak conditions for constant
14277         folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
14279 2022-02-09  Jakub Jelinek  <jakub@redhat.com>
14281         PR debug/104407
14282         * dwarf2out.cc (mangle_referenced_decls): New function.
14283         (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
14284         early_dwarf.  Instead walk the initializer and try to mangle vars or
14285         functions referenced from it.
14287 2022-02-09  Andrew MacLeod  <amacleod@redhat.com>
14289         PR tree-optimization/104288
14290         * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
14291         (non_null_ref::adjust_range): Move to header.
14292         (ranger_cache::range_of_def): Don't check non-null.
14293         (ranger_cache::entry_range): Don't check non-null.
14294         (ranger_cache::range_on_edge): Check for nonnull on normal edges.
14295         (ranger_cache::update_to_nonnull): New.
14296         (non_null_loadstore): New.
14297         (ranger_cache::block_apply_nonnull): New.
14298         * gimple-range-cache.h (class non_null_ref): Update prototypes.
14299         (non_null_ref::adjust_range): Move to here and inline.
14300         (class ranger_cache): Update prototypes.
14301         * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
14302         not search dominators.
14303         (path_range_query::adjust_for_non_null_uses): Ditto.
14304         * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
14305         def overrides.  Do not check nonnull.
14306         (gimple_ranger::range_on_entry): Check dominators for nonnull.
14307         (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
14308         (gimple_ranger::register_side_effects): New.
14309         * gimple-range.h (gimple_ranger::register_side_effects): New.
14310         * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
14312 2022-02-09  Richard Biener  <rguenther@suse.de>
14314         PR tree-optimization/104445
14315         PR tree-optimization/102832
14316         * optabs-query.h (can_vec_extract): New.
14317         * optabs-query.cc (can_vec_extract): Likewise.
14318         * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
14319         we can extract a hi/lo part from the larger vector, rework
14320         check iteration from larger to smaller sizes.
14322 2022-02-09  H.J. Lu  <hjl.tools@gmail.com>
14324         PR target/35513
14325         PR target/100593
14326         * config/i386/gnu-property.cc: Include "i386-protos.h".
14327         (file_end_indicate_exec_stack_and_gnu_property): Generate
14328         a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
14329         nodirect_extern_access attribute.
14330         * config/i386/i386-options.cc
14331         (handle_nodirect_extern_access_attribute): New function.
14332         (ix86_attribute_table): Add nodirect_extern_access attribute.
14333         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
14334         bool argument.
14335         (ix86_has_no_direct_extern_access): New.
14336         * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
14337         (ix86_force_load_from_GOT_p): Add a bool argument to indicate
14338         call operand.  Force non-call load from GOT for
14339         -mno-direct-extern-access or nodirect_extern_access attribute.
14340         (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
14341         for -mno-direct-extern-access or nodirect_extern_access attribute.
14342         (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
14343         for call operand.
14344         (asm_preferred_eh_data_format): Use PC-relative format for
14345         -mno-direct-extern-access to avoid copy relocation.  Check
14346         ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
14347         (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
14348         true for -mno-direct-extern-access or nodirect_extern_access
14349         attribute.  Don't treat protected data as extern and avoid copy
14350         relocation on common symbol with -mno-direct-extern-access or
14351         nodirect_extern_access attribute.
14352         (ix86_reloc_rw_mask): New to avoid copy relocation for
14353         -mno-direct-extern-access.
14354         (TARGET_ASM_RELOC_RW_MASK): New.
14355         * config/i386/i386.opt: Add -mdirect-extern-access.
14356         * doc/extend.texi: Document nodirect_extern_access attribute.
14357         * doc/invoke.texi: Document -m[no-]direct-extern-access.
14359 2022-02-09  H.J. Lu  <hjl.tools@gmail.com>
14361         PR target/104441
14362         * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
14363         (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
14364         Call ix86_avx_u128_mode_source to check mode for each component
14365         of source operand.
14367 2022-02-09  liuhongt  <hongtao.liu@intel.com>
14369         PR target/104451
14370         * config/i386/sse.md (<insn><mode>3): lowpart_subreg
14371         operands[2] from SImode to QImode.
14373 2022-02-09  Richard Biener  <rguenther@suse.de>
14375         PR middle-end/104450
14376         * gimple-isel.cc: Pass cfun around.
14377         (+gimple_expand_vec_cond_expr): Do not combine a throwing
14378         comparison with the select.
14380 2022-02-09  Richard Biener  <rguenther@suse.de>
14382         PR target/104453
14383         * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
14384         folding for NULL LHS.
14386 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
14388         PR rtl-optimization/104198
14389         PR rtl-optimization/104153
14390         * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
14391         using it directly.  Rework comparison handling and always
14392         perform a second pass.
14394 2022-02-08  Jakub Jelinek  <jakub@redhat.com>
14396         PR target/102140
14397         * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
14398         split1 pass has finished already.
14400 2022-02-08  Bill Schmidt  <wschmidt@linux.ibm.com>
14402         * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
14403         * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
14404         * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
14405         (vmsumcud): New define_insn.
14407 2022-02-08  Tom de Vries  <tdevries@suse.de>
14409         * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
14410         * config/nvptx/nvptx.h (TARGET_SM70): Define.
14412 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
14414         * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
14415         on condition.
14416         * config/s390/s390.md: Use paradoxical subreg.
14418 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
14420         * combine.cc (reg_subword_p): Check for paradoxical subreg.
14422 2022-02-08  Tom de Vries  <tdevries@suse.de>
14424         PR target/104283
14425         * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
14426         and PTX_VERSION_4_2.
14427         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
14428         (default_ptx_version_option, ptx_version_to_string)
14429         (sm_version_to_string, handle_ptx_version_option): New function.
14430         (nvptx_option_override): Call handle_ptx_version_option.
14431         (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
14432         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
14433         (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
14434         * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
14436 2022-02-08  Maciej W. Rozycki  <macro@embecosm.com>
14438         * doc/install.texi (Configuration): Document `--with-isa-spec='
14439         RISC-V option.
14440         * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
14441         option.
14442         (RISC-V Options): Document it.
14444 2022-02-08  Maciej W. Rozycki  <macro@embecosm.com>
14446         * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
14448 2022-02-08  Tom de Vries  <tdevries@suse.de>
14450         * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
14452 2022-02-08  Tom de Vries  <tdevries@suse.de>
14454         PR target/104364
14455         * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
14456         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
14457         change is validated.
14458         (nvptx_mem_local_p): New function.
14459         * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
14460         (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
14461         (define_insn "atomic_compare_and_swap<mode>_1_local"): New
14462         non-atomic, non-predicable define_insn, factored out of ...
14463         (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
14464         Make predicable again.
14465         (define_expand "atomic_compare_and_swap<mode>"): Use
14466         atomic_compare_and_swap<mode>_1_local.
14468 2022-02-08  liuhongt  <hongtao.liu@intel.com>
14470         PR rtl-optimization/104059
14471         * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
14472         for a more expensive reg-reg move.
14474 2022-02-07  Tamar Christina  <tamar.christina@arm.com>
14476         * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
14477         vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
14478         * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
14479         (usdot_laneq, sudot_laneq): New.
14480         * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
14481         (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
14483 2022-02-07  Tamar Christina  <tamar.christina@arm.com>
14485         * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
14486         vdot_laneq_s32, vdotq_laneq_s32): New.
14487         * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
14488         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
14489         (<sup>dot_prod<vsi2qi>): Re-order rtl.
14490         (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
14491         (neon_<sup>dot_laneq<vsi2qi>): New.
14493 2022-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
14495         PR target/104327
14496         * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
14497         if always_inline is set. Don't inline when tune differs without
14498         always_inline.
14500 2022-02-07  Richard Biener  <rguenther@suse.de>
14502         PR middle-end/104402
14503         * gimple-expr.cc (is_gimple_condexpr): _Complex typed
14504         compares are not valid.
14505         * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
14506         check is_gimple_condexpr.
14508 2022-02-07  Kewen Lin  <linkw@linux.ibm.com>
14510         PR target/103627
14511         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
14512         hunk affecting VSX and ALTIVEC to appropriate place.
14514 2022-02-07  Kewen Lin  <linkw@linux.ibm.com>
14516         PR target/103627
14517         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
14518         MMA if !TARGET_VSX.
14520 2022-02-06  Jakub Jelinek  <jakub@redhat.com>
14522         PR c++/89074
14523         PR c++/104033
14524         * fold-const.h (folding_initializer): Adjust comment.
14525         (folding_cxx_constexpr): Declare.
14526         * fold-const.cc (folding_initializer): Adjust comment.
14527         (folding_cxx_constexpr): New variable.
14528         (address_compare): Restrict the decl vs. STRING_CST
14529         or vice versa or STRING_CST vs. STRING_CST or
14530         is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
14531         Punt for FUNCTION_DECLs with non-zero offsets.  If folding_initializer,
14532         assume non-aliased functions have non-zero size and have different
14533         addresses.  For folding_cxx_constexpr, punt on comparisons of start
14534         of some object and end of another one, regardless whether it is a decl
14535         or string literal.  Also punt for folding_cxx_constexpr on
14536         STRING_CST vs. STRING_CST comparisons if the two literals could be
14537         overlapping.
14539 2022-02-05  Jakub Jelinek  <jakub@redhat.com>
14541         PR tree-optimization/104389
14542         * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
14543         honored.
14545 2022-02-05  Kito Cheng  <kito.cheng@sifive.com>
14547         * configure.ac: Fix detection for zifencei support.
14548         * configure: Regenerate.
14550 2022-02-05  Kito Cheng  <kito.cheng@sifive.com>
14552         PR target/104219
14553         * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
14554         (all_defaults): Add isa_spec.
14555         * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
14557 2022-02-04  Bill Schmidt  <wschmidt@linux.ibm.com>
14559         * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
14560         parameters instead of arglist and nargs.  Simplify accordingly.  Remove
14561         unnecessary test for argument count mismatch.
14562         (resolve_vec_cmpne): Likewise.
14563         (resolve_vec_adde_sube): Likewise.
14564         (resolve_vec_addec_subec): Likewise.
14565         (altivec_resolve_overloaded_builtin): Move overload special handling
14566         after the gathering of arguments into args[] and types[] and the test
14567         for correct number of arguments.  Don't perform the test for correct
14568         number of arguments for certain special cases.  Call the other special
14569         cases with args and types instead of arglist and nargs.
14571 2022-02-04  Bill Schmidt  <wschmidt@linux.ibm.com>
14573         PR target/100808
14574         * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
14575         3.1): Provide consistent type names.  Remove unnecessary semicolons.
14576         Fix bad line breaks.
14578 2022-02-04  Jakub Jelinek  <jakub@redhat.com>
14580         PR target/104380
14581         * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
14582         adjust mangling of __builtin*printf_chk.
14584 2022-02-04  Jonathan Wakely  <jwakely@redhat.com>
14586         * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
14588 2022-02-04  Richard Biener  <rguenther@suse.de>
14589             Bin Cheng   <bin.cheng@linux.alibaba.com>
14591         PR tree-optimization/100499
14592         * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
14593         to true.
14594         * fold-const.cc (multiple_of_p): Likewise.  Honor it for
14595         MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
14596         switching to false for conversions.
14597         * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
14598         claim the outermost expression does not wrap when calling
14599         multiple_of_p.  Refactor the check done to check the
14600         original IV, avoiding a bias that might wrap.
14602 2022-02-04  Richard Biener  <rguenther@suse.de>
14604         * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
14605         handling.
14607 2022-02-04  Eric Botcazou  <ebotcazou@adacore.com>
14609         PR debug/104366
14610         * dwarf2out.cc (dwarf2out_finish): Empty base_types.
14611         (dwarf2out_early_finish): Likewise.
14613 2022-02-04  Eric Botcazou  <ebotcazou@adacore.com>
14615         PR tree-optimization/104356
14616         * match.pd (X / bool_range_Y is X): Add guard.
14617         (X / X is one): Likewise.
14618         (X / abs (X) is X < 0 ? -1 : 1): Likewise.
14619         (X / -X is -1): Likewise.
14620         (1 / X -> X == 1): Likewise.
14622 2022-02-04  Richard Biener  <rguenther@suse.de>
14624         PR tree-optimization/103641
14625         * tree-vect-patterns.cc (vect_synth_mult_by_constant):
14626         Pass the vector mode to choose_mult_variant.
14628 2022-02-04  Roger Sayle  <roger@nextmovesoftware.com>
14630         PR rtl-optimization/101885
14631         * combine.cc (try_combine): When splitting a parallel into two
14632         sequential sets, check not only that the first doesn't clobber
14633         the second but also that the second doesn't clobber the first.
14635 2022-02-04  Richard Biener  <rguenther@suse.de>
14637         PR middle-end/90348
14638         PR middle-end/104092
14639         * tree-core.h (clobber_kind): New enum.
14640         (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
14641         * tree.h (CLOBBER_KIND): Add.
14642         (build_clobber): Add clobber kind argument, defaulted to
14643         CLOBBER_UNDEF.
14644         * tree.cc (build_clobber): Likewise.
14645         * gimple.h (gimple_clobber_p): New overload with specified kind.
14646         * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
14647         CLOBBER_KIND.
14648         * tree-streamer-out.cc (streamer_write_tree_bitfields):
14649         Likewise.
14650         * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
14651         * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
14652         with CLOBBER_EOL.
14653         (gimplify_target_expr): Likewise.
14654         * tree-inline.cc (expand_call_inline): Likewise.
14655         * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
14656         * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
14657         CLOBBER_EOL clobbers as ending lifetime of storage.
14659 2022-02-04  Martin Sebor  <msebor@redhat.com>
14661         * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
14662         cleanup.
14664 2022-02-03  Martin Sebor  <msebor@redhat.com>
14666         PR middle-end/104260
14667         * passes.def (pass_warn_access): Adjust pass placement.
14669 2022-02-03  Uroš Bizjak  <ubizjak@gmail.com>
14671         PR target/104362
14672         * config/i386/i386.cc (find_drap_reg): For 32bit targets
14673         return DI_REG if function uses __builtin_eh_return.
14675 2022-02-03  Martin Sebor  <msebor@redhat.com>
14677         * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
14678         (pass_wrestrict::m_ptr_qry): New member.
14679         (wrestrict_walk): Rename...
14680         (pass_wrestrict::check_block): ...to this.
14681         (pass_wrestrict::execute): Set up and tear down pointer_query and
14682         ranger.
14683         (builtin_memref::builtin_memref): Change ctor argument.  Simplify.
14684         (builtin_access::builtin_access): Same.
14685         (builtin_access::m_ptr_qry): New member.
14686         (check_call): Rename...
14687         (pass_wrestrict::check_call): ...to this.
14688         (check_bounds_or_overlap): Change argument.
14689         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
14691 2022-02-03  Martin Sebor  <msebor@redhat.com>
14693         * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
14694         Define ctor.
14695         (array_bounds_checker::get_value_range): Use new member.
14696         (array_bounds_checker::check_mem_ref): Same.
14697         * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
14698         Outline ctor.
14699         (array_bounds_checker::m_ptr_query): New member.
14701 2022-02-03  Martin Sebor  <msebor@redhat.com>
14703         * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
14704         pointer_query cache.
14705         * pointer-query.cc (pointer_query::pointer_query): Remove cache
14706         argument.  Zero-initialize new cache member.
14707         (pointer_query::get_ref): Replace cache pointer with direct access.
14708         (pointer_query::put_ref): Same.
14709         (pointer_query::flush_cache): Same.
14710         (pointer_query::dump): Same.
14711         * pointer-query.h (class pointer_query): Remove cache argument from
14712         ctor.  Change cache pointer to cache subobject member.
14713         * tree-ssa-strlen.cc: Remove pointer_query cache.
14715 2022-02-03  Martin Sebor  <msebor@redhat.com>
14717         PR tree-optimization/104119
14718         * gimple-ssa-sprintf.cc (struct directive): Change argument type.
14719         (format_none): Same.
14720         (format_percent): Same.
14721         (format_integer): Same.
14722         (format_floating): Same.
14723         (get_string_length): Same.
14724         (format_character): Same.
14725         (format_string): Same.
14726         (format_plain): Same.
14727         (format_directive): Same.
14728         (compute_format_length): Same.
14729         (handle_printf_call): Same.
14730         * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.   Call
14731         get_maxbound.
14732         (get_range_strlen_phi): Same.
14733         (get_maxbound): New function.
14734         (strlen_pass::get_len_or_size): Adjust to parameter change.
14735         * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
14737 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
14739         PR target/103686
14740         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
14741         test for !rs6000_fold_gimple.
14742         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
14743         * config/rs6000/rs6000.opt (mfold-gimple): Remove.
14745 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
14747         PR target/95082
14748         * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
14749         endianness for vclzlsbb and vctzlsbb.
14750         * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
14751         default pattern and indicate a different pattern will be used for
14752         big endian.
14753         (VCLZLSBB_V4SI): Likewise.
14754         (VCLZLSBB_V8HI): Likewise.
14755         (VCTZLSBB_V16QI): Likewise.
14756         (VCTZLSBB_V4SI): Likewise.
14757         (VCTZLSBB_V8HI): Likewise.
14759 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
14761         * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
14762         * config/rs6000/rs6000-builtin.cc: New file, containing code moved
14763         from other files.
14764         * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
14765         rs6000-builtin.cc.
14766         (cpu_supports_info): Likewise.
14767         (rs6000_type_string): Likewise.
14768         (altivec_expand_predicate_builtin): Likewise.
14769         (rs6000_htm_spr_icode): Likewise.
14770         (altivec_expand_vec_init_builtin): Likewise.
14771         (get_element_number): Likewise.
14772         (altivec_expand_vec_set_builtin): Likewise.
14773         (altivec_expand_vec_ext_builtin): Likewise.
14774         (rs6000_invalid_builtin): Likewise.
14775         (rs6000_fold_builtin): Likewise.
14776         (fold_build_vec_cmp): Likewise.
14777         (fold_compare_helper): Likewise.
14778         (map_to_integral_tree_type): Likewise.
14779         (fold_mergehl_helper): Likewise.
14780         (fold_mergeeo_helper): Likewise.
14781         (rs6000_builtin_valid_without_lhs): Likewise.
14782         (rs6000_builtin_is_supported): Likewise.
14783         (rs6000_gimple_fold_mma_builtin): Likewise.
14784         (rs6000_gimple_fold_builtin): Likewise.
14785         (rs6000_expand_ldst_mask): Likewise.
14786         (cpu_expand_builtin): Likewise.
14787         (elemrev_icode): Likewise.
14788         (ldv_expand_builtin): Likewise.
14789         (lxvrse_expand_builtin): Likewise.
14790         (lxvrze_expand_builtin): Likewise.
14791         (stv_expand_builtin): Likewise.
14792         (mma_expand_builtin): Likewise.
14793         (htm_spr_num): Likewise.
14794         (htm_expand_builtin): Likewise.
14795         (rs6000_expand_builtin): Likewise.
14796         (rs6000_vector_type): Likewise.
14797         (rs6000_init_builtins): Likewise.  Remove initialization of
14798         builtin_mode_to_type entries.
14799         (rs6000_builtin_decl): Move to rs6000-builtin.cc.
14800         * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
14801         external declaration.
14802         (rs6000_builtin_md_vectorized_function): Likewise.
14803         (rs6000_builtin_reciprocal): Likewise.
14804         (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
14805         (rs6000_builtin_types): Likewise.
14806         (builtin_mode_to_type): Remove.
14807         (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc.  Remove
14808         static qualifier.
14809         (rs6000_builtin_md_vectorized_function): Likewise.
14810         (rs6000_builtin_reciprocal): Likewise.
14811         * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
14812         * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
14814 2022-02-03  Richard Biener  <rguenther@suse.de>
14816         PR debug/104337
14817         * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
14818         together via DECL_ABSTRACT_ORIGIN.
14820 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
14822         * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
14823         message for RES_BITS case.
14825 2022-02-03  Aldy Hernandez  <aldyh@redhat.com>
14827         * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
14829 2022-02-03  Jakub Jelinek  <jakub@redhat.com>
14831         * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
14832         mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
14834 2022-02-03  Aldy Hernandez  <aldyh@redhat.com>
14836         * cfganal.cc (verify_marked_backedges): New.
14837         * cfganal.h (verify_marked_backedges): New.
14838         * gimple-range-path.cc (path_range_query::path_range_query):
14839         Verify freshness of back edges.
14840         * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
14841         mark_dfs_back_edges.
14842         * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
14843         path_range_query construction after backedges have been
14844         updated.
14846 2022-02-03  Richard Sandiford  <richard.sandiford@arm.com>
14848         * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
14849         VALL to VALL_F16.
14851 2022-02-03  Richard Sandiford  <richard.sandiford@arm.com>
14853         * config/aarch64/iterators.md (VALL_F16MOV): Delete.
14854         * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
14855         of VALL_F16MOV.
14857 2022-02-03  Martin Liska  <mliska@suse.cz>
14859         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
14860         Change subject and object in the error message.
14861         * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
14862         Likewise.
14864 2022-02-03  Martin Liska  <mliska@suse.cz>
14866         * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
14867         Use the error message for i386 target.
14869 2022-02-03  Jakub Jelinek  <jakub@redhat.com>
14871         PR tree-optimization/104334
14872         * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
14873         and rh_range type to widest_int and subtract in widest_int.  Remove
14874         ov_rh, ov_lh and sign vars, always perform comparisons as signed
14875         and use >, < and == operators for it.
14877 2022-02-03  Martin Sebor  <msebor@redhat.com>
14879         * common.opt (-Wuse-after-free): Correct typos.
14881 2022-02-02  David Malcolm  <dmalcolm@redhat.com>
14883         PR analyzer/104270
14884         * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
14885         -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
14886         -ftrivial-auto-var-init= doesn't suppress warnings.
14888 2022-02-02  Martin Liska  <mliska@suse.cz>
14890         * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
14892 2022-02-02  Bernd Kuhls  <bernd.kuhls@t-online.de>
14894         PR target/94372
14895         * config/or1k/linux.h (CPP_SPEC): Define.
14897 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
14899         PR tree-optimization/102819
14900         PR tree-optimization/103169
14901         * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
14902         canonical order.
14904 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
14906         PR tree-optimization/102819
14907         PR tree-optimization/103169
14908         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
14909         canonical order.
14910         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
14912 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
14914         PR tree-optimization/102819
14915         PR tree-optimization/103169
14916         * doc/md.texi: Update docs for cfms, cfma.
14917         * tree-data-ref.h (same_data_refs): Accept optional offset.
14918         * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
14919         patterns.
14920         (vect_normalize_conj_loc): Remove.
14921         (is_eq_or_top): Change to take two nodes.
14922         (enum _conj_status, compatible_complex_nodes_p,
14923         vect_validate_multiplication): New.
14924         (class complex_add_pattern, complex_add_pattern::matches,
14925         complex_add_pattern::recognize, class complex_mul_pattern,
14926         complex_mul_pattern::recognize, class complex_fms_pattern,
14927         complex_fms_pattern::recognize, class complex_operations_pattern,
14928         complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
14929         new cache.
14930         (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
14931         cache and use new validation code.
14932         * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
14933         vect_analyze_slp): Pass along cache.
14934         (compatible_calls_p): Expose.
14935         * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
14936         slp_compat_nodes_map_t): New.
14937         (class vect_pattern): Update signatures include new cache.
14939 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
14941         * config/cris/cris.cc (cris_preferred_reload_class): Reject
14942         "eliminated" registers and small-enough constants unless
14943         reloaded into a class that is a subset of GENERAL_REGS.
14944         * config/cris/cris.md (attribute "cpu_variant"): New.
14945         (attribute "enabled"): Conditionalize on a matching attribute
14946         cpu_variant, if specified.
14947         ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
14948         memory, add cpu-variant-enabled variants for "r" alternatives on
14949         the far side of the "x" alternatives, preferring the "x" ones
14950         only for variants where MOF is present (in addition to SRP).
14952 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
14954         * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
14955         extra cost for ALL_REGS.
14957 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
14959         * config/cris/constraints.md (define_register_constraint "b"): Now
14960         GENERAL_REGS.
14961         * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
14962         * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
14963         (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
14964         and SPEC_GENNONACR_REGS.
14965         * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
14966         ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
14968 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
14970         * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
14971         Conditionalize on (sub-)register operands or operand 1 being 0.
14973 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
14975         * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
14976         (MUL_BUG_ASM_DEFAULT): New macro.
14977         (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
14978         * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
14979         accordingly.
14981 2022-02-01  Eugene Rozenfeld  <erozen@microsoft.com>
14983         * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
14984         to 10 for AutoFDO.
14986 2022-02-01  Eugene Rozenfeld  <erozen@microsoft.com>
14988         * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
14990 2022-02-01  Andrew Pinski  <apinski@marvell.com>
14992         * doc/install.texi:
14994 2022-02-01  Ilya Leoshkevich  <iii@linux.ibm.com>
14996         * config/s390/s390.cc (s390_code_end): Do not switch back to
14997         code section.
14999 2022-02-01  Jakub Jelinek  <jakub@redhat.com>
15001         PR target/104323
15002         * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
15003         rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
15004         * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
15005         GTY((user)) for struct bifdata and struct ovlddata.  Instead add
15006         GTY((skip(""))) to members with pointer and enum types that don't need
15007         to be tracked.  Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
15008         declarations.  Don't emit gt_ggc_mx and gt_pch_nx declarations.
15009         (write_extern_fntype, write_fntype): Remove.
15010         (write_fntype_init): Emit the fntype vars as automatic vars instead
15011         of file scope ones.
15012         (write_header_file): Don't iterate with write_extern_fntype.
15013         (write_init_file): Don't iterate with write_fntype.  Don't emit
15014         gt_ggc_mx and gt_pch_nx definitions.
15016 2022-02-01  Jason Merrill  <jason@redhat.com>
15018         * tree.h (struct tree_vec_map_cache_hasher): Move from...
15019         * tree.cc (struct tree_vec_map_cache_hasher): ...here.
15021 2022-02-01  Tom de Vries  <tdevries@suse.de>
15023         * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
15024         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
15025         UNSPECV_UNIFORM_WARP_CHECK.
15026         (define_insn "nvptx_uniform_warp_check"): New define_insn.
15028 2022-02-01  Tom de Vries  <tdevries@suse.de>
15030         * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
15031         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
15032         UNSPECV_WARPSYNC.
15033         (define_insn "nvptx_warpsync"): New define_insn.
15035 2022-02-01  Tom de Vries  <tdevries@suse.de>
15037         * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
15039 2022-02-01  Tom de Vries  <tdevries@suse.de>
15041         * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
15042         * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
15043         * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
15044         insn for TARGET_PTX_6_0.
15046 2022-02-01  Tom de Vries  <tdevries@suse.de>
15048         PR target/100428
15049         * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
15050         insn.
15052 2022-02-01  Tom de Vries  <tdevries@suse.de>
15054         * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
15055         (define_insn "atomic_exchange<mode>")
15056         (define_insn "atomic_fetch_add<mode>")
15057         (define_insn "atomic_fetch_addsf")
15058         (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
15059         if memory operands is frame-relative.
15061 2022-02-01  Tom de Vries  <tdevries@suse.de>
15063         * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
15064         NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
15065         (VOID): New macro.
15066         (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
15067         (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
15068         NVPTX_BUILTIN_MEMBAR_CTA.
15069         (nvptx_lockfull_update): Add level parameter.  Emit barriers.
15070         (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
15071         nvptx_lockfull_update.
15072         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
15073         UNSPECV_MEMBAR_GL.
15074         (define_expand "nvptx_membar_gl"): New expand.
15075         (define_insn "*nvptx_membar_gl"): New insn.
15077 2022-02-01  Martin Liska  <mliska@suse.cz>
15079         * doc/install.texi: Remove option for GCC < 4.8.
15081 2022-02-01  Jakub Jelinek  <jakub@redhat.com>
15083         PR middle-end/104307
15084         * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
15085         stmts to uses vector, just set vec_cond_expr_only to false for
15086         non-VEC_COND_EXPRs instead of pushing them into uses.  Treat
15087         VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
15088         like non-VEC_COND_EXPRs.
15090 2022-02-01  Bill Schmidt  <wschmidt@linux.ibm.com>
15092         * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
15093         (VEC_BLENDV): Likewise.
15094         (VEC_BPERM): Likewise.
15095         (VEC_CFUGE): Likewise.
15096         (VEC_CIPHER_BE): Likewise.
15097         (VEC_CIPHERLAST_BE): Likewise.
15098         (VEC_CLRL): Likewise.
15099         (VEC_CLRR): Likewise.
15100         (VEC_CMPNEZ): Likewise.
15101         (VEC_CNTLZ): Likewise.
15102         (VEC_CNTLZM): Likewise.
15103         (VEC_CNTTZM): Likewise.
15104         (VEC_CNTLZ_LSBB): Likewise.
15105         (VEC_CNTM): Likewise.
15106         (VEC_CNTTZ): Likewise.
15107         (VEC_CNTTZ_LSBB): Likewise.
15108         (VEC_CONVERT_4F32_8F16): Likewise.
15109         (VEC_DIV): Likewise.
15110         (VEC_DIVE): Likewise.
15111         (VEC_EQV): Likewise.
15112         (VEC_EXPANDM): Likewise.
15113         (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
15114         (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
15115         (VEC_EXTRACTH): Likewise.
15116         (VEC_EXTRACTL): Likewise.
15117         (VEC_EXTRACTM): Likewise.
15118         (VEC_EXTRACT4B): Likewise.
15119         (VEC_EXTULX): Likewise.
15120         (VEC_EXTURX): Likewise.
15121         (VEC_FIRSTMATCHINDEX): Likewise.
15122         (VEC_FIRSTMACHOREOSINDEX): Likewise.
15123         (VEC_FIRSTMISMATCHINDEX): Likewise.
15124         (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
15125         (VEC_GB): Likewise.
15126         (VEC_GENBM): Likewise.
15127         (VEC_GENHM): Likewise.
15128         (VEC_GENWM): Likewise.
15129         (VEC_GENDM): Likewise.
15130         (VEC_GENQM): Likewise.
15131         (VEC_GENPCVM): Likewise.
15132         (VEC_GNB): Likewise.
15133         (VEC_INSERTH): Likewise.
15134         (VEC_INSERTL): Likewise.
15135         (VEC_INSERT4B): Likewise.
15136         (VEC_LXVL): Likewise.
15137         (VEC_MERGEE): Likewise.
15138         (VEC_MERGEO): Likewise.
15139         (VEC_MOD): Likewise.
15140         (VEC_MSUB): Likewise.
15141         (VEC_MULH): Likewise.
15142         (VEC_NAND): Likewise.
15143         (VEC_NCIPHER_BE): Likewise.
15144         (VEC_NCIPHERLAST_BE): Likewise.
15145         (VEC_NEARBYINT): Likewise.
15146         (VEC_NMADD): Likewise.
15147         (VEC_ORC): Likewise.
15148         (VEC_PDEP): Likewise.
15149         (VEC_PERMX): Likewise.
15150         (VEC_PEXT): Likewise.
15151         (VEC_POPCNT): Likewise.
15152         (VEC_PARITY_LSBB): Likewise.
15153         (VEC_REPLACE_ELT): Likewise.
15154         (VEC_REPLACE_UN): Likewise.
15155         (VEC_REVB): Likewise.
15156         (VEC_RINT): Likewise.
15157         (VEC_RLMI): Likewise.
15158         (VEC_RLNM): Likewise.
15159         (VEC_SBOX_BE): Likewise.
15160         (VEC_SIGNEXTI): Likewise.
15161         (VEC_SIGNEXTLL): Likewise.
15162         (VEC_SIGNEXTQ): Likewise.
15163         (VEC_SLDB): Likewise.
15164         (VEC_SLV): Likewise.
15165         (VEC_SPLATI): Likewise.
15166         (VEC_SPLATID): Likewise.
15167         (VEC_SPLATI_INS): Likewise.
15168         (VEC_SQRT): Likewise.
15169         (VEC_SRDB): Likewise.
15170         (VEC_SRV): Likewise.
15171         (VEC_STRIL): Likewise.
15172         (VEC_STRIL_P): Likewise.
15173         (VEC_STRIR): Likewise.
15174         (VEC_STRIR_P): Likewise.
15175         (VEC_STXVL): Likewise.
15176         (VEC_TERNARYLOGIC): Likewise.
15177         (VEC_TEST_LSBB_ALL_ONES): Likewise.
15178         (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
15179         (VEC_VEE): Likewise.
15180         (VEC_VES): Likewise.
15181         (VEC_VIE): Likewise.
15182         (VEC_VPRTYB): Likewise.
15183         (VEC_VSCEEQ): Likewise.
15184         (VEC_VSCEGT): Likewise.
15185         (VEC_VSCELT): Likewise.
15186         (VEC_VSCEUO): Likewise.
15187         (VEC_VSEE): Likewise.
15188         (VEC_VSES): Likewise.
15189         (VEC_VSIE): Likewise.
15190         (VEC_VSTDC): Likewise.
15191         (VEC_VSTDCN): Likewise.
15192         (VEC_VTDC): Likewise.
15193         (VEC_XL): Likewise.
15194         (VEC_XL_BE): Likewise.
15195         (VEC_XL_LEN_R): Likewise.
15196         (VEC_XL_SEXT): Likewise.
15197         (VEC_XL_ZEXT): Likewise.
15198         (VEC_XST): Likewise.
15199         (VEC_XST_BE): Likewise.
15200         (VEC_XST_LEN_R): Likewise.
15201         (VEC_XST_TRUNC): Likewise.
15202         (VEC_XXPERMDI): Likewise.
15203         (VEC_XXSLDWI): Likewise.
15204         (VEC_TSTSFI_EQ_DD): Likewise.
15205         (VEC_TSTSFI_EQ_TD): Likewise.
15206         (VEC_TSTSFI_GT_DD): Likewise.
15207         (VEC_TSTSFI_GT_TD): Likewise.
15208         (VEC_TSTSFI_LT_DD): Likewise.
15209         (VEC_TSTSFI_LT_TD): Likewise.
15210         (VEC_TSTSFI_OV_DD): Likewise.
15211         (VEC_TSTSFI_OV_TD): Likewise.
15212         (VEC_VADDCUQ): Likewise.
15213         (VEC_VADDECUQ): Likewise.
15214         (VEC_VADDEUQM): Likewise.
15215         (VEC_VADDUDM): Likewise.
15216         (VEC_VADDUQM): Likewise.
15217         (VEC_VBPERMQ): Likewise.
15218         (VEC_VCLZB): Likewise.
15219         (VEC_VCLZD): Likewise.
15220         (VEC_VCLZH): Likewise.
15221         (VEC_VCLZW): Likewise.
15222         (VEC_VCTZB): Likewise.
15223         (VEC_VCTZD): Likewise.
15224         (VEC_VCTZH): Likewise.
15225         (VEC_VCTZW): Likewise.
15226         (VEC_VEEDP): Likewise.
15227         (VEC_VEESP): Likewise.
15228         (VEC_VESDP): Likewise.
15229         (VEC_VESSP): Likewise.
15230         (VEC_VIEDP): Likewise.
15231         (VEC_VIESP): Likewise.
15232         (VEC_VPKSDSS): Likewise.
15233         (VEC_VPKSDUS): Likewise.
15234         (VEC_VPKUDUM): Likewise.
15235         (VEC_VPKUDUS): Likewise.
15236         (VEC_VPOPCNT): Likewise.
15237         (VEC_VPOPCNTB): Likewise.
15238         (VEC_VPOPCNTD): Likewise.
15239         (VEC_VPOPCNTH): Likewise.
15240         (VEC_VPOPCNTW): Likewise.
15241         (VEC_VPRTYBD): Likewise.
15242         (VEC_VPRTYBQ): Likewise.
15243         (VEC_VPRTYBW): Likewise.
15244         (VEC_VRLD): Likewise.
15245         (VEC_VSLD): Likewise.
15246         (VEC_VSRAD): Likewise.
15247         (VEC_VSRD): Likewise.
15248         (VEC_VSTDCDP): Likewise.
15249         (VEC_VSTDCNDP): Likewise.
15250         (VEC_VSTDCNQP): Likewise.
15251         (VEC_VSTDCNSP): Likewise.
15252         (VEC_VSTDCQP): Likewise.
15253         (VEC_VSTDCSP): Likewise.
15254         (VEC_VSUBECUQ): Likewise.
15255         (VEC_VSUBEUQM): Likewise.
15256         (VEC_VSUBUDM): Likewise.
15257         (VEC_VSUBUQM): Likewise.
15258         (VEC_VTDCDP): Likewise.
15259         (VEC_VTDCSP): Likewise.
15260         (VEC_VUPKHSW): Likewise.
15261         (VEC_VUPKLSW): Likewise.
15263 2022-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
15265         PR rtl-optimization/101260
15266         * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
15267         copy_regno.
15269 2022-02-01  Xi Ruoyao  <xry111@mengyan1223.wang>
15271         PR middle-end/95115
15272         * fold-const.cc (const_binop): Do not fold NaN result from
15273           non-NaN operands.
15275 2022-02-01  Tom de Vries  <tdevries@suse.de>
15277         * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
15278         -ftree-loop-distribute-patterns.
15279         (loop_distribution::execute): Don't call transform_reduction_loop for
15280         -fno-tree-loop-distribute-patterns.
15282 2022-01-31  Andrew Pinski  <apinski@marvell.com>
15284         * fold-const.h (operand_compare::operand_equal_p):
15285         Fix comment about OEP_* flags.
15287 2022-01-31  Jakub Jelinek  <jakub@redhat.com>
15289         PR target/104298
15290         * config/rs6000/aix.h (OPTION_GLIBC): Remove.
15291         * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
15292         * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
15293         if not already defined.
15295 2022-01-31  Martin Sebor  <msebor@redhat.com>
15297         PR middle-end/104232
15298         * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
15299         Handle PHIs.  Add a synonymous overload.
15300         (pass_waccess::check_pointer_uses): Call pointers_related_p.
15302 2022-01-31  Richard Biener  <rguenther@suse.de>
15304         PR tree-optimization/100499
15305         * fold-const.cc (multiple_of_p): Pass the correct type of
15306         the expression to the recursive invocation of multiple_of_p
15307         for conversions and use CASE_CONVERT.
15309 2022-01-31  Eric Botcazou  <ebotcazou@adacore.com>
15311         PR target/104189
15312         * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
15314 2022-01-31  Richard Biener  <rguenther@suse.de>
15316         PR tree-optimization/100499
15317         * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
15318         on poly-ints instead of multiple_of_p.
15319         * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
15320         (non_rewritable_mem_ref_base): Likewise.
15321         (non_rewritable_lvalue_p): Likewise.
15322         (execute_update_addresses_taken): Likewise.
15324 2022-01-29  Jakub Jelinek  <jakub@redhat.com>
15325             Andrew Pinski  <apinski@marvell.com>
15327         PR tree-optimization/104279
15328         PR tree-optimization/104280
15329         PR tree-optimization/104281
15330         * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
15331         boolean_type_node and convert to type.  Formatting fixes.
15333 2022-01-28  Yoshinori Sato  <yo-satoh@sios.com>
15335         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
15337 2022-01-28  Navid Rahimi  <navidrahimi@microsoft.com>
15339         PR tree-optimization/103514
15340         * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
15341         (a & b) == (a ^ b) -> !(a | b): New optimization.
15343 2022-01-28  Marek Polacek  <polacek@redhat.com>
15345         * doc/invoke.texi: Update -Wbidi-chars documentation.
15347 2022-01-28  Iain Sandoe  <iain@sandoe.co.uk>
15349         * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
15351 2022-01-28  Zhao Wei Liew  <zhaoweiliew@gmail.com>
15353         PR tree-optimization/95424
15354         * match.pd: Simplify 1 / X where X is an integer.
15356 2022-01-28  Jakub Jelinek  <jakub@redhat.com>
15358         PR tree-optimization/104263
15359         * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
15360         cfun->can_throw_non_call_exceptions && cfun->eh test whether
15361         last non-debug stmt in the bb is store_valid_for_store_merging_p
15362         rather than last stmt.
15364 2022-01-28  Martin Liska  <mliska@suse.cz>
15366         * diagnostic.cc (diagnostic_action_after_output): Remove extra
15367         newline.
15369 2022-01-28  Martin Liska  <mliska@suse.cz>
15371         * config/rs6000/host-darwin.cc (segv_crash_handler):
15372         Do not use leading capital letter.
15373         (segv_handler): Likewise.
15374         * ipa-sra.cc (verify_splitting_accesses): Likewise.
15375         * varasm.cc (get_section): Likewise.
15377 2022-01-28  Richard Biener  <rguenther@suse.de>
15379         PR tree-optimization/104267
15380         * tree-vect-stmts.cc (vectorizable_call): Properly use the
15381         per-argument determined vector type for externals and
15382         invariants.
15384 2022-01-28  Richard Biener  <rguenther@suse.de>
15386         PR tree-optimization/104263
15387         * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
15388         Purge edges also when !cfun->has_nonlocal_label
15389         and !cfun->calls_setjmp.
15391 2022-01-28  Maciej W. Rozycki  <macro@embecosm.com>
15393         * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
15394         attributes.
15396 2022-01-28  Jakub Jelinek  <jakub@redhat.com>
15398         PR lto/104237
15399         * cfgrtl.cc (loc_equal): New function.
15400         (unique_locus_on_edge_between_p): Use it.
15402 2022-01-28  Richard Biener  <rguenther@suse.de>
15404         * cfganal.h (mark_dfs_back_edges): Provide API with struct
15405         function argument.
15406         * cfganal.cc (mark_dfs_back_edges): Take a struct function
15407         to work on, add a wrapper passing cfun.
15408         * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
15409         uses with fun which is already passed.
15410         (draw_cfg_edges): Likewise.
15411         (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
15412         for fun != cfun.
15414 2022-01-27  Patrick Palka  <ppalka@redhat.com>
15416         PR c++/99895
15417         * tree.cc (build_call_vec): Add const to second parameter.
15418         * tree.h (build_call_vec): Likewise.
15420 2022-01-27  Martin Liska  <mliska@suse.cz>
15422         PR web/104254
15423         * diagnostic.cc (diagnostic_initialize):
15424         Initialize report_bug flag.
15425         (diagnostic_action_after_output):
15426         Explain that -freport-bug option can be used for pre-processed
15427         file creation.  Make the message shorter.
15428         (error_recursion): Rename Internal to internal.
15429         * diagnostic.h (struct diagnostic_context): New field.
15430         * opts.cc (common_handle_option): Init the field here.
15432 2022-01-27  Kewen Lin  <linkw@linux.ibm.com>
15434         PR target/103702
15435         * config/rs6000/rs6000.cc
15436         (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
15437         assertion with early return.
15439 2022-01-27  Chung-Lin Tang  <cltang@codesourcery.com>
15441         PR middle-end/103642
15442         * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
15443         for non-pointer or non-reference-to-pointer cases.
15445 2022-01-27  Jakub Jelinek  <jakub@redhat.com>
15447         PR tree-optimization/104196
15448         * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
15449         * gimple-fold.cc (rewrite_to_defined_overflow): Likewise.  If true,
15450         return NULL and emit needed stmts before and after stmt.
15451         * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
15452         pick as operand_entry that will hold the merged test the one feeding
15453         earliest condition, ensure that by swapping range->idx with some
15454         other range's idx if needed.  If seq is non-NULL, don't actually swap
15455         it but instead rewrite stmts with undefined overflow in between
15456         the two locations.
15457         (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
15458         corresponding condition even if they have non-NULL ops[]->op.
15459         Formatting fix.
15461 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
15463         PR target/104239
15464         * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
15465         asm.
15466         * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
15467         before for loop instead of for init clause.
15468         * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
15470 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
15472         PR target/104239
15473         * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
15474         _X86INTRIN_H_INCLUDED and adjust #error wording.
15475         * config/rs6000/bmi2intrin.h: Likewise.
15477 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
15479         PR debug/104194
15480         * dwarf2out.cc (long_double_as_float128): New function.
15481         (modified_type_die): For powerpc64le IEEE 754 quad long double
15482         and complex long double emit those as DW_TAG_typedef to
15483         _Float128 or complex _Float128 base type.
15485 2022-01-26  Marek Polacek  <polacek@redhat.com>
15487         PR target/104213
15488         * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
15489         warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
15491 2022-01-26  Martin Liska  <mliska@suse.cz>
15493         * ipa-modref-tree.cc (modref_access_node::update):
15494         Remove "--param param=foo" with "--param foo".
15495         (modref_access_node::insert): Likewise.
15496         (modref_access_node::insert_kill): Likewise.
15497         * ipa-modref-tree.h (struct modref_ref_node): Likewise.
15498         (struct modref_base_node): Likewise.
15499         (struct modref_tree): Likewise.
15501 2022-01-26  Raoni Fassina Firmino  <raoni@linux.ibm.com>
15503         PR target/94193
15504         * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
15505         predicate check.
15507 2022-01-25  Martin Sebor  <msebor@redhat.com>
15509         PR tree-optimization/104203
15510         * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
15511         TV_WARN_ACCESS.
15512         * pointer-query.cc (access_ref::merge_ref): Change return type.
15513         Convert failure to a conservative success.
15514         (access_ref::get_ref): Adjust to the change above.  Short-circuit
15515         PHI evaluation after first failure turned into conservative success.
15516         * pointer-query.h (access_ref::merge_ref): Change return type.
15517         * timevar.def (TV_WARN_ACCESS): New timer variable.
15519 2022-01-25  David Edelsohn  <dje.gcc@gmail.com>
15521         * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
15523 2022-01-25  Richard Biener  <rguenther@suse.de>
15525         PR tree-optimization/104214
15526         * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
15527         stronger guarantees for relational pointer compares when
15528         rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
15529         BASE0 + STEP0 - STEP1 cmp BASE1.
15531 2022-01-25  Jakub Jelinek  <jakub@redhat.com>
15533         PR target/104172
15534         * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
15535         declare.
15536         * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
15537         ieee128_mangling_gcc_8_1): Remove.
15538         (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
15539         (rs6000_mangle_type): Return "u9__ieee128" instead of
15540         ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
15541         (rs6000_globalize_decl_name): Remove.
15542         * config/rs6000/rs6000-call.cc (init_cumulative_args,
15543         rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
15545 2022-01-24  Martin Sebor  <msebor@redhat.com>
15547         * pointer-query.cc (pointer_query::dump): Remove duplicate
15548         block.
15550 2022-01-24  Marek Polacek  <polacek@redhat.com>
15552         PR preprocessor/104030
15553         * doc/invoke.texi: Update documentation for -Wbidi-chars.
15555 2022-01-24  Raoni Fassina Firmino  <raoni@linux.ibm.com>
15557         PR target/94193
15558         * builtins.cc (expand_builtin_fegetround): New function.
15559         (expand_builtin_feclear_feraise_except): New function.
15560         (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
15561         BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
15562         * config/rs6000/rs6000.md (fegetroundsi): New pattern.
15563         (feclearexceptsi): New Pattern.
15564         (feraiseexceptsi): New Pattern.
15565         * doc/extend.texi: Add a new introductory paragraph about the
15566         new builtins.
15567         * doc/md.texi: (fegetround@var{m}): Document new optab.
15568         (feclearexcept@var{m}): Document new optab.
15569         (feraiseexcept@var{m}): Document new optab.
15570         * optabs.def (fegetround_optab): New optab.
15571         (feclearexcept_optab): New optab.
15572         (feraiseexcept_optab): New optab.
15574 2022-01-24  Richard Biener  <rguenther@suse.de>
15575             Jiufu Guo  <guojiufu@linux.ibm.com>
15577         PR tree-optimization/100740
15578         PR tree-optimization/101508
15579         PR tree-optimization/101972
15580         PR tree-optimization/102131
15581         * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
15582         constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
15583         BASE0 + STEP0 - STEP1 cmp BASE1 transform.
15585 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
15587         PR sanitizer/104158
15588         * opt-functions.awk (var_set): Handle EnumBitSet property.
15589         * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
15590         specified.
15591         * opts.h (enum cl_enum_var_value): New type.
15592         * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
15593         Handle CLEV_BITSET.
15594         (cmdline_handle_error): Handle CLEV_BITSET.
15595         * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
15596         * doc/options.texi (EnumBitSet): Document.
15597         * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
15598         EnumSet.
15599         (trace-pc, trace-cmp): Drop Set properties.
15601 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
15603         PR sanitizer/104158
15604         * common.opt (flag_sanitize_coverage): Remove Variable entry.
15605         (fsanitize-coverage=): Remove RejectNegative property, add
15606         Var(flag_sanitize_coverage) and EnumSet properties.
15607         (trace-pc): Add Set(1) property.
15608         (trace-cmp): Add Set(2) property.
15609         * opts.cc (common_handle_option): Don't handle
15610         OPT_fsanitize_coverage_.
15612 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
15614         PR sanitizer/104158
15615         * opt-functions.awk (var_set): Handle EnumSet property.
15616         * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
15617         specified.
15618         * opt-read.awk: Handle Set property.
15619         * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
15620         (struct cl_decoded_option): Mention enum in value description.
15621         Add mask member.
15622         (set_option): Add mask argument defaulted to 0.
15623         * opts.cc (test_enum_sets): New function.
15624         (opts_cc_tests): Call it.
15625         * opts-common.cc (enum_arg_to_value): Change return argument
15626         from bool to int, on success return index into the cl_enum_arg
15627         array, on failure -1.  Add len argument, if non-0, use strncmp
15628         instead of strcmp.
15629         (opt_enum_arg_to_value): Adjust caller.
15630         (decode_cmdline_option): Handle EnumSet represented as
15631         CLVC_ENUM with non-zero var_value.  Initialize decoded->mask.
15632         (decode_cmdline_options_to_array): CLear opt_array[0].mask.
15633         (handle_option): Pass decoded->mask to set_options last argument.
15634         (generate_option): Clear decoded->mask.
15635         (generate_option_input_file): Likewise.
15636         (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
15637         (set_option): Add mask argument, use it for CLVC_ENUM.
15638         (control_warning_option): Adjust enum_arg_to_value caller.
15639         * doc/options.texi: Document Set and EnumSet properties.
15641 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
15643         PR bootstrap/104170
15644         * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
15645         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
15646         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
15647         using OPTION_*_P macros.
15648         * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
15649         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
15650         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
15651         using OPTION_*_P macros.
15652         * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
15653         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
15654         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
15655         using OPTION_*_P macros.
15656         * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
15657         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
15658         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
15659         using OPTION_*_P macros.
15660         * config/fuchsia.h (OPTION_MUSL_P): Redefine.
15661         * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
15662         * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
15663         ATTRIBUTE_UNUSED to opts parameter.  If OPTION_GLIBC_P is defined, use
15664         OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
15665         * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
15666         OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
15667         otherwise assume if (true).
15669 2022-01-24  Kito Cheng  <kito.cheng@sifive.com>
15671         * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
15672         Skip zicsr and zifencei if I-ext is 2.0.
15674 2022-01-24  Jia-Wei Chen  <jiawei@iscas.ac.cn>
15676         * config.gcc: Modify default isa_spec version.
15678 2022-01-24  Jiufu Guo  <guojiufu@linux.ibm.com>
15680         PR tree-optimization/102087
15681         * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
15682         Correct PLUS result type.
15684 2022-01-24  H.J. Lu  <hjl.tools@gmail.com>
15686         PR target/104188
15687         * config/i386/predicates.md (bcst_mem_operand): Also check mode
15688         of memory broadcast.
15690 2022-01-23  Andrew Pinski  <apinski@marvell.com>
15692         PR target/64821
15693         * config/aarch64/aarch64-builtins.cc
15694         (aarch64_general_gimple_fold_builtin): Handle
15695         __builtin_aarch64_sqrt* and simplify into SQRT internal
15696         function.
15698 2022-01-22  Jakub Jelinek  <jakub@redhat.com>
15700         PR other/104176
15701         * opts-global.cc (handle_common_deferred_options): Quote
15702         --enable-plugin in diagnostics to avoid -Werror=format-diag.
15704 2022-01-21  Michael Meissner  <meissner@the-meissners.org>
15706         PR target/104136
15707         * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
15708         * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
15709         * config/rs6000/rs6000.md (prefixed attribute): Delete section
15710         that sets the prefixed attribute for xxspltiw, xxspltidp, and
15711         xxsplti32dx instructions.
15712         (movsf_hardfloat): Explicitly set the prefixed attribute
15713         when xxspltiw and xxspltidp instructions are generated.
15714         (mov<mode>_hardfloat32): Likewise.
15715         (mov<mode>_hardfloat64): Likewise.
15716         * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
15717         prefixed attribute for xxspltiw and xxspltidp instructions.
15718         (vsx_mov<mode>_32bit): Likewise.
15720 2022-01-21  H.J. Lu  <hjl.tools@gmail.com>
15722         PR bootstrap/104170
15723         * common/config/i386/i386-common.cc (ix86_supports_split_stack):
15724         Return true only on glibc.
15725         * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
15726         Revert commit c163647ffbc.
15727         * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
15729 2022-01-21  Sören Tempel  <soeren@soeren-tempel.net>
15731         * common/config/s390/s390-common.cc (s390_supports_split_stack):
15732         Only support split-stack on glibc targets.
15733         * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
15734         * config/i386/gnu.h (defined): Ditto.
15736 2022-01-21  Bill Schmidt  <wschmidt@linux.ibm.com>
15738         * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
15739         vector float and vector double.
15741 2022-01-21  Bill Seurer  <seurer@gcc.gnu.org>
15743         * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
15744         Fix mention of ifunc in string.
15746 2022-01-21  Roger Sayle  <roger@nextmovesoftware.com>
15748         PR middle-end/104140
15749         * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
15750         operands of the widening multiplication are either both signed or
15751         both unsigned, and abort the conversion if mismatched.
15752         * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
15753         (MULT_HIGHPART_EXPR): Clarify that operands must have the same
15754         signedness.
15755         * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
15756         integer types with the same precision and signedness.
15757         (WIDEN_MULT_EXPR): Document that operands must have integer types
15758         with the same precision, but possibly differing signedness.
15759         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
15760         riscv_current_subset_list returning a NULL pointer (empty list).
15762 2022-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
15764         PR target/103676
15765         * ira.h (struct target_ira): Add member
15766         x_ira_exclude_class_mode_regs.
15767         (ira_exclude_class_mode_regs): New macro.
15768         * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
15769         move from here ...
15770         * lra-int.h: ... to here.
15771         (lra_create_new_reg_with_unique_value): Add arg
15772         exclude_start_hard_regs.
15773         (class lra_reg): Add member exclude_start_hard_regs.
15774         * lra-assigns.cc (find_hard_regno_for_1): Setup
15775         impossible_start_hard_regs from exclude_start_hard_regs.
15776         * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
15777         it lra_create_new_reg[_with_unique_value].
15778         (match_reload): Ditto.
15779         (check_and_process_move): Pass NULL
15780         exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
15781         (goal_alt_exclude_start_hard_regs): New static variable.
15782         (process_addr_reg, simplify_operand_subreg): Pass NULL
15783         exclude_start_hard_regs to lra_create_new_reg_with_unique_value
15784         and get_reload_reg.
15785         (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
15786         Use this_alternative_exclude_start_hard_regs additionally to find
15787         winning operand alternative.
15788         (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
15789         exclude_start_hard_regs to lra_create_new_reg.
15790         (process_address_1, emit_inc): Ditto.
15791         (curr_insn_transform): Pass exclude_start_hard_regs value to
15792         lra_create_new_reg, get_reload_reg, match_reload.
15793         (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
15794         to lra_create_new_reg.
15795         (process_invariant_for_inheritance): Ditto.
15796         * lra-remat.cc (update_scratch_ops): Ditto.
15797         * lra.cc (lra_create_new_reg_with_unique_value): Add arg
15798         exclude_start_hard_regs.  Setup the corresponding member of
15799         lra reg info.
15800         (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
15801         to lra_create_new_reg_with_unique_value.
15802         (initialize_lra_reg_info_element): Initialize member
15803         exclude_start_hard_regs.
15804         (get_scratch_reg): Pass NULL to lra_create_new_reg.
15805         * ira.cc (setup_prohibited_class_mode_regs): Rename to
15806         setup_prohibited_and_exclude_class_mode_regs and calculate
15807         ira_exclude_class_mode_regs.
15809 2022-01-21  Martin Liska  <mliska@suse.cz>
15811         * configure.ac: Detect ld_is_mold and use it for
15812         comdat_group=yes and gcc_cv_ld_hidden=yes.
15813         * configure: Regenerate.
15815 2022-01-21  Richard Biener  <rguenther@suse.de>
15817         PR tree-optimization/100089
15818         * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
15819         of if-converted loops with unvectorized COND_EXPRs for
15820         all but the unlimited cost models.
15822 2022-01-21  Ard Biesheuvel  <ardb@kernel.org>
15824         * config/arm/arm-opts.h (enum stack_protector_guard): New.
15825         * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
15826         New.
15827         * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
15828         (arm_option_override_internal): Handle and put in error checks.
15829         for stack protector guard options.
15830         (arm_option_reconfigure_globals): Likewise.
15831         (arm_stack_protect_tls_canary_mem): New.
15832         (arm_stack_protect_guard): New.
15833         * config/arm/arm.md (stack_protect_set): New.
15834         (stack_protect_set_tls): Likewise.
15835         (stack_protect_test): Likewise.
15836         (stack_protect_test_tls): Likewise.
15837         (reload_tp_hard): Likewise.
15838         * config/arm/arm.opt (-mstack-protector-guard): New
15839         (-mstack-protector-guard-offset): New.
15840         * doc/invoke.texi: Document new options.
15842 2022-01-21  Richard Biener  <rguenther@suse.de>
15844         PR tree-optimization/104156
15845         * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
15846         Collect and reset debug stmts with out-of-loop uses when
15847         hoisting guards.
15848         (find_loop_guard): Adjust.
15849         (empty_bb_without_guard_p): Likewise.  Ignore debug stmts.
15850         (used_outside_loop_p): Push debug uses to a vector of
15851         debug stmts to reset.
15852         (hoist_guard): Adjust -fopt-info category.
15854 2022-01-21  Richard Biener  <rguenther@suse.de>
15856         PR tree-optimization/104152
15857         * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
15858         can_duplicate_and_interleave_p check.
15860 2022-01-21  Jakub Jelinek  <jakub@redhat.com>
15862         * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
15863         Avoid passing var to warning_at when the format string doesn't
15864         refer to it.
15866 2022-01-21  Aldy Hernandez  <aldyh@redhat.com>
15868         PR tree-optimization/103721
15869         * gimple-range-path.cc
15870         (path_range_query::relations_may_be_invalidated): New.
15871         (path_range_query::compute_ranges_in_block): Reset relations if
15872         they may be invalidated.
15873         (path_range_query::maybe_register_phi_relation): Exit if relations
15874         may be invalidated on incoming edge.
15875         (path_range_query::compute_phi_relations): Pass incoming PHI edge
15876         to maybe_register_phi_relation.
15877         * gimple-range-path.h (relations_may_be_invalidated): New.
15878         (maybe_register_phi_relation): Pass edge instead of tree.
15879         * tree-ssa-threadbackward.cc (back_threader::back_threader):
15880         Mark DFS edges.
15881         * value-relation.cc (path_oracle::path_oracle): Call
15882         mark_dfs_back_edges.
15883         (path_oracle::register_relation): Add SSA names to m_registered
15884         bitmap.
15885         (path_oracle::reset_path): Clear m_registered bitmap.
15886         * value-relation.h (path_oracle::set_root_oracle): New.
15888 2022-01-21  Jakub Jelinek  <jakub@redhat.com>
15890         PR rtl-optimization/102478
15891         * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
15892         force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
15893         would be needed.
15895 2022-01-20  Richard Biener  <rguenther@suse.de>
15897         PR middle-end/100786
15898         * gimple-fold.cc (get_symbol_constant_value): Only return
15899         values of compatible type to the symbol.
15901 2022-01-20  Andrew MacLeod  <amacleod@redhat.com>
15903         * value-relation.cc (relation_oracle::valid_equivs): Query and add
15904         if valid members of a set.
15905         (equiv_oracle::register_equiv): Call valid_equivs rather than
15906         bitmap direct operations.
15907         (path_oracle::register_equiv): Ditto.
15908         * value-relation.h (relation_oracle::valid_equivs): New prototype.
15910 2022-01-20  Richard Biener  <rguenther@suse.de>
15912         PR target/100784
15913         * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
15914         LHS before folding __builtin_ia32_shufpd and friends.
15916 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
15918         * config/arm/crypto.md (aes_op_protect): Allow moves from core
15919         registers and from memory.
15920         (aes_op_protect_misalign_load): New pattern.
15921         (aes_op_protect_neon_vld1v16qi): New pattern.
15923 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
15925         * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
15926         New pattern.
15927         (aarch32_crypto_aese_fused_protected): Likewise.
15928         (aarch32_crypto_aesd_fused_protected): Likewise.
15930 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
15932         * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
15933         to define_expand.  Add mitigation for the Cortex-A AES erratum
15934         when enabled.
15935         (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
15936         on original crypto_<CRYPTO_AES:crypto_pattern> insn.
15937         (aes_op_protect): New pattern.
15938         * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
15940 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
15942         * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
15943         (ALL_QUIRKS): Add it.
15944         (cortex-a57, cortex-a72): Enable it.
15945         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
15946         * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
15947         option.
15948         (mfix-cortex-a72-aes-1655431): New option alias.
15949         * config/arm/arm.cc (arm_option_override): Handle default settings
15950         for AES erratum switch.
15951         * doc/invoke.texi (Arm Options): Document new options.
15953 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
15955         * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
15956         <crypto_mode> rather than hard-coding the mode.
15957         (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
15958         (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
15959         (*aarch32_crypto_aese_fused): Likewise.
15960         (*aarch32_crypto_aesd_fused): Likewise.
15961         (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
15962         (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
15963         (crypto_sha1h_lb): Likewise.
15964         (crypto_vmullp64): Likewise.
15965         (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
15966         (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
15968 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
15970         * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
15971         iterator to pattern name to disambiguate.
15972         (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
15973         (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
15974         (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
15975         (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
15976         (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
15978 2022-01-20  Martin Liska  <mliska@suse.cz>
15980         PR bootstrap/104135
15981         * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
15982         * rtl.cc: Partially disable -Wformat-diag for RTL checking
15983         error messages.
15985 2022-01-20  Jakub Jelinek  <jakub@redhat.com>
15987         PR debug/103874
15988         * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
15989         block_num > 0, index entry even if !have_multiple_function_sections.
15991 2022-01-20  liuhongt  <hongtao.liu@intel.com>
15993         PR target/103771
15994         * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
15995         integral mode mask pack by multi steps which takes
15996         vec_pack_sbool_trunc_optab as start when elements number is
15997         less than BITS_PER_UNITS.
15999 2022-01-20  Richard Biener  <rguenther@suse.de>
16001         PR tree-optimization/104114
16002         * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
16003         single element vector decomposition.
16005 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
16007         * ifcvt.cc (noce_convert_multiple_sets_1): New function.
16008         (noce_convert_multiple_sets): Call function a second time if we can
16009         improve the first try.
16011 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
16013         * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
16014         reversed comparison.
16015         (try_emit_cmove_seq): New function to facilitate creating a cmov
16016         sequence.
16017         (noce_convert_multiple_sets): Create two sequences and use the less
16018         expensive one.
16020 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
16022         * rtl.h (struct rtx_comparison): New struct that holds an rtx
16023         comparison.
16024         * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
16025         single parameters.
16026         (rs6000_emit_swsqrt): Likewise.
16027         * expmed.cc (expand_sdiv_pow2): Likewise.
16028         (emit_store_flag): Likewise.
16029         * expr.cc (expand_cond_expr_using_cmove): Likewise.
16030         (expand_expr_real_2): Likewise.
16031         * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
16032         parameters.
16033         * optabs.cc (emit_conditional_move_1): New function.
16034         (expand_doubleword_shift_condmove): Use struct.
16035         (emit_conditional_move): Use struct and allow to call directly
16036         without going through preparation steps.
16037         * optabs.h (emit_conditional_move): Use struct.
16039 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
16041         * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
16042         (noce_process_if_block): Use potential costs.
16044 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
16046         * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
16047         (bb_ok_for_noce_convert_multiple_sets): Likewise.
16049 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
16051         * ifcvt.cc (need_cmov_or_rewire): New function.
16052         (noce_convert_multiple_sets): Call it.
16054 2022-01-19  David Malcolm  <dmalcolm@redhat.com>
16056         * attribs.cc (attribute_c_tests): Rename to...
16057         (attribs_cc_tests): ...this.
16058         * bitmap.cc (bitmap_c_tests): Rename to...
16059         (bitmap_cc_tests): ...this.
16060         * cgraph.cc (cgraph_c_finalize): Rename to...
16061         (cgraph_cc_finalize): ...this.
16062         (cgraph_c_tests): Rename to...
16063         (cgraph_cc_tests): ...this.
16064         * cgraph.h (cgraph_c_finalize): Rename to...
16065         (cgraph_cc_finalize): ...this.
16066         (cgraphunit_c_finalize): Rename to...
16067         (cgraphunit_cc_finalize): ...this.
16068         * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
16069         (cgraphunit_cc_finalize): ...this.
16070         * convert.cc (convert_c_tests): Rename to...
16071         (convert_cc_tests): ...this.
16072         * dbgcnt.cc (dbgcnt_c_tests): Rename to...
16073         (dbgcnt_cc_tests): ...this.
16074         * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
16075         (diagnostic_show_locus_cc_tests): ...this.
16076         * diagnostic.cc (diagnostic_c_tests): Rename to...
16077         (diagnostic_cc_tests): ...this.
16078         * dumpfile.cc (dumpfile_c_tests): Rename to...
16079         (dumpfile_cc_tests): ...this.
16080         * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
16081         (dwarf2out_cc_finalize): ...this.
16082         * dwarf2out.h (dwarf2out_c_finalize): Rename to...
16083         (dwarf2out_cc_finalize): ...this.
16084         * edit-context.cc (edit_context_c_tests): Rename to...
16085         (edit_context_cc_tests): ...this.
16086         * et-forest.cc (et_forest_c_tests): Rename to...
16087         (et_forest_cc_tests): ...this.
16088         * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
16089         (fibonacci_heap_cc_tests): ...this.
16090         * fold-const.cc (fold_const_c_tests): Rename to...
16091         (fold_const_cc_tests): ...this.
16092         * function-tests.cc (function_tests_c_tests): Rename to...
16093         (function_tests_cc_tests): ...this.
16094         * gcse.cc (gcse_c_finalize): Rename to...
16095         (gcse_cc_finalize): ...this.
16096         * gcse.h (gcse_c_finalize): Rename to...
16097         (gcse_cc_finalize): ...this.
16098         * ggc-tests.cc (ggc_tests_c_tests): Rename to...
16099         (ggc_tests_cc_tests): ...this.
16100         * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
16101         (store_merging_cc_tests): ...this.
16102         * gimple.cc (gimple_c_tests): Rename to...
16103         (gimple_cc_tests): ...this.
16104         * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
16105         (hash_map_tests_cc_tests): ...this.
16106         * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
16107         (hash_set_tests_cc_tests): ...this.
16108         * input.cc (input_c_tests): Rename to...
16109         (input_cc_tests): ...this.
16110         * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
16111         (ipa_cp_cc_finalize): ...this.
16112         * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
16113         (ipa_fnsummary_cc_finalize): ...this.
16114         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
16115         (ipa_fnsummary_cc_finalize): ...this.
16116         * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
16117         (ipa_modref_tree_cc_tests): ...this.
16118         * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
16119         * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
16120         (ipa_modref_cc_finalize): ...this.
16121         * ipa-modref.h (ipa_modref_c_finalize): Rename to...
16122         (ipa_modref_cc_finalize): ...this.
16123         * ipa-prop.h (ipa_cp_c_finalize): Rename to...
16124         (ipa_cp_cc_finalize): ...this.
16125         * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
16126         (ipa_reference_cc_finalize): ...this.
16127         * ipa-reference.h (ipa_reference_c_finalize): Rename to...
16128         (ipa_reference_cc_finalize): ...this.
16129         * ira-costs.cc (ira_costs_c_finalize): Rename to...
16130         (ira_costs_cc_finalize): ...this.
16131         * ira.h (ira_costs_c_finalize): Rename to...
16132         (ira_costs_cc_finalize): ...this.
16133         * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
16134         (opt_suggestions_cc_tests): ...this.
16135         * opts.cc (opts_c_tests): Rename to...
16136         (opts_cc_tests): ...this.
16137         * predict.cc (predict_c_tests): Rename to...
16138         (predict_cc_tests): ...this.
16139         * pretty-print.cc (pretty_print_c_tests): Rename to...
16140         (pretty_print_cc_tests): ...this.
16141         * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
16142         (read_rtl_function_cc_tests): ...this.
16143         * rtl-tests.cc (rtl_tests_c_tests): Rename to...
16144         (rtl_tests_cc_tests): ...this.
16145         * sbitmap.cc (sbitmap_c_tests): Rename to...
16146         (sbitmap_cc_tests): ...this.
16147         * selftest-run-tests.cc (selftest::run_tests): Update calls for
16148         _c_ to _cc_ function renamings; fix names of attribs and
16149         opt-suggestions tests.
16150         * selftest.cc (selftest_c_tests): Rename to...
16151         (selftest_cc_tests): ...this.
16152         * selftest.h (attribute_c_tests): Rename to...
16153         (attribs_cc_tests): ...this.
16154         (bitmap_c_tests): Rename to...
16155         (bitmap_cc_tests): ...this.
16156         (cgraph_c_tests): Rename to...
16157         (cgraph_cc_tests): ...this.
16158         (convert_c_tests): Rename to...
16159         (convert_cc_tests): ...this.
16160         (diagnostic_c_tests): Rename to...
16161         (diagnostic_cc_tests): ...this.
16162         (diagnostic_show_locus_c_tests): Rename to...
16163         (diagnostic_show_locus_cc_tests): ...this.
16164         (dumpfile_c_tests): Rename to...
16165         (dumpfile_cc_tests): ...this.
16166         (edit_context_c_tests): Rename to...
16167         (edit_context_cc_tests): ...this.
16168         (et_forest_c_tests): Rename to...
16169         (et_forest_cc_tests): ...this.
16170         (fibonacci_heap_c_tests): Rename to...
16171         (fibonacci_heap_cc_tests): ...this.
16172         (fold_const_c_tests): Rename to...
16173         (fold_const_cc_tests): ...this.
16174         (function_tests_c_tests): Rename to...
16175         (function_tests_cc_tests): ...this.
16176         (ggc_tests_c_tests): Rename to...
16177         (ggc_tests_cc_tests): ...this.
16178         (gimple_c_tests): Rename to...
16179         (gimple_cc_tests): ...this.
16180         (hash_map_tests_c_tests): Rename to...
16181         (hash_map_tests_cc_tests): ...this.
16182         (hash_set_tests_c_tests): Rename to...
16183         (hash_set_tests_cc_tests): ...this.
16184         (input_c_tests): Rename to...
16185         (input_cc_tests): ...this.
16186         (opts_c_tests): Rename to...
16187         (opts_cc_tests): ...this.
16188         (predict_c_tests): Rename to...
16189         (predict_cc_tests): ...this.
16190         (pretty_print_c_tests): Rename to...
16191         (pretty_print_cc_tests): ...this.
16192         (read_rtl_function_c_tests): Rename to...
16193         (read_rtl_function_cc_tests): ...this.
16194         (rtl_tests_c_tests): Rename to...
16195         (rtl_tests_cc_tests): ...this.
16196         (sbitmap_c_tests): Rename to...
16197         (sbitmap_cc_tests): ...this.
16198         (selftest_c_tests): Rename to...
16199         (selftest_cc_tests): ...this.
16200         (simplify_rtx_c_tests): Rename to...
16201         (simplify_rtx_cc_tests): ...this.
16202         (spellcheck_c_tests): Rename to...
16203         (spellcheck_cc_tests): ...this.
16204         (spellcheck_tree_c_tests): Rename to...
16205         (spellcheck_tree_cc_tests): ...this.
16206         (sreal_c_tests): Rename to...
16207         (sreal_cc_tests): ...this.
16208         (store_merging_c_tests): Rename to...
16209         (store_merging_cc_tests): ...this.
16210         (tree_c_tests): Rename to...
16211         (tree_cc_tests): ...this.
16212         (tree_cfg_c_tests): Rename to...
16213         (tree_cfg_cc_tests): ...this.
16214         (typed_splay_tree_c_tests): Rename to...
16215         (typed_splay_tree_cc_tests): ...this.
16216         (vec_c_tests): Rename to...
16217         (vec_cc_tests): ...this.
16218         (vec_perm_indices_c_tests): Rename to...
16219         (vec_perm_indices_cc_tests): ..this.
16220         (opt_proposer_c_tests): Rename to...
16221         (opt_suggestions_cc_tests): ...this.
16222         (dbgcnt_c_tests): Rename to...
16223         (dbgcnt_cc_tests): ...this.
16224         (ipa_modref_tree_c_tests): Rename to...
16225         (ipa_modref_tree_cc_tests): ...this.
16226         * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
16227         (simplify_rtx_cc_tests): ...this.
16228         * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
16229         (spellcheck_tree_cc_tests): ...this.
16230         * spellcheck.cc (spellcheck_c_tests): Rename to...
16231         (spellcheck_cc_tests): ...this.
16232         * sreal.cc (sreal_c_tests): Rename to...
16233         (sreal_cc_tests): ...this.
16234         * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
16235         function renamings.
16236         * tree-cfg.cc (tree_cfg_c_tests): Rename to...
16237         (tree_cfg_cc_tests): ...this.
16238         * tree.cc (tree_c_tests): Rename to...
16239         (tree_cc_tests): ...this.
16240         * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
16241         (typed_splay_tree_cc_tests): ...this.
16242         * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
16243         (vec_perm_indices_cc_tests): ...this.
16244         * vec.cc (vec_c_tests): Rename to...
16245         (vec_cc_tests): ...this.
16247 2022-01-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
16249         PR tree-optimization/103997
16250         * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
16251         vectorization.
16253 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
16255         PR middle-end/102860
16256         * match.pd (x %[fl] y -> x % y): New simplification for
16257         unsigned integral types.
16258         * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
16259         for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
16261 2022-01-19  Richard Biener  <rguenther@suse.de>
16263         PR tree-optimization/104112
16264         * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
16265         for required intermediate vector types.
16267 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
16269         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
16271 2022-01-19  Martin Liska  <mliska@suse.cz>
16273         * configure.ac: Remove -Wno-error=format-diag.
16274         * configure: Regenerate.
16276 2022-01-19  Martin Liska  <mliska@suse.cz>
16278         * config/riscv/riscv.cc (riscv_handle_type_attribute):
16279         Update one -Wformat-diag string in warning message.
16281 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
16283         PR middle-end/104103
16284         * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
16285         .ASAN_MARK calls.
16287 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
16289         PR c++/89074
16290         * fold-const.cc (address_compare): Consider different STRING_CSTs
16291         with the same lengths that memcmp the same as equal, not different.
16293 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
16295         * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
16296         {%0}.
16298 2022-01-19  Martin Liska  <mliska@suse.cz>
16299             Thomas Schwinge  <thomas@codesourcery.com>
16301         * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
16302         warning messages.
16304 2022-01-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16306         PR target/104090
16307         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
16308         rs6000_cpu.
16310 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
16312         PR target/104104
16313         * config/i386/sse.md
16314         (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
16315         avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
16316         avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
16317         avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
16318         avx512dq_rangep<mode><mask_name><round_saeonly_name>,
16319         avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
16320         <avx512>_getmant<mode><mask_name><round_saeonly_name>,
16321         avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
16322         Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
16324 2022-01-19  Martin Sebor  <msebor@redhat.com>
16326         PR middle-end/104069
16327         * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
16328         an unknown result as documented.
16330 2022-01-18  Andrew Pinski  <apinski@marvell.com>
16332         * ipa-split.cc (visit_bb): Fix comment before the
16333         warning/error attribute checking code.
16335 2022-01-18  David Faust  <david.faust@oracle.com>
16337         * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
16338         for base strtab offset yet as it may change.
16339         (output_asm_btfext_core_reloc): Do so here instead.
16340         (output_btfext_core_sections): Likewise.
16342 2022-01-18  David Faust  <david.faust@oracle.com>
16344         * config/bpf/coreout.cc (output_btfext_header): Account for
16345         4-byte record size in core_relo_len.
16346         (output_btfext_core_sections): Only write record size once.
16347         * config/bpf/coreout.h (btf_ext_section_header): Delete unused
16348         member.
16350 2022-01-18  Maciej W. Rozycki  <macro@embecosm.com>
16352         * common/config/riscv/riscv-common.cc
16353         (riscv_subset_list::parse_multiletter_ext): Move pointer
16354         arithmetic ahead of `free'.
16356 2022-01-18  Jason Merrill  <jason@redhat.com>
16358         PR c++/104007
16359         * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
16360         context.
16362 2022-01-18  Sandra Loosemore  <sandra@codesourcery.com>
16364         PR middle-end/103163
16365         * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
16366         (init_emit_once): ...not here.
16368 2022-01-18  Martin Liska  <mliska@suse.cz>
16370         * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
16371         * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
16372         * config/arc/arc.md: Likewise.
16373         * config/avr/avr.cc (avr_section_type_flags): Likewise.
16374         * config/bfin/bfin.cc (bfin_option_override): Likewise.
16375         (bfin_handle_longcall_attribute): Likewise.
16376         * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
16377         * config/frv/frv.cc (frv_expand_builtin): Likewise.
16378         * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
16379         * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
16380         (iq2000_print_operand_address): Likewise.
16381         (iq2000_print_operand): Likewise.
16382         * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
16383         (m32c_pragma_address): Likewise.
16384         * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
16385         * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
16386         (mips_set_compression_mode): Likewise.
16387         * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
16388         (mmix_print_operand): Likewise.
16389         (mmix_output_shiftvalue_op_from_str): Likewise.
16390         (mmix_output_shifted_value): Likewise.
16391         * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
16392         * config/msp430/msp430.cc (msp430_option_override): Likewise.
16393         (msp430_attr): Likewise.
16394         (msp430_expand_delay_cycles): Likewise.
16395         (msp430_expand_builtin): Likewise.
16396         * config/rs6000/aix73.h: Likewise.
16397         * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
16398         * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
16399         (valid_psw_flag): Likewise.
16400         * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
16401         * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
16402         (xstormy16_expand_builtin_va_start): Likewise.
16403         (xstormy16_handle_below100_attribute): Likewise.
16405 2022-01-18  Martin Liska  <mliska@suse.cz>
16407         * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
16408         warning.
16409         (vms_pragma_standard): Likewise.
16410         (vms_pragma_extern_prefix): Likewise.
16412 2022-01-18  Martin Liska  <mliska@suse.cz>
16414         * config/xtensa/xtensa.cc (print_operand): Fix warnings.
16415         (print_operand_address): Likewise.
16416         (xtensa_multibss_section_type_flags): Likewise.
16418 2022-01-18  Martin Liska  <mliska@suse.cz>
16420         * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
16421         wording of an error message.
16423 2022-01-18  Martin Liska  <mliska@suse.cz>
16425         * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
16426         warning.
16427         (ghs_pragma_section): Likewise.
16428         (ghs_pragma_interrupt): Likewise.
16429         (ghs_pragma_starttda): Likewise.
16430         (ghs_pragma_startsda): Likewise.
16431         (ghs_pragma_startzda): Likewise.
16432         (ghs_pragma_endtda): Likewise.
16433         (ghs_pragma_endsda): Likewise.
16434         (ghs_pragma_endzda): Likewise.
16436 2022-01-18  Martin Liska  <mliska@suse.cz>
16438         * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
16439         Fix warnings.
16440         * config/nds32/nds32-intrinsic.md: Likewise.
16441         * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
16442         * config/nds32/nds32.cc (nds32_print_operand): Likewise.
16443         (nds32_insert_attributes): Likewise.
16445 2022-01-18  Martin Liska  <mliska@suse.cz>
16447         * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
16448         keyword.
16449         * config/nvptx/nvptx.md: Remove trailing dot.
16451 2022-01-18  Martin Liska  <mliska@suse.cz>
16453         * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
16454         Wrap keywords with quotes and remove trailing dots.
16455         (riscv_subset_list::parsing_subset_version): Likewise.
16456         (riscv_subset_list::parse_std_ext): Likewise.
16457         (riscv_subset_list::parse_multiletter_ext): Likewise.
16458         * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
16460 2022-01-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
16462         * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
16463         argument suggested_unroll_factor.
16464         (vect_analyze_loop_costing): Likewise.
16465         (_loop_vec_info::_loop_vec_info): Initialize new member
16466         suggested_unroll_factor.
16467         (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
16468         main loop use partial vectors.
16469         (vect_analyze_loop_2): Pass and use new argument
16470         suggested_unroll_factor.
16471         (vect_analyze_loop_1): Change to intialize local
16472         suggested_unroll_factor and use it.
16473         (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
16474         * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
16475         suggested_unroll_factor.
16476         (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
16477         (vector_costs::suggested_unroll_factor): New getter function.
16478         (finish_cost): Set return argument suggested_unroll_factor.
16480 2022-01-18  Andrew MacLeod  <amacleod@redhat.com>
16482         PR tree-optimization/104038
16483         * doc/invoke.texi (relation-block-limit): New.
16484         * params.opt (relation-block-limit): New.
16485         * value-relation.cc (dom_oracle::register_relation): Check for NULL
16486         record before invoking transitive registery.
16487         (dom_oracle::set_one_relation): Check limit before creating record.
16488         (dom_oracle::register_transitives): Stop when no record created.
16489         * value-relation.h (relation_chain_head::m_num_relations): New.
16491 2022-01-18  Richard Biener  <rguenther@suse.de>
16493         PR ipa/103989
16494         * ipa-inline.cc (inline_small_functions): Do not enqueue call
16495         edges originating in functions compiled with -Og.
16497 2022-01-18  Richard Biener  <rguenther@suse.de>
16499         PR ipa/103989
16500         * passes.def (pass_all_optimizations_g): Remove pass_modref
16501         and pass_local_pure_const.
16503 2022-01-18  Martin Liska  <mliska@suse.cz>
16505         * config/s390/s390.cc: Fix -Wformat-diag warnings.
16507 2022-01-18  Martin Liska  <mliska@suse.cz>
16509         * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
16510         keyword in quotes.
16511         (s390_resolve_overloaded_builtin): Remove trailing dot.
16512         * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
16513         (s390_expand_builtin): Remove trailing dot.
16514         (s390_emit_prologue): Likewise, use semicolon.
16515         (s390_option_override_internal): Update keyword.
16516         * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
16518 2022-01-18  Martin Liska  <mliska@suse.cz>
16520         * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
16521         keywords and use %qs instead of %<%s%>.
16523 2022-01-18  Richard Biener  <rguenther@suse.de>
16525         PR tree-optimization/103987
16526         * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
16527         query with a pointer check.
16529 2022-01-18  Richard Sandiford  <richard.sandiford@arm.com>
16531         PR target/104005
16532         * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
16533         When using MEM_EXPR, require the base to be a decl.
16535 2022-01-18  Richard Biener  <rguenther@suse.de>
16537         * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
16538         avoid padding.
16539         * function.h (struct function): Likewise.
16541 2022-01-18  Arnaud Charlet  <charlet@adacore.com>
16543         * doc/install.texi: Update prerequisites for GNAT
16545 2022-01-18  Andrew Pinski  <apinski@marvell.com>
16547         PR tree-optimization/101941
16548         * ipa-split.cc (visit_bb): Disallow function calls where
16549         the function has either error or warning attribute.
16551 2022-01-18  Richard Biener  <rguenther@suse.de>
16553         PR tree-optimization/104064
16554         * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
16555         DR_INIT fits in a signed HWI, represent the difference from the
16556         first DR in unsigned.
16558 2022-01-17  Martin Liska  <mliska@suse.cz>
16560         * Makefile.in: Rename .c names to .cc.
16561         * config.gcc: Likewise.
16562         * configure: Regenerate. Likewise.
16563         * configure.ac: Likewise.
16564         * gengtype.cc (set_gc_used): Likewise.
16565         (source_dot_c_frul): Likewise.
16566         (source_dot_cc_frul): Likewise.
16567         (struct file_rule_st): Likewise.
16568         (close_output_files): Likewise.
16569         * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
16571 2022-01-17  Martin Liska  <mliska@suse.cz>
16573         * Makefile.in: Rename .c names to .cc.
16574         * alias.h: Likewise.
16575         * asan.cc: Likewise.
16576         * auto-profile.h: Likewise.
16577         * basic-block.h (struct basic_block_d): Likewise.
16578         * btfout.cc: Likewise.
16579         * builtins.cc (expand_builtin_longjmp): Likewise.
16580         (validate_arg): Likewise.
16581         (access_ref::offset_bounded): Likewise.
16582         * caller-save.cc (reg_restore_code): Likewise.
16583         (setup_save_areas): Likewise.
16584         * calls.cc (initialize_argument_information): Likewise.
16585         (expand_call): Likewise.
16586         (emit_library_call_value_1): Likewise.
16587         * cfg-flags.def (RTL): Likewise.
16588         (SIBCALL): Likewise.
16589         (CAN_FALLTHRU): Likewise.
16590         * cfganal.cc (post_order_compute): Likewise.
16591         * cfgcleanup.cc (try_simplify_condjump): Likewise.
16592         (merge_blocks_move_predecessor_nojumps): Likewise.
16593         (merge_blocks_move_successor_nojumps): Likewise.
16594         (merge_blocks_move): Likewise.
16595         (old_insns_match_p): Likewise.
16596         (try_crossjump_bb): Likewise.
16597         * cfgexpand.cc (expand_gimple_stmt): Likewise.
16598         * cfghooks.cc (split_block_before_cond_jump): Likewise.
16599         (profile_record_check_consistency): Likewise.
16600         * cfghooks.h: Likewise.
16601         * cfgrtl.cc (pass_free_cfg::execute): Likewise.
16602         (rtl_can_merge_blocks): Likewise.
16603         (try_redirect_by_replacing_jump): Likewise.
16604         (make_pass_outof_cfg_layout_mode): Likewise.
16605         (cfg_layout_can_merge_blocks_p): Likewise.
16606         * cgraph.cc (release_function_body): Likewise.
16607         (cgraph_node::get_fun): Likewise.
16608         * cgraph.h (struct cgraph_node): Likewise.
16609         (asmname_hasher::equal): Likewise.
16610         (cgraph_inline_failed_type): Likewise.
16611         (thunk_adjust): Likewise.
16612         (dump_callgraph_transformation): Likewise.
16613         (record_references_in_initializer): Likewise.
16614         (ipa_discover_variable_flags): Likewise.
16615         * cgraphclones.cc (GTY): Likewise.
16616         * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
16617         * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
16618         * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
16619         * collect2.cc (maybe_run_lto_and_relink): Likewise.
16620         * combine-stack-adj.cc: Likewise.
16621         * combine.cc (setup_incoming_promotions): Likewise.
16622         (combine_simplify_rtx): Likewise.
16623         (count_rtxs): Likewise.
16624         * common.opt: Likewise.
16625         * common/config/aarch64/aarch64-common.cc: Likewise.
16626         * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
16627         * common/config/avr/avr-common.cc: Likewise.
16628         * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
16629         * conditions.h: Likewise.
16630         * config.gcc: Likewise.
16631         * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
16632         * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
16633         (aarch64_get_extension_string_for_isa_flags): Likewise.
16634         * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
16635         * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
16636         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
16637         (aarch64_option_valid_attribute_p): Likewise.
16638         (aarch64_short_vector_p): Likewise.
16639         (aarch64_float_const_representable_p): Likewise.
16640         * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
16641         (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
16642         (GTY): Likewise.
16643         * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
16644         * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
16645         * config/aarch64/t-aarch64: Likewise.
16646         * config/aarch64/x-aarch64: Likewise.
16647         * config/aarch64/x-darwin: Likewise.
16648         * config/alpha/alpha-protos.h: Likewise.
16649         * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
16650         * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
16651         (enum reg_class): Likewise.
16652         * config/alpha/alpha.md: Likewise.
16653         * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
16654         * config/alpha/x-alpha: Likewise.
16655         * config/arc/arc-protos.h (arc_eh_uses): Likewise.
16656         * config/arc/arc.cc (ARC_OPT): Likewise.
16657         (arc_ccfsm_advance): Likewise.
16658         (arc_arg_partial_bytes): Likewise.
16659         (conditionalize_nonjump): Likewise.
16660         * config/arc/arc.md: Likewise.
16661         * config/arc/builtins.def: Likewise.
16662         * config/arc/t-arc: Likewise.
16663         * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
16664         (arm_pragma_target_parse): Likewise.
16665         * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
16666         (arm_cpu_cpp_builtins): Likewise.
16667         * config/arm/arm.cc (vfp3_const_double_index): Likewise.
16668         (shift_op): Likewise.
16669         (thumb2_final_prescan_insn): Likewise.
16670         (arm_final_prescan_insn): Likewise.
16671         (arm_asm_output_labelref): Likewise.
16672         (arm_small_register_classes_for_mode_p): Likewise.
16673         * config/arm/arm.h: Likewise.
16674         * config/arm/arm.md: Likewise.
16675         * config/arm/driver-arm.cc: Likewise.
16676         * config/arm/symbian.h: Likewise.
16677         * config/arm/t-arm: Likewise.
16678         * config/arm/thumb1.md: Likewise.
16679         * config/arm/x-arm: Likewise.
16680         * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
16681         * config/avr/avr-fixed.md: Likewise.
16682         * config/avr/avr-log.cc (avr_log_vadump): Likewise.
16683         * config/avr/avr-mcus.def: Likewise.
16684         * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
16685         * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
16686         * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
16687         * config/avr/avr.cc (avr_option_override): Likewise.
16688         (avr_build_builtin_va_list): Likewise.
16689         (avr_mode_dependent_address_p): Likewise.
16690         (avr_function_arg_advance): Likewise.
16691         (avr_asm_output_aligned_decl_common): Likewise.
16692         * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
16693         (SUPPORTS_INIT_PRIORITY): Likewise.
16694         * config/avr/avr.md: Likewise.
16695         * config/avr/builtins.def: Likewise.
16696         * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
16697         * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
16698         (main): Likewise.
16699         * config/avr/t-avr: Likewise.
16700         * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
16701         * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
16702         * config/bpf/bpf.h (enum reg_class): Likewise.
16703         * config/bpf/t-bpf: Likewise.
16704         * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
16705         * config/cr16/cr16-protos.h: Likewise.
16706         * config/cris/cris.cc (cris_address_cost): Likewise.
16707         (cris_side_effect_mode_ok): Likewise.
16708         (cris_init_machine_status): Likewise.
16709         (cris_emit_movem_store): Likewise.
16710         * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
16711         (enum reg_class): Likewise.
16712         (struct cum_args): Likewise.
16713         * config/cris/cris.opt: Likewise.
16714         * config/cris/sync.md: Likewise.
16715         * config/csky/csky.cc (csky_expand_prologue): Likewise.
16716         * config/darwin-c.cc: Likewise.
16717         * config/darwin-f.cc: Likewise.
16718         * config/darwin-sections.def (zobj_const_section): Likewise.
16719         * config/darwin.cc (output_objc_section_asm_op): Likewise.
16720         (fprintf): Likewise.
16721         * config/darwin.h (GTY): Likewise.
16722         * config/elfos.h: Likewise.
16723         * config/epiphany/epiphany-sched.md: Likewise.
16724         * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
16725         * config/epiphany/epiphany.h (GTY): Likewise.
16726         (NO_FUNCTION_CSE): Likewise.
16727         * config/epiphany/mode-switch-use.cc: Likewise.
16728         * config/epiphany/predicates.md: Likewise.
16729         * config/epiphany/t-epiphany: Likewise.
16730         * config/fr30/fr30-protos.h: Likewise.
16731         * config/frv/frv-protos.h: Likewise.
16732         * config/frv/frv.cc (TLS_BIAS): Likewise.
16733         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
16734         * config/ft32/ft32-protos.h: Likewise.
16735         * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
16736         * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
16737         * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
16738         * config/gcn/t-gcn-hsa: Likewise.
16739         * config/gcn/t-omp-device: Likewise.
16740         * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
16741         (same_cmp_following_p): Likewise.
16742         * config/h8300/h8300.cc (F): Likewise.
16743         * config/h8300/h8300.h (struct cum_arg): Likewise.
16744         (BRANCH_COST): Likewise.
16745         * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
16746         * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
16747         * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
16748         * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
16749         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
16750         * config/i386/i386-c.cc (ix86_target_macros): Likewise.
16751         * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
16752         * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
16753         * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
16754         (ix86_register_pragmas): Likewise.
16755         (ix86_d_has_stdcall_convention): Likewise.
16756         (i386_pe_seh_init_sections): Likewise.
16757         * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
16758         (ix86_function_value_regno_p): Likewise.
16759         (ix86_compute_frame_layout): Likewise.
16760         (legitimize_pe_coff_symbol): Likewise.
16761         (output_pic_addr_const): Likewise.
16762         * config/i386/i386.h (defined): Likewise.
16763         (host_detect_local_cpu): Likewise.
16764         (CONSTANT_ADDRESS_P): Likewise.
16765         (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
16766         (struct machine_frame_state): Likewise.
16767         * config/i386/i386.md: Likewise.
16768         * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
16769         * config/i386/mmx.md: Likewise.
16770         * config/i386/sse.md: Likewise.
16771         * config/i386/t-cygming: Likewise.
16772         * config/i386/t-djgpp: Likewise.
16773         * config/i386/t-gnu-property: Likewise.
16774         * config/i386/t-i386: Likewise.
16775         * config/i386/t-intelmic: Likewise.
16776         * config/i386/t-omp-device: Likewise.
16777         * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
16778         (i386_pe_adjust_class_at_definition): Likewise.
16779         * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
16780         (i386_pe_mangle_decl_assembler_name): Likewise.
16781         (i386_pe_encode_section_info): Likewise.
16782         * config/i386/x-cygwin: Likewise.
16783         * config/i386/x-darwin: Likewise.
16784         * config/i386/x-i386: Likewise.
16785         * config/i386/x-mingw32: Likewise.
16786         * config/i386/x86-tune-sched-core.cc: Likewise.
16787         * config/i386/x86-tune.def: Likewise.
16788         * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
16789         * config/ia64/freebsd.h: Likewise.
16790         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
16791         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
16792         * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
16793         (ia64_secondary_reload_class): Likewise.
16794         (bundling): Likewise.
16795         * config/ia64/ia64.h: Likewise.
16796         * config/ia64/ia64.md: Likewise.
16797         * config/ia64/predicates.md: Likewise.
16798         * config/ia64/sysv4.h: Likewise.
16799         * config/ia64/t-ia64: Likewise.
16800         * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
16801         * config/iq2000/iq2000.md: Likewise.
16802         * config/linux.h (TARGET_HAS_BIONIC): Likewise.
16803         (if): Likewise.
16804         * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
16805         * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
16806         * config/m32c/t-m32c: Likewise.
16807         * config/m32r/m32r-protos.h: Likewise.
16808         * config/m32r/m32r.cc (m32r_print_operand): Likewise.
16809         * config/m32r/m32r.h: Likewise.
16810         * config/m32r/m32r.md: Likewise.
16811         * config/m68k/m68k-isas.def: Likewise.
16812         * config/m68k/m68k-microarchs.def: Likewise.
16813         * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
16814         (m68k_epilogue_uses): Likewise.
16815         * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
16816         (m68k_sched_adjust_cost): Likewise.
16817         (m68k_sched_md_init): Likewise.
16818         * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
16819         (enum m68k_function_kind): Likewise.
16820         * config/m68k/m68k.md: Likewise.
16821         * config/m68k/m68kemb.h: Likewise.
16822         * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
16823         * config/mcore/mcore-protos.h: Likewise.
16824         * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
16825         (mcore_expand_prolog): Likewise.
16826         * config/mcore/mcore.h (TARGET_MCORE): Likewise.
16827         * config/mcore/mcore.md: Likewise.
16828         * config/microblaze/microblaze-protos.h: Likewise.
16829         * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
16830         (microblaze_function_prologue): Likewise.
16831         (microblaze_function_epilogue): Likewise.
16832         (microblaze_select_section): Likewise.
16833         (microblaze_asm_output_mi_thunk): Likewise.
16834         (microblaze_eh_return): Likewise.
16835         * config/microblaze/microblaze.h: Likewise.
16836         * config/microblaze/microblaze.md: Likewise.
16837         * config/microblaze/t-microblaze: Likewise.
16838         * config/mips/driver-native.cc: Likewise.
16839         * config/mips/loongson2ef.md: Likewise.
16840         * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
16841         * config/mips/mips.cc (mips_rtx_costs): Likewise.
16842         (mips_output_filename): Likewise.
16843         (mips_output_function_prologue): Likewise.
16844         (mips_output_function_epilogue): Likewise.
16845         (mips_output_mi_thunk): Likewise.
16846         * config/mips/mips.h: Likewise.
16847         * config/mips/mips.md: Likewise.
16848         * config/mips/t-mips: Likewise.
16849         * config/mips/x-native: Likewise.
16850         * config/mmix/mmix-protos.h: Likewise.
16851         * config/mmix/mmix.cc (mmix_option_override): Likewise.
16852         (mmix_dbx_register_number): Likewise.
16853         (mmix_expand_prologue): Likewise.
16854         * config/mmix/mmix.h: Likewise.
16855         * config/mmix/mmix.md: Likewise.
16856         * config/mmix/predicates.md: Likewise.
16857         * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
16858         (mn10300_legitimate_pic_operand_p): Likewise.
16859         * config/mn10300/mn10300.h (enum reg_class): Likewise.
16860         (NO_FUNCTION_CSE): Likewise.
16861         * config/moxie/moxie-protos.h: Likewise.
16862         * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
16863         * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
16864         * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
16865         (msp430_incoming_return_addr_rtx): Likewise.
16866         * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
16867         * config/msp430/t-msp430: Likewise.
16868         * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
16869         (nds32_rtx_costs_size_prefer): Likewise.
16870         (nds32_init_rtx_costs): Likewise.
16871         * config/nds32/nds32-doubleword.md: Likewise.
16872         * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
16873         (nds32_builtin_decl): Likewise.
16874         * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
16875         (enum nds32_isr_nested_type): Likewise.
16876         (enum reg_class): Likewise.
16877         * config/nds32/predicates.md: Likewise.
16878         * config/nds32/t-nds32: Likewise.
16879         * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
16880         * config/nvptx/nvptx-protos.h: Likewise.
16881         * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
16882         * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
16883         * config/nvptx/t-nvptx: Likewise.
16884         * config/nvptx/t-omp-device: Likewise.
16885         * config/pa/elf.h: Likewise.
16886         * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
16887         * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
16888         * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
16889         * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
16890         (pa_legitimize_reload_address): Likewise.
16891         (pa_can_use_return_insn): Likewise.
16892         * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
16893         (som_output_text_section_asm_op): Likewise.
16894         * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
16895         * config/pa/pa.md: Likewise.
16896         * config/pa/som.h: Likewise.
16897         * config/pa/t-pa: Likewise.
16898         * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
16899         * config/pdp11/pdp11.h: Likewise.
16900         * config/pdp11/pdp11.md: Likewise.
16901         * config/pdp11/t-pdp11: Likewise.
16902         * config/pru/pru.md: Likewise.
16903         * config/pru/t-pru: Likewise.
16904         * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
16905         (riscv_gpr_save_operation_p): Likewise.
16906         (riscv_d_register_target_info): Likewise.
16907         (riscv_init_builtins): Likewise.
16908         * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
16909         * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
16910         * config/riscv/t-riscv: Likewise.
16911         * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
16912         * config/rl78/t-rl78: Likewise.
16913         * config/rs6000/aix.h: Likewise.
16914         * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
16915         * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
16916         * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
16917         * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
16918         * config/rs6000/driver-rs6000.cc: Likewise.
16919         * config/rs6000/freebsd.h: Likewise.
16920         * config/rs6000/freebsd64.h: Likewise.
16921         * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
16922         * config/rs6000/rbtree.cc: Likewise.
16923         * config/rs6000/rbtree.h: Likewise.
16924         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
16925         * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
16926         (rs6000_expand_builtin): Likewise.
16927         (rs6000_init_builtins): Likewise.
16928         * config/rs6000/rs6000-cpus.def: Likewise.
16929         * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
16930         * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
16931         (quad_address_offset_p): Likewise.
16932         * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
16933         (rs6000_emit_epilogue): Likewise.
16934         * config/rs6000/rs6000-overload.def: Likewise.
16935         * config/rs6000/rs6000-p8swap.cc: Likewise.
16936         * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
16937         (rs6000_const_f32_to_i32): Likewise.
16938         * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
16939         (rs6000_debug_legitimize_address): Likewise.
16940         (rs6000_mode_dependent_address): Likewise.
16941         (rs6000_adjust_priority): Likewise.
16942         (rs6000_c_mode_for_suffix): Likewise.
16943         * config/rs6000/rs6000.h (defined): Likewise.
16944         (LONG_DOUBLE_TYPE_SIZE): Likewise.
16945         * config/rs6000/rs6000.md: Likewise.
16946         * config/rs6000/sysv4.h: Likewise.
16947         * config/rs6000/t-linux: Likewise.
16948         * config/rs6000/t-linux64: Likewise.
16949         * config/rs6000/t-rs6000: Likewise.
16950         * config/rs6000/x-darwin: Likewise.
16951         * config/rs6000/x-darwin64: Likewise.
16952         * config/rs6000/x-rs6000: Likewise.
16953         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
16954         * config/rx/rx.cc (rx_expand_builtin): Likewise.
16955         * config/s390/constraints.md: Likewise.
16956         * config/s390/driver-native.cc: Likewise.
16957         * config/s390/htmxlintrin.h: Likewise.
16958         * config/s390/s390-builtins.def (B_DEF): Likewise.
16959         (OB_DEF_VAR): Likewise.
16960         * config/s390/s390-builtins.h: Likewise.
16961         * config/s390/s390-c.cc: Likewise.
16962         * config/s390/s390-opts.h: Likewise.
16963         * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
16964         (s390_register_target_pragmas): Likewise.
16965         * config/s390/s390.cc (s390_init_builtins): Likewise.
16966         (s390_expand_plus_operand): Likewise.
16967         (s390_expand_atomic): Likewise.
16968         (s390_valid_target_attribute_inner_p): Likewise.
16969         * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
16970         * config/s390/s390.md: Likewise.
16971         * config/s390/t-s390: Likewise.
16972         * config/s390/vx-builtins.md: Likewise.
16973         * config/s390/x-native: Likewise.
16974         * config/sh/divtab-sh4-300.cc (main): Likewise.
16975         * config/sh/divtab-sh4.cc (main): Likewise.
16976         * config/sh/divtab.cc (main): Likewise.
16977         * config/sh/elf.h: Likewise.
16978         * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
16979         * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
16980         (sh_struct_value_rtx): Likewise.
16981         (sh_remove_reg_dead_or_unused_notes): Likewise.
16982         * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
16983         * config/sh/t-sh: Likewise.
16984         * config/sol2-protos.h (solaris_override_options): Likewise.
16985         * config/sol2.h: Likewise.
16986         * config/sparc/driver-sparc.cc: Likewise.
16987         * config/sparc/freebsd.h: Likewise.
16988         * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
16989         * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
16990         (sparc_asan_shadow_offset): Likewise.
16991         * config/sparc/sparc.h: Likewise.
16992         * config/sparc/sparc.md: Likewise.
16993         * config/sparc/t-sparc: Likewise.
16994         * config/sparc/x-sparc: Likewise.
16995         * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
16996         * config/t-darwin: Likewise.
16997         * config/t-dragonfly: Likewise.
16998         * config/t-freebsd: Likewise.
16999         * config/t-glibc: Likewise.
17000         * config/t-linux: Likewise.
17001         * config/t-netbsd: Likewise.
17002         * config/t-openbsd: Likewise.
17003         * config/t-pnt16-warn: Likewise.
17004         * config/t-sol2: Likewise.
17005         * config/t-vxworks: Likewise.
17006         * config/t-winnt: Likewise.
17007         * config/tilegx/t-tilegx: Likewise.
17008         * config/tilegx/tilegx-c.cc: Likewise.
17009         * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
17010         * config/tilegx/tilegx.md: Likewise.
17011         * config/tilepro/t-tilepro: Likewise.
17012         * config/tilepro/tilepro-c.cc: Likewise.
17013         * config/v850/t-v850: Likewise.
17014         * config/v850/v850-protos.h: Likewise.
17015         * config/v850/v850.cc (F): Likewise.
17016         * config/v850/v850.h (enum reg_class): Likewise.
17017         (SLOW_BYTE_ACCESS): Likewise.
17018         * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
17019         * config/vax/vax.h (enum reg_class): Likewise.
17020         * config/vax/vax.md: Likewise.
17021         * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
17022         * config/visium/visium.h: Likewise.
17023         * config/vms/t-vms: Likewise.
17024         * config/vms/vms-crtlmap.map: Likewise.
17025         * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
17026         * config/vx-common.h: Likewise.
17027         * config/x-darwin: Likewise.
17028         * config/x-hpux: Likewise.
17029         * config/x-linux: Likewise.
17030         * config/x-netbsd: Likewise.
17031         * config/x-openbsd: Likewise.
17032         * config/x-solaris: Likewise.
17033         * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
17034         * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
17035         * config/xtensa/xtensa.h: Likewise.
17036         * configure.ac: Likewise.
17037         * context.cc: Likewise.
17038         * convert.h: Likewise.
17039         * coretypes.h: Likewise.
17040         * coverage.cc: Likewise.
17041         * coverage.h: Likewise.
17042         * cppdefault.h (struct default_include): Likewise.
17043         * cprop.cc (local_cprop_pass): Likewise.
17044         (one_cprop_pass): Likewise.
17045         * cse.cc (hash_rtx_cb): Likewise.
17046         (fold_rtx): Likewise.
17047         * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
17048         * data-streamer.h (bp_unpack_var_len_int): Likewise.
17049         (streamer_write_widest_int): Likewise.
17050         * dbgcnt.def: Likewise.
17051         * dbxout.cc (dbxout_early_global_decl): Likewise.
17052         (dbxout_common_check): Likewise.
17053         * dbxout.h: Likewise.
17054         * debug.h (struct gcc_debug_hooks): Likewise.
17055         (dump_go_spec_init): Likewise.
17056         * df-core.cc: Likewise.
17057         * df-scan.cc (df_insn_info_delete): Likewise.
17058         (df_insn_delete): Likewise.
17059         * df.h (debug_df_chain): Likewise.
17060         (can_move_insns_across): Likewise.
17061         * dfp.cc (decimal_from_binary): Likewise.
17062         * diagnostic-color.cc: Likewise.
17063         * diagnostic-event-id.h: Likewise.
17064         * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
17065         * diagnostic.cc (bt_callback): Likewise.
17066         (num_digits): Likewise.
17067         * doc/avr-mmcu.texi: Likewise.
17068         * doc/cfg.texi: Likewise.
17069         * doc/contrib.texi: Likewise.
17070         * doc/cppinternals.texi: Likewise.
17071         * doc/extend.texi: Likewise.
17072         * doc/generic.texi: Likewise.
17073         * doc/gimple.texi: Likewise.
17074         * doc/gty.texi: Likewise.
17075         * doc/invoke.texi: Likewise.
17076         * doc/loop.texi: Likewise.
17077         * doc/lto.texi: Likewise.
17078         * doc/match-and-simplify.texi: Likewise.
17079         * doc/md.texi: Likewise.
17080         * doc/optinfo.texi: Likewise.
17081         * doc/options.texi: Likewise.
17082         * doc/passes.texi: Likewise.
17083         * doc/plugins.texi: Likewise.
17084         * doc/rtl.texi: Likewise.
17085         * doc/sourcebuild.texi: Likewise.
17086         * doc/tm.texi: Likewise.
17087         * doc/tm.texi.in: Likewise.
17088         * doc/tree-ssa.texi: Likewise.
17089         * dojump.cc (do_jump): Likewise.
17090         * dojump.h: Likewise.
17091         * dumpfile.cc (test_impl_location): Likewise.
17092         (test_capture_of_dump_calls): Likewise.
17093         * dumpfile.h (enum dump_kind): Likewise.
17094         (class dump_location_t): Likewise.
17095         (dump_enabled_p): Likewise.
17096         (enable_rtl_dump_file): Likewise.
17097         (dump_combine_total_stats): Likewise.
17098         * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
17099         * dwarf2ctf.h (ctf_debug_finish): Likewise.
17100         * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
17101         (struct loc_descr_context): Likewise.
17102         (rtl_for_decl_location): Likewise.
17103         (gen_subprogram_die): Likewise.
17104         (gen_label_die): Likewise.
17105         (is_trivial_indirect_ref): Likewise.
17106         (dwarf2out_late_global_decl): Likewise.
17107         (dwarf_file_hasher::hash): Likewise.
17108         (dwarf2out_end_source_file): Likewise.
17109         (dwarf2out_define): Likewise.
17110         (dwarf2out_early_finish): Likewise.
17111         * dwarf2out.h (struct dw_fde_node): Likewise.
17112         (struct dw_discr_list_node): Likewise.
17113         (output_loc_sequence_raw): Likewise.
17114         * emit-rtl.cc (gen_raw_REG): Likewise.
17115         (maybe_set_max_label_num): Likewise.
17116         * emit-rtl.h (struct rtl_data): Likewise.
17117         * errors.cc (internal_error): Likewise.
17118         (trim_filename): Likewise.
17119         * et-forest.cc: Likewise.
17120         * except.cc (init_eh_for_function): Likewise.
17121         * explow.cc (promote_ssa_mode): Likewise.
17122         (get_dynamic_stack_size): Likewise.
17123         * explow.h: Likewise.
17124         * expmed.h: Likewise.
17125         * expr.cc (safe_from_p): Likewise.
17126         (expand_expr_real_2): Likewise.
17127         (expand_expr_real_1): Likewise.
17128         * file-prefix-map.cc (remap_filename): Likewise.
17129         * final.cc (app_enable): Likewise.
17130         (make_pass_compute_alignments): Likewise.
17131         (final_scan_insn_1): Likewise.
17132         (final_scan_insn): Likewise.
17133         * fixed-value.h (fixed_from_string): Likewise.
17134         * flag-types.h (NO_DEBUG): Likewise.
17135         (DWARF2_DEBUG): Likewise.
17136         (VMS_DEBUG): Likewise.
17137         (BTF_DEBUG): Likewise.
17138         (enum ctf_debug_info_levels): Likewise.
17139         * fold-const.cc (const_binop): Likewise.
17140         (fold_binary_loc): Likewise.
17141         (fold_checksum_tree): Likewise.
17142         * fp-test.cc: Likewise.
17143         * function.cc (expand_function_end): Likewise.
17144         * function.h (struct function): Likewise.
17145         * fwprop.cc (should_replace_address): Likewise.
17146         * gcc-main.cc: Likewise.
17147         * gcc-rich-location.h (class gcc_rich_location): Likewise.
17148         * gcc-symtab.h: Likewise.
17149         * gcc.cc (MIN_FATAL_STATUS): Likewise.
17150         (driver_handle_option): Likewise.
17151         (quote_spec_arg): Likewise.
17152         (driver::finalize): Likewise.
17153         * gcc.h (set_input): Likewise.
17154         * gcov-dump.cc: Likewise.
17155         * gcov.cc (solve_flow_graph): Likewise.
17156         * gcse-common.cc: Likewise.
17157         * gcse.cc (make_pass_rtl_hoist): Likewise.
17158         * genattr-common.cc: Likewise.
17159         * genattrtab.cc (min_fn): Likewise.
17160         (write_const_num_delay_slots): Likewise.
17161         * genautomata.cc: Likewise.
17162         * genconditions.cc (write_one_condition): Likewise.
17163         * genconstants.cc: Likewise.
17164         * genemit.cc (gen_exp): Likewise.
17165         * generic-match-head.cc: Likewise.
17166         * genextract.cc: Likewise.
17167         * gengenrtl.cc (always_void_p): Likewise.
17168         * gengtype-parse.cc (gtymarker_opt): Likewise.
17169         * gengtype-state.cc (state_writer::state_writer): Likewise.
17170         (write_state_trailer): Likewise.
17171         (equals_type_number): Likewise.
17172         (read_state): Likewise.
17173         * gengtype.cc (open_base_files): Likewise.
17174         (struct file_rule_st): Likewise.
17175         (header_dot_h_frul): Likewise.
17176         * gengtype.h: Likewise.
17177         * genmatch.cc (main): Likewise.
17178         * genmddeps.cc: Likewise.
17179         * genmodes.cc (emit_mode_inner): Likewise.
17180         (emit_mode_unit_size): Likewise.
17181         * genpeep.cc (gen_peephole): Likewise.
17182         * genpreds.cc (write_tm_preds_h): Likewise.
17183         * genrecog.cc (validate_pattern): Likewise.
17184         (write_header): Likewise.
17185         (main): Likewise.
17186         * gensupport.cc (change_subst_attribute): Likewise.
17187         (traverse_c_tests): Likewise.
17188         (add_predicate): Likewise.
17189         (init_predicate_table): Likewise.
17190         * gensupport.h (struct optab_pattern): Likewise.
17191         (get_num_insn_codes): Likewise.
17192         (maybe_eval_c_test): Likewise.
17193         (struct pred_data): Likewise.
17194         * ggc-internal.h: Likewise.
17195         * gimple-fold.cc (maybe_fold_reference): Likewise.
17196         (get_range_strlen_tree): Likewise.
17197         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
17198         * gimple-low.cc: Likewise.
17199         * gimple-match-head.cc (directly_supported_p): Likewise.
17200         * gimple-pretty-print.h: Likewise.
17201         * gimple-ssa-sprintf.cc (format_percent): Likewise.
17202         (adjust_range_for_overflow): Likewise.
17203         * gimple-streamer.h: Likewise.
17204         * gimple.h (struct GTY): Likewise.
17205         (is_gimple_resx): Likewise.
17206         * gimplify.cc (gimplify_expr): Likewise.
17207         (gimplify_init_constructor): Likewise.
17208         (omp_construct_selector_matches): Likewise.
17209         (gimplify_omp_target_update): Likewise.
17210         (gimplify_omp_ordered): Likewise.
17211         (gimplify_va_arg_expr): Likewise.
17212         * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
17213         * haifa-sched.cc (increase_insn_priority): Likewise.
17214         (try_ready): Likewise.
17215         (sched_create_recovery_edges): Likewise.
17216         * ifcvt.cc (find_if_case_1): Likewise.
17217         (find_if_case_2): Likewise.
17218         * inchash.h: Likewise.
17219         * incpath.cc (add_env_var_paths): Likewise.
17220         * input.cc (dump_location_info): Likewise.
17221         (assert_loceq): Likewise.
17222         (test_lexer_string_locations_concatenation_1): Likewise.
17223         (test_lexer_string_locations_concatenation_2): Likewise.
17224         (test_lexer_string_locations_concatenation_3): Likewise.
17225         * input.h (BUILTINS_LOCATION): Likewise.
17226         (class string_concat_db): Likewise.
17227         * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
17228         (expand_LOOP_VECTORIZED): Likewise.
17229         * ipa-cp.cc (make_pass_ipa_cp): Likewise.
17230         * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
17231         (ipa_fn_summary_t::duplicate): Likewise.
17232         (make_pass_ipa_fn_summary): Likewise.
17233         * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
17234         * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
17235         (free_lang_data_in_decl): Likewise.
17236         * ipa-inline.cc (compute_inlined_call_time): Likewise.
17237         (inline_always_inline_functions): Likewise.
17238         * ipa-inline.h (free_growth_caches): Likewise.
17239         (inline_account_function_p): Likewise.
17240         * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
17241         (modref_eaf_analysis::analyze_ssa_name): Likewise.
17242         * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
17243         (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
17244         * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
17245         * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
17246         (unadjusted_ptr_and_unit_offset): Likewise.
17247         * ipa-reference.cc (make_pass_ipa_reference): Likewise.
17248         * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
17249         * ipa-split.cc (consider_split): Likewise.
17250         * ipa-sra.cc (isra_read_node_info): Likewise.
17251         * ipa-utils.h (struct ipa_dfs_info): Likewise.
17252         (recursive_call_p): Likewise.
17253         (ipa_make_function_pure): Likewise.
17254         * ira-build.cc (ira_create_allocno): Likewise.
17255         (ira_flattening): Likewise.
17256         * ira-color.cc (do_coloring): Likewise.
17257         (update_curr_costs): Likewise.
17258         * ira-conflicts.cc (process_regs_for_copy): Likewise.
17259         * ira-int.h (struct ira_emit_data): Likewise.
17260         (ira_prohibited_mode_move_regs): Likewise.
17261         (ira_get_dup_out_num): Likewise.
17262         (ira_destroy): Likewise.
17263         (ira_tune_allocno_costs): Likewise.
17264         (ira_implicitly_set_insn_hard_regs): Likewise.
17265         (ira_build_conflicts): Likewise.
17266         (ira_color): Likewise.
17267         * ira-lives.cc (process_bb_node_lives): Likewise.
17268         * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
17269         (setup_uniform_class_p): Likewise.
17270         (def_dominates_uses): Likewise.
17271         * ira.h (ira_nullify_asm_goto): Likewise.
17272         * langhooks.cc (lhd_post_options): Likewise.
17273         * langhooks.h (class substring_loc): Likewise.
17274         (struct lang_hooks_for_tree_inlining): Likewise.
17275         (struct lang_hooks_for_types): Likewise.
17276         (struct lang_hooks): Likewise.
17277         * libfuncs.h (synchronize_libfunc): Likewise.
17278         * loop-doloop.cc (doloop_condition_get): Likewise.
17279         * loop-init.cc (fix_loop_structure): Likewise.
17280         * loop-invariant.cc: Likewise.
17281         * lower-subreg.h: Likewise.
17282         * lra-constraints.cc (curr_insn_transform): Likewise.
17283         * lra-int.h (struct lra_insn_reg): Likewise.
17284         (lra_undo_inheritance): Likewise.
17285         (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
17286         (lra_split_hard_reg_for): Likewise.
17287         (lra_coalesce): Likewise.
17288         (lra_final_code_change): Likewise.
17289         * lra-spills.cc (lra_final_code_change): Likewise.
17290         * lra.cc (lra_process_new_insns): Likewise.
17291         * lto-compress.h (struct lto_compression_stream): Likewise.
17292         * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
17293         (write_symbol): Likewise.
17294         * lto-streamer.h (enum LTO_tags): Likewise.
17295         (lto_value_range_error): Likewise.
17296         (lto_append_block): Likewise.
17297         (lto_streamer_hooks_init): Likewise.
17298         (stream_read_tree_ref): Likewise.
17299         (lto_prepare_function_for_streaming): Likewise.
17300         (select_what_to_stream): Likewise.
17301         (omp_lto_input_declare_variant_alt): Likewise.
17302         (cl_optimization_stream_in): Likewise.
17303         * lto-wrapper.cc (append_compiler_options): Likewise.
17304         * machmode.def: Likewise.
17305         * machmode.h (struct int_n_data_t): Likewise.
17306         * main.cc (main): Likewise.
17307         * match.pd: Likewise.
17308         * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
17309         (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
17310         * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
17311         (make_pass_expand_omp_ssa): Likewise.
17312         * omp-low.cc (struct omp_context): Likewise.
17313         (struct omp_taskcopy_context): Likewise.
17314         (lower_omp): Likewise.
17315         * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
17316         (mask_name): Likewise.
17317         (omp_sese_dump_pars): Likewise.
17318         (worker_single_simple): Likewise.
17319         * omp-offload.cc (omp_finish_file): Likewise.
17320         (execute_oacc_loop_designation): Likewise.
17321         * optabs-query.cc (lshift_cheap_p): Likewise.
17322         * optc-gen.awk: Likewise.
17323         * optc-save-gen.awk: Likewise.
17324         * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
17325         * opts-common.cc: Likewise.
17326         * output.h (app_enable): Likewise.
17327         (output_operand_lossage): Likewise.
17328         (insn_current_reference_address): Likewise.
17329         (get_insn_template): Likewise.
17330         (output_quoted_string): Likewise.
17331         * pass_manager.h (struct register_pass_info): Likewise.
17332         * plugin.cc: Likewise.
17333         * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
17334         * plugin.h (invoke_plugin_callbacks): Likewise.
17335         * pointer-query.cc (handle_mem_ref): Likewise.
17336         * postreload-gcse.cc (alloc_mem): Likewise.
17337         * predict.h (enum prediction): Likewise.
17338         (add_reg_br_prob_note): Likewise.
17339         * prefix.h: Likewise.
17340         * profile.h (get_working_sets): Likewise.
17341         * read-md.cc: Likewise.
17342         * read-md.h (struct mapping): Likewise.
17343         (class md_reader): Likewise.
17344         (class noop_reader): Likewise.
17345         * read-rtl-function.cc (function_reader::create_function): Likewise.
17346         (function_reader::extra_parsing_for_operand_code_0): Likewise.
17347         * read-rtl.cc (initialize_iterators): Likewise.
17348         * real.cc: Likewise.
17349         * real.h (struct real_value): Likewise.
17350         (format_helper::format_helper): Likewise.
17351         (real_hash): Likewise.
17352         (real_can_shorten_arithmetic): Likewise.
17353         * recog.cc (struct target_recog): Likewise.
17354         (offsettable_nonstrict_memref_p): Likewise.
17355         (constrain_operands): Likewise.
17356         * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
17357         (which_op_alt): Likewise.
17358         (struct insn_gen_fn): Likewise.
17359         * reg-notes.def (REG_NOTE): Likewise.
17360         * reg-stack.cc: Likewise.
17361         * regs.h (reg_is_parm_p): Likewise.
17362         * regset.h: Likewise.
17363         * reload.cc (push_reload): Likewise.
17364         (find_reloads): Likewise.
17365         (find_reloads_address_1): Likewise.
17366         (find_replacement): Likewise.
17367         (refers_to_regno_for_reload_p): Likewise.
17368         (refers_to_mem_for_reload_p): Likewise.
17369         * reload.h (push_reload): Likewise.
17370         (deallocate_reload_reg): Likewise.
17371         * reload1.cc (emit_input_reload_insns): Likewise.
17372         * reorg.cc (relax_delay_slots): Likewise.
17373         * rtl.def (UNKNOWN): Likewise.
17374         (SEQUENCE): Likewise.
17375         (BARRIER): Likewise.
17376         (ASM_OPERANDS): Likewise.
17377         (EQ_ATTR_ALT): Likewise.
17378         * rtl.h (struct GTY): Likewise.
17379         (LABEL_NAME): Likewise.
17380         (LABEL_ALT_ENTRY_P): Likewise.
17381         (SUBREG_BYTE): Likewise.
17382         (get_stack_check_protect): Likewise.
17383         (dump_rtx_statistics): Likewise.
17384         (unwrap_const_vec_duplicate): Likewise.
17385         (subreg_promoted_mode): Likewise.
17386         (gen_lowpart_common): Likewise.
17387         (operand_subword): Likewise.
17388         (immed_wide_int_const): Likewise.
17389         (decide_function_section): Likewise.
17390         (active_insn_p): Likewise.
17391         (delete_related_insns): Likewise.
17392         (try_split): Likewise.
17393         (val_signbit_known_clear_p): Likewise.
17394         (simplifiable_subregs): Likewise.
17395         (set_insn_deleted): Likewise.
17396         (subreg_get_info): Likewise.
17397         (remove_free_EXPR_LIST_node): Likewise.
17398         (finish_subregs_of_mode): Likewise.
17399         (get_mem_attrs): Likewise.
17400         (lookup_constant_def): Likewise.
17401         (rtx_to_tree_code): Likewise.
17402         (hash_rtx): Likewise.
17403         (condjump_in_parallel_p): Likewise.
17404         (validate_subreg): Likewise.
17405         (make_compound_operation): Likewise.
17406         (schedule_ebbs): Likewise.
17407         (print_inline_rtx): Likewise.
17408         (fixup_args_size_notes): Likewise.
17409         (expand_dec): Likewise.
17410         (prepare_copy_insn): Likewise.
17411         (mark_elimination): Likewise.
17412         (valid_mode_changes_for_regno): Likewise.
17413         (make_debug_expr_from_rtl): Likewise.
17414         (delete_vta_debug_insns): Likewise.
17415         (simplify_using_condition): Likewise.
17416         (set_insn_locations): Likewise.
17417         (fatal_insn_not_found): Likewise.
17418         (word_register_operation_p): Likewise.
17419         * rtlanal.cc (get_call_fndecl): Likewise.
17420         (side_effects_p): Likewise.
17421         (subreg_nregs): Likewise.
17422         (rtx_cost): Likewise.
17423         (canonicalize_condition): Likewise.
17424         * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
17425         * run-rtl-passes.cc (run_rtl_passes): Likewise.
17426         * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
17427         * sched-deps.cc (add_dependence_1): Likewise.
17428         * sched-ebb.cc (begin_move_insn): Likewise.
17429         (add_deps_for_risky_insns): Likewise.
17430         (advance_target_bb): Likewise.
17431         * sched-int.h (reemit_notes): Likewise.
17432         (struct _haifa_insn_data): Likewise.
17433         (HID): Likewise.
17434         (DEP_CANCELLED): Likewise.
17435         (debug_ds): Likewise.
17436         (number_in_ready): Likewise.
17437         (schedule_ebbs_finish): Likewise.
17438         (find_modifiable_mems): Likewise.
17439         * sched-rgn.cc (debug_rgn_dependencies): Likewise.
17440         * sel-sched-dump.cc (dump_lv_set): Likewise.
17441         * sel-sched-dump.h: Likewise.
17442         * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
17443         (setup_id_reg_sets): Likewise.
17444         (has_dependence_p): Likewise.
17445         (sel_num_cfg_preds_gt_1): Likewise.
17446         (bb_ends_ebb_p): Likewise.
17447         * sel-sched-ir.h (struct _list_node): Likewise.
17448         (struct idata_def): Likewise.
17449         (bb_next_bb): Likewise.
17450         * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
17451         (choose_best_pseudo_reg): Likewise.
17452         (verify_target_availability): Likewise.
17453         (can_speculate_dep_p): Likewise.
17454         (sel_rank_for_schedule): Likewise.
17455         * selftest-run-tests.cc (selftest::run_tests): Likewise.
17456         * selftest.h (class auto_fix_quotes): Likewise.
17457         * shrink-wrap.cc (handle_simple_exit): Likewise.
17458         * shrink-wrap.h: Likewise.
17459         * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
17460         (simplify_context::simplify_gen_vec_select): Likewise.
17461         * spellcheck-tree.h: Likewise.
17462         * spellcheck.h: Likewise.
17463         * statistics.h (struct function): Likewise.
17464         * stmt.cc (conditional_probability): Likewise.
17465         * stmt.h: Likewise.
17466         * stor-layout.h: Likewise.
17467         * streamer-hooks.h: Likewise.
17468         * stringpool.h: Likewise.
17469         * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
17470         * target.def (HOOK_VECTOR_END): Likewise.
17471         (type.): Likewise.
17472         * target.h (union cumulative_args_t): Likewise.
17473         (by_pieces_ninsns): Likewise.
17474         (class predefined_function_abi): Likewise.
17475         * targhooks.cc (default_translate_mode_attribute): Likewise.
17476         * timevar.def: Likewise.
17477         * timevar.h (class timer): Likewise.
17478         * toplev.h (enable_rtl_dump_file): Likewise.
17479         * trans-mem.cc (collect_bb2reg): Likewise.
17480         * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
17481         * tree-cfg.cc (remove_bb): Likewise.
17482         (verify_gimple_debug): Likewise.
17483         (remove_edge_and_dominated_blocks): Likewise.
17484         (push_fndecl): Likewise.
17485         * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
17486         * tree-complex.cc (expand_complex_multiplication): Likewise.
17487         (expand_complex_div_straight): Likewise.
17488         * tree-core.h (enum tree_index): Likewise.
17489         (enum operand_equal_flag): Likewise.
17490         * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
17491         * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
17492         * tree-inline.cc (initialize_inlined_parameters): Likewise.
17493         * tree-inline.h (force_value_to_type): Likewise.
17494         * tree-nested.cc (get_chain_decl): Likewise.
17495         (walk_all_functions): Likewise.
17496         * tree-object-size.h: Likewise.
17497         * tree-outof-ssa.cc: Likewise.
17498         * tree-parloops.cc (create_parallel_loop): Likewise.
17499         * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
17500         (dump_generic_node): Likewise.
17501         * tree-profile.cc (tree_profiling): Likewise.
17502         * tree-sra.cc (maybe_add_sra_candidate): Likewise.
17503         * tree-ssa-address.cc: Likewise.
17504         * tree-ssa-alias.cc: Likewise.
17505         * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
17506         (dump_alias_stats): Likewise.
17507         * tree-ssa-ccp.cc: Likewise.
17508         * tree-ssa-coalesce.h: Likewise.
17509         * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
17510         * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
17511         * tree-ssa-loop-unswitch.cc: Likewise.
17512         * tree-ssa-math-opts.cc: Likewise.
17513         * tree-ssa-operands.cc (class operands_scanner): Likewise.
17514         * tree-ssa-pre.cc: Likewise.
17515         * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
17516         (debug_range_entry): Likewise.
17517         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
17518         * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
17519         * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
17520         (equal_mem_array_ref_p): Likewise.
17521         * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
17522         * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
17523         * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
17524         * tree-ssa-ter.h: Likewise.
17525         * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
17526         * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
17527         * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
17528         (write_ts_block_tree_pointers): Likewise.
17529         * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
17530         (streamer_read_tree_bitfields): Likewise.
17531         (streamer_write_integer_cst): Likewise.
17532         * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
17533         (vect_synth_mult_by_constant): Likewise.
17534         * tree-vect-stmts.cc (vectorizable_operation): Likewise.
17535         * tree-vectorizer.cc: Likewise.
17536         * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
17537         (vect_update_inits_of_drs): Likewise.
17538         (vect_get_mask_type_for_stmt): Likewise.
17539         (vect_rgroup_iv_might_wrap_p): Likewise.
17540         (cse_and_gimplify_to_preheader): Likewise.
17541         (vect_free_slp_tree): Likewise.
17542         (vect_pattern_recog): Likewise.
17543         (vect_stmt_dominates_stmt_p): Likewise.
17544         * tree.cc (initialize_tree_contains_struct): Likewise.
17545         (need_assembler_name_p): Likewise.
17546         (type_with_interoperable_signedness): Likewise.
17547         * tree.def (SWITCH_EXPR): Likewise.
17548         * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
17549         (poly_int_tree_p): Likewise.
17550         (inlined_function_outer_scope_p): Likewise.
17551         (tree_code_for_canonical_type_merging): Likewise.
17552         * value-prof.cc: Likewise.
17553         * value-prof.h (get_nth_most_common_value): Likewise.
17554         (find_func_by_profile_id): Likewise.
17555         * value-range.cc (vrp_operand_equal_p): Likewise.
17556         * value-range.h: Likewise.
17557         * var-tracking.cc: Likewise.
17558         * varasm.cc (default_function_section): Likewise.
17559         (function_section_1): Likewise.
17560         (assemble_variable): Likewise.
17561         (handle_vtv_comdat_section): Likewise.
17562         * vec.h (struct vec_prefix): Likewise.
17563         * vmsdbgout.cc (full_name): Likewise.
17564         * vtable-verify.cc: Likewise.
17565         * vtable-verify.h (struct vtv_graph_node): Likewise.
17566         * xcoffout.cc: Likewise.
17567         * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
17569 2022-01-17  Martin Liska  <mliska@suse.cz>
17571         * adjust-alignment.c: Moved to...
17572         * adjust-alignment.cc: ...here.
17573         * alias.c: Moved to...
17574         * alias.cc: ...here.
17575         * alloc-pool.c: Moved to...
17576         * alloc-pool.cc: ...here.
17577         * asan.c: Moved to...
17578         * asan.cc: ...here.
17579         * attribs.c: Moved to...
17580         * attribs.cc: ...here.
17581         * auto-inc-dec.c: Moved to...
17582         * auto-inc-dec.cc: ...here.
17583         * auto-profile.c: Moved to...
17584         * auto-profile.cc: ...here.
17585         * bb-reorder.c: Moved to...
17586         * bb-reorder.cc: ...here.
17587         * bitmap.c: Moved to...
17588         * bitmap.cc: ...here.
17589         * btfout.c: Moved to...
17590         * btfout.cc: ...here.
17591         * builtins.c: Moved to...
17592         * builtins.cc: ...here.
17593         * caller-save.c: Moved to...
17594         * caller-save.cc: ...here.
17595         * calls.c: Moved to...
17596         * calls.cc: ...here.
17597         * ccmp.c: Moved to...
17598         * ccmp.cc: ...here.
17599         * cfg.c: Moved to...
17600         * cfg.cc: ...here.
17601         * cfganal.c: Moved to...
17602         * cfganal.cc: ...here.
17603         * cfgbuild.c: Moved to...
17604         * cfgbuild.cc: ...here.
17605         * cfgcleanup.c: Moved to...
17606         * cfgcleanup.cc: ...here.
17607         * cfgexpand.c: Moved to...
17608         * cfgexpand.cc: ...here.
17609         * cfghooks.c: Moved to...
17610         * cfghooks.cc: ...here.
17611         * cfgloop.c: Moved to...
17612         * cfgloop.cc: ...here.
17613         * cfgloopanal.c: Moved to...
17614         * cfgloopanal.cc: ...here.
17615         * cfgloopmanip.c: Moved to...
17616         * cfgloopmanip.cc: ...here.
17617         * cfgrtl.c: Moved to...
17618         * cfgrtl.cc: ...here.
17619         * cgraph.c: Moved to...
17620         * cgraph.cc: ...here.
17621         * cgraphbuild.c: Moved to...
17622         * cgraphbuild.cc: ...here.
17623         * cgraphclones.c: Moved to...
17624         * cgraphclones.cc: ...here.
17625         * cgraphunit.c: Moved to...
17626         * cgraphunit.cc: ...here.
17627         * collect-utils.c: Moved to...
17628         * collect-utils.cc: ...here.
17629         * collect2-aix.c: Moved to...
17630         * collect2-aix.cc: ...here.
17631         * collect2.c: Moved to...
17632         * collect2.cc: ...here.
17633         * combine-stack-adj.c: Moved to...
17634         * combine-stack-adj.cc: ...here.
17635         * combine.c: Moved to...
17636         * combine.cc: ...here.
17637         * common/common-targhooks.c: Moved to...
17638         * common/common-targhooks.cc: ...here.
17639         * common/config/aarch64/aarch64-common.c: Moved to...
17640         * common/config/aarch64/aarch64-common.cc: ...here.
17641         * common/config/alpha/alpha-common.c: Moved to...
17642         * common/config/alpha/alpha-common.cc: ...here.
17643         * common/config/arc/arc-common.c: Moved to...
17644         * common/config/arc/arc-common.cc: ...here.
17645         * common/config/arm/arm-common.c: Moved to...
17646         * common/config/arm/arm-common.cc: ...here.
17647         * common/config/avr/avr-common.c: Moved to...
17648         * common/config/avr/avr-common.cc: ...here.
17649         * common/config/bfin/bfin-common.c: Moved to...
17650         * common/config/bfin/bfin-common.cc: ...here.
17651         * common/config/bpf/bpf-common.c: Moved to...
17652         * common/config/bpf/bpf-common.cc: ...here.
17653         * common/config/c6x/c6x-common.c: Moved to...
17654         * common/config/c6x/c6x-common.cc: ...here.
17655         * common/config/cr16/cr16-common.c: Moved to...
17656         * common/config/cr16/cr16-common.cc: ...here.
17657         * common/config/cris/cris-common.c: Moved to...
17658         * common/config/cris/cris-common.cc: ...here.
17659         * common/config/csky/csky-common.c: Moved to...
17660         * common/config/csky/csky-common.cc: ...here.
17661         * common/config/default-common.c: Moved to...
17662         * common/config/default-common.cc: ...here.
17663         * common/config/epiphany/epiphany-common.c: Moved to...
17664         * common/config/epiphany/epiphany-common.cc: ...here.
17665         * common/config/fr30/fr30-common.c: Moved to...
17666         * common/config/fr30/fr30-common.cc: ...here.
17667         * common/config/frv/frv-common.c: Moved to...
17668         * common/config/frv/frv-common.cc: ...here.
17669         * common/config/gcn/gcn-common.c: Moved to...
17670         * common/config/gcn/gcn-common.cc: ...here.
17671         * common/config/h8300/h8300-common.c: Moved to...
17672         * common/config/h8300/h8300-common.cc: ...here.
17673         * common/config/i386/i386-common.c: Moved to...
17674         * common/config/i386/i386-common.cc: ...here.
17675         * common/config/ia64/ia64-common.c: Moved to...
17676         * common/config/ia64/ia64-common.cc: ...here.
17677         * common/config/iq2000/iq2000-common.c: Moved to...
17678         * common/config/iq2000/iq2000-common.cc: ...here.
17679         * common/config/lm32/lm32-common.c: Moved to...
17680         * common/config/lm32/lm32-common.cc: ...here.
17681         * common/config/m32r/m32r-common.c: Moved to...
17682         * common/config/m32r/m32r-common.cc: ...here.
17683         * common/config/m68k/m68k-common.c: Moved to...
17684         * common/config/m68k/m68k-common.cc: ...here.
17685         * common/config/mcore/mcore-common.c: Moved to...
17686         * common/config/mcore/mcore-common.cc: ...here.
17687         * common/config/microblaze/microblaze-common.c: Moved to...
17688         * common/config/microblaze/microblaze-common.cc: ...here.
17689         * common/config/mips/mips-common.c: Moved to...
17690         * common/config/mips/mips-common.cc: ...here.
17691         * common/config/mmix/mmix-common.c: Moved to...
17692         * common/config/mmix/mmix-common.cc: ...here.
17693         * common/config/mn10300/mn10300-common.c: Moved to...
17694         * common/config/mn10300/mn10300-common.cc: ...here.
17695         * common/config/msp430/msp430-common.c: Moved to...
17696         * common/config/msp430/msp430-common.cc: ...here.
17697         * common/config/nds32/nds32-common.c: Moved to...
17698         * common/config/nds32/nds32-common.cc: ...here.
17699         * common/config/nios2/nios2-common.c: Moved to...
17700         * common/config/nios2/nios2-common.cc: ...here.
17701         * common/config/nvptx/nvptx-common.c: Moved to...
17702         * common/config/nvptx/nvptx-common.cc: ...here.
17703         * common/config/or1k/or1k-common.c: Moved to...
17704         * common/config/or1k/or1k-common.cc: ...here.
17705         * common/config/pa/pa-common.c: Moved to...
17706         * common/config/pa/pa-common.cc: ...here.
17707         * common/config/pdp11/pdp11-common.c: Moved to...
17708         * common/config/pdp11/pdp11-common.cc: ...here.
17709         * common/config/pru/pru-common.c: Moved to...
17710         * common/config/pru/pru-common.cc: ...here.
17711         * common/config/riscv/riscv-common.c: Moved to...
17712         * common/config/riscv/riscv-common.cc: ...here.
17713         * common/config/rs6000/rs6000-common.c: Moved to...
17714         * common/config/rs6000/rs6000-common.cc: ...here.
17715         * common/config/rx/rx-common.c: Moved to...
17716         * common/config/rx/rx-common.cc: ...here.
17717         * common/config/s390/s390-common.c: Moved to...
17718         * common/config/s390/s390-common.cc: ...here.
17719         * common/config/sh/sh-common.c: Moved to...
17720         * common/config/sh/sh-common.cc: ...here.
17721         * common/config/sparc/sparc-common.c: Moved to...
17722         * common/config/sparc/sparc-common.cc: ...here.
17723         * common/config/tilegx/tilegx-common.c: Moved to...
17724         * common/config/tilegx/tilegx-common.cc: ...here.
17725         * common/config/tilepro/tilepro-common.c: Moved to...
17726         * common/config/tilepro/tilepro-common.cc: ...here.
17727         * common/config/v850/v850-common.c: Moved to...
17728         * common/config/v850/v850-common.cc: ...here.
17729         * common/config/vax/vax-common.c: Moved to...
17730         * common/config/vax/vax-common.cc: ...here.
17731         * common/config/visium/visium-common.c: Moved to...
17732         * common/config/visium/visium-common.cc: ...here.
17733         * common/config/xstormy16/xstormy16-common.c: Moved to...
17734         * common/config/xstormy16/xstormy16-common.cc: ...here.
17735         * common/config/xtensa/xtensa-common.c: Moved to...
17736         * common/config/xtensa/xtensa-common.cc: ...here.
17737         * compare-elim.c: Moved to...
17738         * compare-elim.cc: ...here.
17739         * config/aarch64/aarch64-bti-insert.c: Moved to...
17740         * config/aarch64/aarch64-bti-insert.cc: ...here.
17741         * config/aarch64/aarch64-builtins.c: Moved to...
17742         * config/aarch64/aarch64-builtins.cc: ...here.
17743         * config/aarch64/aarch64-c.c: Moved to...
17744         * config/aarch64/aarch64-c.cc: ...here.
17745         * config/aarch64/aarch64-d.c: Moved to...
17746         * config/aarch64/aarch64-d.cc: ...here.
17747         * config/aarch64/aarch64.c: Moved to...
17748         * config/aarch64/aarch64.cc: ...here.
17749         * config/aarch64/cortex-a57-fma-steering.c: Moved to...
17750         * config/aarch64/cortex-a57-fma-steering.cc: ...here.
17751         * config/aarch64/driver-aarch64.c: Moved to...
17752         * config/aarch64/driver-aarch64.cc: ...here.
17753         * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
17754         * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
17755         * config/aarch64/host-aarch64-darwin.c: Moved to...
17756         * config/aarch64/host-aarch64-darwin.cc: ...here.
17757         * config/alpha/alpha.c: Moved to...
17758         * config/alpha/alpha.cc: ...here.
17759         * config/alpha/driver-alpha.c: Moved to...
17760         * config/alpha/driver-alpha.cc: ...here.
17761         * config/arc/arc-c.c: Moved to...
17762         * config/arc/arc-c.cc: ...here.
17763         * config/arc/arc.c: Moved to...
17764         * config/arc/arc.cc: ...here.
17765         * config/arc/driver-arc.c: Moved to...
17766         * config/arc/driver-arc.cc: ...here.
17767         * config/arm/aarch-common.c: Moved to...
17768         * config/arm/aarch-common.cc: ...here.
17769         * config/arm/arm-builtins.c: Moved to...
17770         * config/arm/arm-builtins.cc: ...here.
17771         * config/arm/arm-c.c: Moved to...
17772         * config/arm/arm-c.cc: ...here.
17773         * config/arm/arm-d.c: Moved to...
17774         * config/arm/arm-d.cc: ...here.
17775         * config/arm/arm.c: Moved to...
17776         * config/arm/arm.cc: ...here.
17777         * config/arm/driver-arm.c: Moved to...
17778         * config/arm/driver-arm.cc: ...here.
17779         * config/avr/avr-c.c: Moved to...
17780         * config/avr/avr-c.cc: ...here.
17781         * config/avr/avr-devices.c: Moved to...
17782         * config/avr/avr-devices.cc: ...here.
17783         * config/avr/avr-log.c: Moved to...
17784         * config/avr/avr-log.cc: ...here.
17785         * config/avr/avr.c: Moved to...
17786         * config/avr/avr.cc: ...here.
17787         * config/avr/driver-avr.c: Moved to...
17788         * config/avr/driver-avr.cc: ...here.
17789         * config/avr/gen-avr-mmcu-specs.c: Moved to...
17790         * config/avr/gen-avr-mmcu-specs.cc: ...here.
17791         * config/avr/gen-avr-mmcu-texi.c: Moved to...
17792         * config/avr/gen-avr-mmcu-texi.cc: ...here.
17793         * config/bfin/bfin.c: Moved to...
17794         * config/bfin/bfin.cc: ...here.
17795         * config/bpf/bpf.c: Moved to...
17796         * config/bpf/bpf.cc: ...here.
17797         * config/bpf/coreout.c: Moved to...
17798         * config/bpf/coreout.cc: ...here.
17799         * config/c6x/c6x.c: Moved to...
17800         * config/c6x/c6x.cc: ...here.
17801         * config/cr16/cr16.c: Moved to...
17802         * config/cr16/cr16.cc: ...here.
17803         * config/cris/cris.c: Moved to...
17804         * config/cris/cris.cc: ...here.
17805         * config/csky/csky.c: Moved to...
17806         * config/csky/csky.cc: ...here.
17807         * config/darwin-c.c: Moved to...
17808         * config/darwin-c.cc: ...here.
17809         * config/darwin-d.c: Moved to...
17810         * config/darwin-d.cc: ...here.
17811         * config/darwin-driver.c: Moved to...
17812         * config/darwin-driver.cc: ...here.
17813         * config/darwin-f.c: Moved to...
17814         * config/darwin-f.cc: ...here.
17815         * config/darwin.c: Moved to...
17816         * config/darwin.cc: ...here.
17817         * config/default-c.c: Moved to...
17818         * config/default-c.cc: ...here.
17819         * config/default-d.c: Moved to...
17820         * config/default-d.cc: ...here.
17821         * config/dragonfly-d.c: Moved to...
17822         * config/dragonfly-d.cc: ...here.
17823         * config/epiphany/epiphany.c: Moved to...
17824         * config/epiphany/epiphany.cc: ...here.
17825         * config/epiphany/mode-switch-use.c: Moved to...
17826         * config/epiphany/mode-switch-use.cc: ...here.
17827         * config/epiphany/resolve-sw-modes.c: Moved to...
17828         * config/epiphany/resolve-sw-modes.cc: ...here.
17829         * config/fr30/fr30.c: Moved to...
17830         * config/fr30/fr30.cc: ...here.
17831         * config/freebsd-d.c: Moved to...
17832         * config/freebsd-d.cc: ...here.
17833         * config/frv/frv.c: Moved to...
17834         * config/frv/frv.cc: ...here.
17835         * config/ft32/ft32.c: Moved to...
17836         * config/ft32/ft32.cc: ...here.
17837         * config/gcn/driver-gcn.c: Moved to...
17838         * config/gcn/driver-gcn.cc: ...here.
17839         * config/gcn/gcn-run.c: Moved to...
17840         * config/gcn/gcn-run.cc: ...here.
17841         * config/gcn/gcn-tree.c: Moved to...
17842         * config/gcn/gcn-tree.cc: ...here.
17843         * config/gcn/gcn.c: Moved to...
17844         * config/gcn/gcn.cc: ...here.
17845         * config/gcn/mkoffload.c: Moved to...
17846         * config/gcn/mkoffload.cc: ...here.
17847         * config/glibc-c.c: Moved to...
17848         * config/glibc-c.cc: ...here.
17849         * config/glibc-d.c: Moved to...
17850         * config/glibc-d.cc: ...here.
17851         * config/h8300/h8300.c: Moved to...
17852         * config/h8300/h8300.cc: ...here.
17853         * config/host-darwin.c: Moved to...
17854         * config/host-darwin.cc: ...here.
17855         * config/host-hpux.c: Moved to...
17856         * config/host-hpux.cc: ...here.
17857         * config/host-linux.c: Moved to...
17858         * config/host-linux.cc: ...here.
17859         * config/host-netbsd.c: Moved to...
17860         * config/host-netbsd.cc: ...here.
17861         * config/host-openbsd.c: Moved to...
17862         * config/host-openbsd.cc: ...here.
17863         * config/host-solaris.c: Moved to...
17864         * config/host-solaris.cc: ...here.
17865         * config/i386/djgpp.c: Moved to...
17866         * config/i386/djgpp.cc: ...here.
17867         * config/i386/driver-i386.c: Moved to...
17868         * config/i386/driver-i386.cc: ...here.
17869         * config/i386/driver-mingw32.c: Moved to...
17870         * config/i386/driver-mingw32.cc: ...here.
17871         * config/i386/gnu-property.c: Moved to...
17872         * config/i386/gnu-property.cc: ...here.
17873         * config/i386/host-cygwin.c: Moved to...
17874         * config/i386/host-cygwin.cc: ...here.
17875         * config/i386/host-i386-darwin.c: Moved to...
17876         * config/i386/host-i386-darwin.cc: ...here.
17877         * config/i386/host-mingw32.c: Moved to...
17878         * config/i386/host-mingw32.cc: ...here.
17879         * config/i386/i386-builtins.c: Moved to...
17880         * config/i386/i386-builtins.cc: ...here.
17881         * config/i386/i386-c.c: Moved to...
17882         * config/i386/i386-c.cc: ...here.
17883         * config/i386/i386-d.c: Moved to...
17884         * config/i386/i386-d.cc: ...here.
17885         * config/i386/i386-expand.c: Moved to...
17886         * config/i386/i386-expand.cc: ...here.
17887         * config/i386/i386-features.c: Moved to...
17888         * config/i386/i386-features.cc: ...here.
17889         * config/i386/i386-options.c: Moved to...
17890         * config/i386/i386-options.cc: ...here.
17891         * config/i386/i386.c: Moved to...
17892         * config/i386/i386.cc: ...here.
17893         * config/i386/intelmic-mkoffload.c: Moved to...
17894         * config/i386/intelmic-mkoffload.cc: ...here.
17895         * config/i386/msformat-c.c: Moved to...
17896         * config/i386/msformat-c.cc: ...here.
17897         * config/i386/winnt-cxx.c: Moved to...
17898         * config/i386/winnt-cxx.cc: ...here.
17899         * config/i386/winnt-d.c: Moved to...
17900         * config/i386/winnt-d.cc: ...here.
17901         * config/i386/winnt-stubs.c: Moved to...
17902         * config/i386/winnt-stubs.cc: ...here.
17903         * config/i386/winnt.c: Moved to...
17904         * config/i386/winnt.cc: ...here.
17905         * config/i386/x86-tune-sched-atom.c: Moved to...
17906         * config/i386/x86-tune-sched-atom.cc: ...here.
17907         * config/i386/x86-tune-sched-bd.c: Moved to...
17908         * config/i386/x86-tune-sched-bd.cc: ...here.
17909         * config/i386/x86-tune-sched-core.c: Moved to...
17910         * config/i386/x86-tune-sched-core.cc: ...here.
17911         * config/i386/x86-tune-sched.c: Moved to...
17912         * config/i386/x86-tune-sched.cc: ...here.
17913         * config/ia64/ia64-c.c: Moved to...
17914         * config/ia64/ia64-c.cc: ...here.
17915         * config/ia64/ia64.c: Moved to...
17916         * config/ia64/ia64.cc: ...here.
17917         * config/iq2000/iq2000.c: Moved to...
17918         * config/iq2000/iq2000.cc: ...here.
17919         * config/linux.c: Moved to...
17920         * config/linux.cc: ...here.
17921         * config/lm32/lm32.c: Moved to...
17922         * config/lm32/lm32.cc: ...here.
17923         * config/m32c/m32c-pragma.c: Moved to...
17924         * config/m32c/m32c-pragma.cc: ...here.
17925         * config/m32c/m32c.c: Moved to...
17926         * config/m32c/m32c.cc: ...here.
17927         * config/m32r/m32r.c: Moved to...
17928         * config/m32r/m32r.cc: ...here.
17929         * config/m68k/m68k.c: Moved to...
17930         * config/m68k/m68k.cc: ...here.
17931         * config/mcore/mcore.c: Moved to...
17932         * config/mcore/mcore.cc: ...here.
17933         * config/microblaze/microblaze-c.c: Moved to...
17934         * config/microblaze/microblaze-c.cc: ...here.
17935         * config/microblaze/microblaze.c: Moved to...
17936         * config/microblaze/microblaze.cc: ...here.
17937         * config/mips/driver-native.c: Moved to...
17938         * config/mips/driver-native.cc: ...here.
17939         * config/mips/frame-header-opt.c: Moved to...
17940         * config/mips/frame-header-opt.cc: ...here.
17941         * config/mips/mips-d.c: Moved to...
17942         * config/mips/mips-d.cc: ...here.
17943         * config/mips/mips.c: Moved to...
17944         * config/mips/mips.cc: ...here.
17945         * config/mmix/mmix.c: Moved to...
17946         * config/mmix/mmix.cc: ...here.
17947         * config/mn10300/mn10300.c: Moved to...
17948         * config/mn10300/mn10300.cc: ...here.
17949         * config/moxie/moxie.c: Moved to...
17950         * config/moxie/moxie.cc: ...here.
17951         * config/msp430/driver-msp430.c: Moved to...
17952         * config/msp430/driver-msp430.cc: ...here.
17953         * config/msp430/msp430-c.c: Moved to...
17954         * config/msp430/msp430-c.cc: ...here.
17955         * config/msp430/msp430-devices.c: Moved to...
17956         * config/msp430/msp430-devices.cc: ...here.
17957         * config/msp430/msp430.c: Moved to...
17958         * config/msp430/msp430.cc: ...here.
17959         * config/nds32/nds32-cost.c: Moved to...
17960         * config/nds32/nds32-cost.cc: ...here.
17961         * config/nds32/nds32-fp-as-gp.c: Moved to...
17962         * config/nds32/nds32-fp-as-gp.cc: ...here.
17963         * config/nds32/nds32-intrinsic.c: Moved to...
17964         * config/nds32/nds32-intrinsic.cc: ...here.
17965         * config/nds32/nds32-isr.c: Moved to...
17966         * config/nds32/nds32-isr.cc: ...here.
17967         * config/nds32/nds32-md-auxiliary.c: Moved to...
17968         * config/nds32/nds32-md-auxiliary.cc: ...here.
17969         * config/nds32/nds32-memory-manipulation.c: Moved to...
17970         * config/nds32/nds32-memory-manipulation.cc: ...here.
17971         * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
17972         * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
17973         * config/nds32/nds32-predicates.c: Moved to...
17974         * config/nds32/nds32-predicates.cc: ...here.
17975         * config/nds32/nds32-relax-opt.c: Moved to...
17976         * config/nds32/nds32-relax-opt.cc: ...here.
17977         * config/nds32/nds32-utils.c: Moved to...
17978         * config/nds32/nds32-utils.cc: ...here.
17979         * config/nds32/nds32.c: Moved to...
17980         * config/nds32/nds32.cc: ...here.
17981         * config/netbsd-d.c: Moved to...
17982         * config/netbsd-d.cc: ...here.
17983         * config/netbsd.c: Moved to...
17984         * config/netbsd.cc: ...here.
17985         * config/nios2/nios2.c: Moved to...
17986         * config/nios2/nios2.cc: ...here.
17987         * config/nvptx/mkoffload.c: Moved to...
17988         * config/nvptx/mkoffload.cc: ...here.
17989         * config/nvptx/nvptx-c.c: Moved to...
17990         * config/nvptx/nvptx-c.cc: ...here.
17991         * config/nvptx/nvptx.c: Moved to...
17992         * config/nvptx/nvptx.cc: ...here.
17993         * config/openbsd-d.c: Moved to...
17994         * config/openbsd-d.cc: ...here.
17995         * config/or1k/or1k.c: Moved to...
17996         * config/or1k/or1k.cc: ...here.
17997         * config/pa/pa-d.c: Moved to...
17998         * config/pa/pa-d.cc: ...here.
17999         * config/pa/pa.c: Moved to...
18000         * config/pa/pa.cc: ...here.
18001         * config/pdp11/pdp11.c: Moved to...
18002         * config/pdp11/pdp11.cc: ...here.
18003         * config/pru/pru-passes.c: Moved to...
18004         * config/pru/pru-passes.cc: ...here.
18005         * config/pru/pru-pragma.c: Moved to...
18006         * config/pru/pru-pragma.cc: ...here.
18007         * config/pru/pru.c: Moved to...
18008         * config/pru/pru.cc: ...here.
18009         * config/riscv/riscv-builtins.c: Moved to...
18010         * config/riscv/riscv-builtins.cc: ...here.
18011         * config/riscv/riscv-c.c: Moved to...
18012         * config/riscv/riscv-c.cc: ...here.
18013         * config/riscv/riscv-d.c: Moved to...
18014         * config/riscv/riscv-d.cc: ...here.
18015         * config/riscv/riscv-shorten-memrefs.c: Moved to...
18016         * config/riscv/riscv-shorten-memrefs.cc: ...here.
18017         * config/riscv/riscv-sr.c: Moved to...
18018         * config/riscv/riscv-sr.cc: ...here.
18019         * config/riscv/riscv.c: Moved to...
18020         * config/riscv/riscv.cc: ...here.
18021         * config/rl78/rl78-c.c: Moved to...
18022         * config/rl78/rl78-c.cc: ...here.
18023         * config/rl78/rl78.c: Moved to...
18024         * config/rl78/rl78.cc: ...here.
18025         * config/rs6000/driver-rs6000.c: Moved to...
18026         * config/rs6000/driver-rs6000.cc: ...here.
18027         * config/rs6000/host-darwin.c: Moved to...
18028         * config/rs6000/host-darwin.cc: ...here.
18029         * config/rs6000/host-ppc64-darwin.c: Moved to...
18030         * config/rs6000/host-ppc64-darwin.cc: ...here.
18031         * config/rs6000/rbtree.c: Moved to...
18032         * config/rs6000/rbtree.cc: ...here.
18033         * config/rs6000/rs6000-c.c: Moved to...
18034         * config/rs6000/rs6000-c.cc: ...here.
18035         * config/rs6000/rs6000-call.c: Moved to...
18036         * config/rs6000/rs6000-call.cc: ...here.
18037         * config/rs6000/rs6000-d.c: Moved to...
18038         * config/rs6000/rs6000-d.cc: ...here.
18039         * config/rs6000/rs6000-gen-builtins.c: Moved to...
18040         * config/rs6000/rs6000-gen-builtins.cc: ...here.
18041         * config/rs6000/rs6000-linux.c: Moved to...
18042         * config/rs6000/rs6000-linux.cc: ...here.
18043         * config/rs6000/rs6000-logue.c: Moved to...
18044         * config/rs6000/rs6000-logue.cc: ...here.
18045         * config/rs6000/rs6000-p8swap.c: Moved to...
18046         * config/rs6000/rs6000-p8swap.cc: ...here.
18047         * config/rs6000/rs6000-pcrel-opt.c: Moved to...
18048         * config/rs6000/rs6000-pcrel-opt.cc: ...here.
18049         * config/rs6000/rs6000-string.c: Moved to...
18050         * config/rs6000/rs6000-string.cc: ...here.
18051         * config/rs6000/rs6000.c: Moved to...
18052         * config/rs6000/rs6000.cc: ...here.
18053         * config/rx/rx.c: Moved to...
18054         * config/rx/rx.cc: ...here.
18055         * config/s390/driver-native.c: Moved to...
18056         * config/s390/driver-native.cc: ...here.
18057         * config/s390/s390-c.c: Moved to...
18058         * config/s390/s390-c.cc: ...here.
18059         * config/s390/s390-d.c: Moved to...
18060         * config/s390/s390-d.cc: ...here.
18061         * config/s390/s390.c: Moved to...
18062         * config/s390/s390.cc: ...here.
18063         * config/sh/divtab-sh4-300.c: Moved to...
18064         * config/sh/divtab-sh4-300.cc: ...here.
18065         * config/sh/divtab-sh4.c: Moved to...
18066         * config/sh/divtab-sh4.cc: ...here.
18067         * config/sh/divtab.c: Moved to...
18068         * config/sh/divtab.cc: ...here.
18069         * config/sh/sh-c.c: Moved to...
18070         * config/sh/sh-c.cc: ...here.
18071         * config/sh/sh.c: Moved to...
18072         * config/sh/sh.cc: ...here.
18073         * config/sol2-c.c: Moved to...
18074         * config/sol2-c.cc: ...here.
18075         * config/sol2-cxx.c: Moved to...
18076         * config/sol2-cxx.cc: ...here.
18077         * config/sol2-d.c: Moved to...
18078         * config/sol2-d.cc: ...here.
18079         * config/sol2-stubs.c: Moved to...
18080         * config/sol2-stubs.cc: ...here.
18081         * config/sol2.c: Moved to...
18082         * config/sol2.cc: ...here.
18083         * config/sparc/driver-sparc.c: Moved to...
18084         * config/sparc/driver-sparc.cc: ...here.
18085         * config/sparc/sparc-c.c: Moved to...
18086         * config/sparc/sparc-c.cc: ...here.
18087         * config/sparc/sparc-d.c: Moved to...
18088         * config/sparc/sparc-d.cc: ...here.
18089         * config/sparc/sparc.c: Moved to...
18090         * config/sparc/sparc.cc: ...here.
18091         * config/stormy16/stormy16.c: Moved to...
18092         * config/stormy16/stormy16.cc: ...here.
18093         * config/tilegx/mul-tables.c: Moved to...
18094         * config/tilegx/mul-tables.cc: ...here.
18095         * config/tilegx/tilegx-c.c: Moved to...
18096         * config/tilegx/tilegx-c.cc: ...here.
18097         * config/tilegx/tilegx.c: Moved to...
18098         * config/tilegx/tilegx.cc: ...here.
18099         * config/tilepro/mul-tables.c: Moved to...
18100         * config/tilepro/mul-tables.cc: ...here.
18101         * config/tilepro/tilepro-c.c: Moved to...
18102         * config/tilepro/tilepro-c.cc: ...here.
18103         * config/tilepro/tilepro.c: Moved to...
18104         * config/tilepro/tilepro.cc: ...here.
18105         * config/v850/v850-c.c: Moved to...
18106         * config/v850/v850-c.cc: ...here.
18107         * config/v850/v850.c: Moved to...
18108         * config/v850/v850.cc: ...here.
18109         * config/vax/vax.c: Moved to...
18110         * config/vax/vax.cc: ...here.
18111         * config/visium/visium.c: Moved to...
18112         * config/visium/visium.cc: ...here.
18113         * config/vms/vms-c.c: Moved to...
18114         * config/vms/vms-c.cc: ...here.
18115         * config/vms/vms-f.c: Moved to...
18116         * config/vms/vms-f.cc: ...here.
18117         * config/vms/vms.c: Moved to...
18118         * config/vms/vms.cc: ...here.
18119         * config/vxworks-c.c: Moved to...
18120         * config/vxworks-c.cc: ...here.
18121         * config/vxworks.c: Moved to...
18122         * config/vxworks.cc: ...here.
18123         * config/winnt-c.c: Moved to...
18124         * config/winnt-c.cc: ...here.
18125         * config/xtensa/xtensa.c: Moved to...
18126         * config/xtensa/xtensa.cc: ...here.
18127         * context.c: Moved to...
18128         * context.cc: ...here.
18129         * convert.c: Moved to...
18130         * convert.cc: ...here.
18131         * coverage.c: Moved to...
18132         * coverage.cc: ...here.
18133         * cppbuiltin.c: Moved to...
18134         * cppbuiltin.cc: ...here.
18135         * cppdefault.c: Moved to...
18136         * cppdefault.cc: ...here.
18137         * cprop.c: Moved to...
18138         * cprop.cc: ...here.
18139         * cse.c: Moved to...
18140         * cse.cc: ...here.
18141         * cselib.c: Moved to...
18142         * cselib.cc: ...here.
18143         * ctfc.c: Moved to...
18144         * ctfc.cc: ...here.
18145         * ctfout.c: Moved to...
18146         * ctfout.cc: ...here.
18147         * data-streamer-in.c: Moved to...
18148         * data-streamer-in.cc: ...here.
18149         * data-streamer-out.c: Moved to...
18150         * data-streamer-out.cc: ...here.
18151         * data-streamer.c: Moved to...
18152         * data-streamer.cc: ...here.
18153         * dbgcnt.c: Moved to...
18154         * dbgcnt.cc: ...here.
18155         * dbxout.c: Moved to...
18156         * dbxout.cc: ...here.
18157         * dce.c: Moved to...
18158         * dce.cc: ...here.
18159         * ddg.c: Moved to...
18160         * ddg.cc: ...here.
18161         * debug.c: Moved to...
18162         * debug.cc: ...here.
18163         * df-core.c: Moved to...
18164         * df-core.cc: ...here.
18165         * df-problems.c: Moved to...
18166         * df-problems.cc: ...here.
18167         * df-scan.c: Moved to...
18168         * df-scan.cc: ...here.
18169         * dfp.c: Moved to...
18170         * dfp.cc: ...here.
18171         * diagnostic-color.c: Moved to...
18172         * diagnostic-color.cc: ...here.
18173         * diagnostic-show-locus.c: Moved to...
18174         * diagnostic-show-locus.cc: ...here.
18175         * diagnostic-spec.c: Moved to...
18176         * diagnostic-spec.cc: ...here.
18177         * diagnostic.c: Moved to...
18178         * diagnostic.cc: ...here.
18179         * dojump.c: Moved to...
18180         * dojump.cc: ...here.
18181         * dominance.c: Moved to...
18182         * dominance.cc: ...here.
18183         * domwalk.c: Moved to...
18184         * domwalk.cc: ...here.
18185         * double-int.c: Moved to...
18186         * double-int.cc: ...here.
18187         * dse.c: Moved to...
18188         * dse.cc: ...here.
18189         * dumpfile.c: Moved to...
18190         * dumpfile.cc: ...here.
18191         * dwarf2asm.c: Moved to...
18192         * dwarf2asm.cc: ...here.
18193         * dwarf2cfi.c: Moved to...
18194         * dwarf2cfi.cc: ...here.
18195         * dwarf2ctf.c: Moved to...
18196         * dwarf2ctf.cc: ...here.
18197         * dwarf2out.c: Moved to...
18198         * dwarf2out.cc: ...here.
18199         * early-remat.c: Moved to...
18200         * early-remat.cc: ...here.
18201         * edit-context.c: Moved to...
18202         * edit-context.cc: ...here.
18203         * emit-rtl.c: Moved to...
18204         * emit-rtl.cc: ...here.
18205         * errors.c: Moved to...
18206         * errors.cc: ...here.
18207         * et-forest.c: Moved to...
18208         * et-forest.cc: ...here.
18209         * except.c: Moved to...
18210         * except.cc: ...here.
18211         * explow.c: Moved to...
18212         * explow.cc: ...here.
18213         * expmed.c: Moved to...
18214         * expmed.cc: ...here.
18215         * expr.c: Moved to...
18216         * expr.cc: ...here.
18217         * fibonacci_heap.c: Moved to...
18218         * fibonacci_heap.cc: ...here.
18219         * file-find.c: Moved to...
18220         * file-find.cc: ...here.
18221         * file-prefix-map.c: Moved to...
18222         * file-prefix-map.cc: ...here.
18223         * final.c: Moved to...
18224         * final.cc: ...here.
18225         * fixed-value.c: Moved to...
18226         * fixed-value.cc: ...here.
18227         * fold-const-call.c: Moved to...
18228         * fold-const-call.cc: ...here.
18229         * fold-const.c: Moved to...
18230         * fold-const.cc: ...here.
18231         * fp-test.c: Moved to...
18232         * fp-test.cc: ...here.
18233         * function-tests.c: Moved to...
18234         * function-tests.cc: ...here.
18235         * function.c: Moved to...
18236         * function.cc: ...here.
18237         * fwprop.c: Moved to...
18238         * fwprop.cc: ...here.
18239         * gcc-ar.c: Moved to...
18240         * gcc-ar.cc: ...here.
18241         * gcc-main.c: Moved to...
18242         * gcc-main.cc: ...here.
18243         * gcc-rich-location.c: Moved to...
18244         * gcc-rich-location.cc: ...here.
18245         * gcc.c: Moved to...
18246         * gcc.cc: ...here.
18247         * gcov-dump.c: Moved to...
18248         * gcov-dump.cc: ...here.
18249         * gcov-io.c: Moved to...
18250         * gcov-io.cc: ...here.
18251         * gcov-tool.c: Moved to...
18252         * gcov-tool.cc: ...here.
18253         * gcov.c: Moved to...
18254         * gcov.cc: ...here.
18255         * gcse-common.c: Moved to...
18256         * gcse-common.cc: ...here.
18257         * gcse.c: Moved to...
18258         * gcse.cc: ...here.
18259         * genattr-common.c: Moved to...
18260         * genattr-common.cc: ...here.
18261         * genattr.c: Moved to...
18262         * genattr.cc: ...here.
18263         * genattrtab.c: Moved to...
18264         * genattrtab.cc: ...here.
18265         * genautomata.c: Moved to...
18266         * genautomata.cc: ...here.
18267         * gencfn-macros.c: Moved to...
18268         * gencfn-macros.cc: ...here.
18269         * gencheck.c: Moved to...
18270         * gencheck.cc: ...here.
18271         * genchecksum.c: Moved to...
18272         * genchecksum.cc: ...here.
18273         * gencodes.c: Moved to...
18274         * gencodes.cc: ...here.
18275         * genconditions.c: Moved to...
18276         * genconditions.cc: ...here.
18277         * genconfig.c: Moved to...
18278         * genconfig.cc: ...here.
18279         * genconstants.c: Moved to...
18280         * genconstants.cc: ...here.
18281         * genemit.c: Moved to...
18282         * genemit.cc: ...here.
18283         * genenums.c: Moved to...
18284         * genenums.cc: ...here.
18285         * generic-match-head.c: Moved to...
18286         * generic-match-head.cc: ...here.
18287         * genextract.c: Moved to...
18288         * genextract.cc: ...here.
18289         * genflags.c: Moved to...
18290         * genflags.cc: ...here.
18291         * gengenrtl.c: Moved to...
18292         * gengenrtl.cc: ...here.
18293         * gengtype-parse.c: Moved to...
18294         * gengtype-parse.cc: ...here.
18295         * gengtype-state.c: Moved to...
18296         * gengtype-state.cc: ...here.
18297         * gengtype.c: Moved to...
18298         * gengtype.cc: ...here.
18299         * genhooks.c: Moved to...
18300         * genhooks.cc: ...here.
18301         * genmatch.c: Moved to...
18302         * genmatch.cc: ...here.
18303         * genmddeps.c: Moved to...
18304         * genmddeps.cc: ...here.
18305         * genmddump.c: Moved to...
18306         * genmddump.cc: ...here.
18307         * genmodes.c: Moved to...
18308         * genmodes.cc: ...here.
18309         * genopinit.c: Moved to...
18310         * genopinit.cc: ...here.
18311         * genoutput.c: Moved to...
18312         * genoutput.cc: ...here.
18313         * genpeep.c: Moved to...
18314         * genpeep.cc: ...here.
18315         * genpreds.c: Moved to...
18316         * genpreds.cc: ...here.
18317         * genrecog.c: Moved to...
18318         * genrecog.cc: ...here.
18319         * gensupport.c: Moved to...
18320         * gensupport.cc: ...here.
18321         * gentarget-def.c: Moved to...
18322         * gentarget-def.cc: ...here.
18323         * genversion.c: Moved to...
18324         * genversion.cc: ...here.
18325         * ggc-common.c: Moved to...
18326         * ggc-common.cc: ...here.
18327         * ggc-none.c: Moved to...
18328         * ggc-none.cc: ...here.
18329         * ggc-page.c: Moved to...
18330         * ggc-page.cc: ...here.
18331         * ggc-tests.c: Moved to...
18332         * ggc-tests.cc: ...here.
18333         * gimple-builder.c: Moved to...
18334         * gimple-builder.cc: ...here.
18335         * gimple-expr.c: Moved to...
18336         * gimple-expr.cc: ...here.
18337         * gimple-fold.c: Moved to...
18338         * gimple-fold.cc: ...here.
18339         * gimple-iterator.c: Moved to...
18340         * gimple-iterator.cc: ...here.
18341         * gimple-laddress.c: Moved to...
18342         * gimple-laddress.cc: ...here.
18343         * gimple-loop-jam.c: Moved to...
18344         * gimple-loop-jam.cc: ...here.
18345         * gimple-low.c: Moved to...
18346         * gimple-low.cc: ...here.
18347         * gimple-match-head.c: Moved to...
18348         * gimple-match-head.cc: ...here.
18349         * gimple-pretty-print.c: Moved to...
18350         * gimple-pretty-print.cc: ...here.
18351         * gimple-ssa-backprop.c: Moved to...
18352         * gimple-ssa-backprop.cc: ...here.
18353         * gimple-ssa-evrp-analyze.c: Moved to...
18354         * gimple-ssa-evrp-analyze.cc: ...here.
18355         * gimple-ssa-evrp.c: Moved to...
18356         * gimple-ssa-evrp.cc: ...here.
18357         * gimple-ssa-isolate-paths.c: Moved to...
18358         * gimple-ssa-isolate-paths.cc: ...here.
18359         * gimple-ssa-nonnull-compare.c: Moved to...
18360         * gimple-ssa-nonnull-compare.cc: ...here.
18361         * gimple-ssa-split-paths.c: Moved to...
18362         * gimple-ssa-split-paths.cc: ...here.
18363         * gimple-ssa-sprintf.c: Moved to...
18364         * gimple-ssa-sprintf.cc: ...here.
18365         * gimple-ssa-store-merging.c: Moved to...
18366         * gimple-ssa-store-merging.cc: ...here.
18367         * gimple-ssa-strength-reduction.c: Moved to...
18368         * gimple-ssa-strength-reduction.cc: ...here.
18369         * gimple-ssa-warn-alloca.c: Moved to...
18370         * gimple-ssa-warn-alloca.cc: ...here.
18371         * gimple-ssa-warn-restrict.c: Moved to...
18372         * gimple-ssa-warn-restrict.cc: ...here.
18373         * gimple-streamer-in.c: Moved to...
18374         * gimple-streamer-in.cc: ...here.
18375         * gimple-streamer-out.c: Moved to...
18376         * gimple-streamer-out.cc: ...here.
18377         * gimple-walk.c: Moved to...
18378         * gimple-walk.cc: ...here.
18379         * gimple-warn-recursion.c: Moved to...
18380         * gimple-warn-recursion.cc: ...here.
18381         * gimple.c: Moved to...
18382         * gimple.cc: ...here.
18383         * gimplify-me.c: Moved to...
18384         * gimplify-me.cc: ...here.
18385         * gimplify.c: Moved to...
18386         * gimplify.cc: ...here.
18387         * godump.c: Moved to...
18388         * godump.cc: ...here.
18389         * graph.c: Moved to...
18390         * graph.cc: ...here.
18391         * graphds.c: Moved to...
18392         * graphds.cc: ...here.
18393         * graphite-dependences.c: Moved to...
18394         * graphite-dependences.cc: ...here.
18395         * graphite-isl-ast-to-gimple.c: Moved to...
18396         * graphite-isl-ast-to-gimple.cc: ...here.
18397         * graphite-optimize-isl.c: Moved to...
18398         * graphite-optimize-isl.cc: ...here.
18399         * graphite-poly.c: Moved to...
18400         * graphite-poly.cc: ...here.
18401         * graphite-scop-detection.c: Moved to...
18402         * graphite-scop-detection.cc: ...here.
18403         * graphite-sese-to-poly.c: Moved to...
18404         * graphite-sese-to-poly.cc: ...here.
18405         * graphite.c: Moved to...
18406         * graphite.cc: ...here.
18407         * haifa-sched.c: Moved to...
18408         * haifa-sched.cc: ...here.
18409         * hash-map-tests.c: Moved to...
18410         * hash-map-tests.cc: ...here.
18411         * hash-set-tests.c: Moved to...
18412         * hash-set-tests.cc: ...here.
18413         * hash-table.c: Moved to...
18414         * hash-table.cc: ...here.
18415         * hooks.c: Moved to...
18416         * hooks.cc: ...here.
18417         * host-default.c: Moved to...
18418         * host-default.cc: ...here.
18419         * hw-doloop.c: Moved to...
18420         * hw-doloop.cc: ...here.
18421         * hwint.c: Moved to...
18422         * hwint.cc: ...here.
18423         * ifcvt.c: Moved to...
18424         * ifcvt.cc: ...here.
18425         * inchash.c: Moved to...
18426         * inchash.cc: ...here.
18427         * incpath.c: Moved to...
18428         * incpath.cc: ...here.
18429         * init-regs.c: Moved to...
18430         * init-regs.cc: ...here.
18431         * input.c: Moved to...
18432         * input.cc: ...here.
18433         * internal-fn.c: Moved to...
18434         * internal-fn.cc: ...here.
18435         * intl.c: Moved to...
18436         * intl.cc: ...here.
18437         * ipa-comdats.c: Moved to...
18438         * ipa-comdats.cc: ...here.
18439         * ipa-cp.c: Moved to...
18440         * ipa-cp.cc: ...here.
18441         * ipa-devirt.c: Moved to...
18442         * ipa-devirt.cc: ...here.
18443         * ipa-fnsummary.c: Moved to...
18444         * ipa-fnsummary.cc: ...here.
18445         * ipa-icf-gimple.c: Moved to...
18446         * ipa-icf-gimple.cc: ...here.
18447         * ipa-icf.c: Moved to...
18448         * ipa-icf.cc: ...here.
18449         * ipa-inline-analysis.c: Moved to...
18450         * ipa-inline-analysis.cc: ...here.
18451         * ipa-inline-transform.c: Moved to...
18452         * ipa-inline-transform.cc: ...here.
18453         * ipa-inline.c: Moved to...
18454         * ipa-inline.cc: ...here.
18455         * ipa-modref-tree.c: Moved to...
18456         * ipa-modref-tree.cc: ...here.
18457         * ipa-modref.c: Moved to...
18458         * ipa-modref.cc: ...here.
18459         * ipa-param-manipulation.c: Moved to...
18460         * ipa-param-manipulation.cc: ...here.
18461         * ipa-polymorphic-call.c: Moved to...
18462         * ipa-polymorphic-call.cc: ...here.
18463         * ipa-predicate.c: Moved to...
18464         * ipa-predicate.cc: ...here.
18465         * ipa-profile.c: Moved to...
18466         * ipa-profile.cc: ...here.
18467         * ipa-prop.c: Moved to...
18468         * ipa-prop.cc: ...here.
18469         * ipa-pure-const.c: Moved to...
18470         * ipa-pure-const.cc: ...here.
18471         * ipa-ref.c: Moved to...
18472         * ipa-ref.cc: ...here.
18473         * ipa-reference.c: Moved to...
18474         * ipa-reference.cc: ...here.
18475         * ipa-split.c: Moved to...
18476         * ipa-split.cc: ...here.
18477         * ipa-sra.c: Moved to...
18478         * ipa-sra.cc: ...here.
18479         * ipa-utils.c: Moved to...
18480         * ipa-utils.cc: ...here.
18481         * ipa-visibility.c: Moved to...
18482         * ipa-visibility.cc: ...here.
18483         * ipa.c: Moved to...
18484         * ipa.cc: ...here.
18485         * ira-build.c: Moved to...
18486         * ira-build.cc: ...here.
18487         * ira-color.c: Moved to...
18488         * ira-color.cc: ...here.
18489         * ira-conflicts.c: Moved to...
18490         * ira-conflicts.cc: ...here.
18491         * ira-costs.c: Moved to...
18492         * ira-costs.cc: ...here.
18493         * ira-emit.c: Moved to...
18494         * ira-emit.cc: ...here.
18495         * ira-lives.c: Moved to...
18496         * ira-lives.cc: ...here.
18497         * ira.c: Moved to...
18498         * ira.cc: ...here.
18499         * jump.c: Moved to...
18500         * jump.cc: ...here.
18501         * langhooks.c: Moved to...
18502         * langhooks.cc: ...here.
18503         * lcm.c: Moved to...
18504         * lcm.cc: ...here.
18505         * lists.c: Moved to...
18506         * lists.cc: ...here.
18507         * loop-doloop.c: Moved to...
18508         * loop-doloop.cc: ...here.
18509         * loop-init.c: Moved to...
18510         * loop-init.cc: ...here.
18511         * loop-invariant.c: Moved to...
18512         * loop-invariant.cc: ...here.
18513         * loop-iv.c: Moved to...
18514         * loop-iv.cc: ...here.
18515         * loop-unroll.c: Moved to...
18516         * loop-unroll.cc: ...here.
18517         * lower-subreg.c: Moved to...
18518         * lower-subreg.cc: ...here.
18519         * lra-assigns.c: Moved to...
18520         * lra-assigns.cc: ...here.
18521         * lra-coalesce.c: Moved to...
18522         * lra-coalesce.cc: ...here.
18523         * lra-constraints.c: Moved to...
18524         * lra-constraints.cc: ...here.
18525         * lra-eliminations.c: Moved to...
18526         * lra-eliminations.cc: ...here.
18527         * lra-lives.c: Moved to...
18528         * lra-lives.cc: ...here.
18529         * lra-remat.c: Moved to...
18530         * lra-remat.cc: ...here.
18531         * lra-spills.c: Moved to...
18532         * lra-spills.cc: ...here.
18533         * lra.c: Moved to...
18534         * lra.cc: ...here.
18535         * lto-cgraph.c: Moved to...
18536         * lto-cgraph.cc: ...here.
18537         * lto-compress.c: Moved to...
18538         * lto-compress.cc: ...here.
18539         * lto-opts.c: Moved to...
18540         * lto-opts.cc: ...here.
18541         * lto-section-in.c: Moved to...
18542         * lto-section-in.cc: ...here.
18543         * lto-section-out.c: Moved to...
18544         * lto-section-out.cc: ...here.
18545         * lto-streamer-in.c: Moved to...
18546         * lto-streamer-in.cc: ...here.
18547         * lto-streamer-out.c: Moved to...
18548         * lto-streamer-out.cc: ...here.
18549         * lto-streamer.c: Moved to...
18550         * lto-streamer.cc: ...here.
18551         * lto-wrapper.c: Moved to...
18552         * lto-wrapper.cc: ...here.
18553         * main.c: Moved to...
18554         * main.cc: ...here.
18555         * mcf.c: Moved to...
18556         * mcf.cc: ...here.
18557         * mode-switching.c: Moved to...
18558         * mode-switching.cc: ...here.
18559         * modulo-sched.c: Moved to...
18560         * modulo-sched.cc: ...here.
18561         * multiple_target.c: Moved to...
18562         * multiple_target.cc: ...here.
18563         * omp-expand.c: Moved to...
18564         * omp-expand.cc: ...here.
18565         * omp-general.c: Moved to...
18566         * omp-general.cc: ...here.
18567         * omp-low.c: Moved to...
18568         * omp-low.cc: ...here.
18569         * omp-offload.c: Moved to...
18570         * omp-offload.cc: ...here.
18571         * omp-simd-clone.c: Moved to...
18572         * omp-simd-clone.cc: ...here.
18573         * opt-suggestions.c: Moved to...
18574         * opt-suggestions.cc: ...here.
18575         * optabs-libfuncs.c: Moved to...
18576         * optabs-libfuncs.cc: ...here.
18577         * optabs-query.c: Moved to...
18578         * optabs-query.cc: ...here.
18579         * optabs-tree.c: Moved to...
18580         * optabs-tree.cc: ...here.
18581         * optabs.c: Moved to...
18582         * optabs.cc: ...here.
18583         * opts-common.c: Moved to...
18584         * opts-common.cc: ...here.
18585         * opts-global.c: Moved to...
18586         * opts-global.cc: ...here.
18587         * opts.c: Moved to...
18588         * opts.cc: ...here.
18589         * passes.c: Moved to...
18590         * passes.cc: ...here.
18591         * plugin.c: Moved to...
18592         * plugin.cc: ...here.
18593         * postreload-gcse.c: Moved to...
18594         * postreload-gcse.cc: ...here.
18595         * postreload.c: Moved to...
18596         * postreload.cc: ...here.
18597         * predict.c: Moved to...
18598         * predict.cc: ...here.
18599         * prefix.c: Moved to...
18600         * prefix.cc: ...here.
18601         * pretty-print.c: Moved to...
18602         * pretty-print.cc: ...here.
18603         * print-rtl-function.c: Moved to...
18604         * print-rtl-function.cc: ...here.
18605         * print-rtl.c: Moved to...
18606         * print-rtl.cc: ...here.
18607         * print-tree.c: Moved to...
18608         * print-tree.cc: ...here.
18609         * profile-count.c: Moved to...
18610         * profile-count.cc: ...here.
18611         * profile.c: Moved to...
18612         * profile.cc: ...here.
18613         * read-md.c: Moved to...
18614         * read-md.cc: ...here.
18615         * read-rtl-function.c: Moved to...
18616         * read-rtl-function.cc: ...here.
18617         * read-rtl.c: Moved to...
18618         * read-rtl.cc: ...here.
18619         * real.c: Moved to...
18620         * real.cc: ...here.
18621         * realmpfr.c: Moved to...
18622         * realmpfr.cc: ...here.
18623         * recog.c: Moved to...
18624         * recog.cc: ...here.
18625         * ree.c: Moved to...
18626         * ree.cc: ...here.
18627         * reg-stack.c: Moved to...
18628         * reg-stack.cc: ...here.
18629         * regcprop.c: Moved to...
18630         * regcprop.cc: ...here.
18631         * reginfo.c: Moved to...
18632         * reginfo.cc: ...here.
18633         * regrename.c: Moved to...
18634         * regrename.cc: ...here.
18635         * regstat.c: Moved to...
18636         * regstat.cc: ...here.
18637         * reload.c: Moved to...
18638         * reload.cc: ...here.
18639         * reload1.c: Moved to...
18640         * reload1.cc: ...here.
18641         * reorg.c: Moved to...
18642         * reorg.cc: ...here.
18643         * resource.c: Moved to...
18644         * resource.cc: ...here.
18645         * rtl-error.c: Moved to...
18646         * rtl-error.cc: ...here.
18647         * rtl-tests.c: Moved to...
18648         * rtl-tests.cc: ...here.
18649         * rtl.c: Moved to...
18650         * rtl.cc: ...here.
18651         * rtlanal.c: Moved to...
18652         * rtlanal.cc: ...here.
18653         * rtlhash.c: Moved to...
18654         * rtlhash.cc: ...here.
18655         * rtlhooks.c: Moved to...
18656         * rtlhooks.cc: ...here.
18657         * rtx-vector-builder.c: Moved to...
18658         * rtx-vector-builder.cc: ...here.
18659         * run-rtl-passes.c: Moved to...
18660         * run-rtl-passes.cc: ...here.
18661         * sancov.c: Moved to...
18662         * sancov.cc: ...here.
18663         * sanopt.c: Moved to...
18664         * sanopt.cc: ...here.
18665         * sbitmap.c: Moved to...
18666         * sbitmap.cc: ...here.
18667         * sched-deps.c: Moved to...
18668         * sched-deps.cc: ...here.
18669         * sched-ebb.c: Moved to...
18670         * sched-ebb.cc: ...here.
18671         * sched-rgn.c: Moved to...
18672         * sched-rgn.cc: ...here.
18673         * sel-sched-dump.c: Moved to...
18674         * sel-sched-dump.cc: ...here.
18675         * sel-sched-ir.c: Moved to...
18676         * sel-sched-ir.cc: ...here.
18677         * sel-sched.c: Moved to...
18678         * sel-sched.cc: ...here.
18679         * selftest-diagnostic.c: Moved to...
18680         * selftest-diagnostic.cc: ...here.
18681         * selftest-rtl.c: Moved to...
18682         * selftest-rtl.cc: ...here.
18683         * selftest-run-tests.c: Moved to...
18684         * selftest-run-tests.cc: ...here.
18685         * selftest.c: Moved to...
18686         * selftest.cc: ...here.
18687         * sese.c: Moved to...
18688         * sese.cc: ...here.
18689         * shrink-wrap.c: Moved to...
18690         * shrink-wrap.cc: ...here.
18691         * simplify-rtx.c: Moved to...
18692         * simplify-rtx.cc: ...here.
18693         * sparseset.c: Moved to...
18694         * sparseset.cc: ...here.
18695         * spellcheck-tree.c: Moved to...
18696         * spellcheck-tree.cc: ...here.
18697         * spellcheck.c: Moved to...
18698         * spellcheck.cc: ...here.
18699         * sreal.c: Moved to...
18700         * sreal.cc: ...here.
18701         * stack-ptr-mod.c: Moved to...
18702         * stack-ptr-mod.cc: ...here.
18703         * statistics.c: Moved to...
18704         * statistics.cc: ...here.
18705         * stmt.c: Moved to...
18706         * stmt.cc: ...here.
18707         * stor-layout.c: Moved to...
18708         * stor-layout.cc: ...here.
18709         * store-motion.c: Moved to...
18710         * store-motion.cc: ...here.
18711         * streamer-hooks.c: Moved to...
18712         * streamer-hooks.cc: ...here.
18713         * stringpool.c: Moved to...
18714         * stringpool.cc: ...here.
18715         * substring-locations.c: Moved to...
18716         * substring-locations.cc: ...here.
18717         * symtab.c: Moved to...
18718         * symtab.cc: ...here.
18719         * target-globals.c: Moved to...
18720         * target-globals.cc: ...here.
18721         * targhooks.c: Moved to...
18722         * targhooks.cc: ...here.
18723         * timevar.c: Moved to...
18724         * timevar.cc: ...here.
18725         * toplev.c: Moved to...
18726         * toplev.cc: ...here.
18727         * tracer.c: Moved to...
18728         * tracer.cc: ...here.
18729         * trans-mem.c: Moved to...
18730         * trans-mem.cc: ...here.
18731         * tree-affine.c: Moved to...
18732         * tree-affine.cc: ...here.
18733         * tree-call-cdce.c: Moved to...
18734         * tree-call-cdce.cc: ...here.
18735         * tree-cfg.c: Moved to...
18736         * tree-cfg.cc: ...here.
18737         * tree-cfgcleanup.c: Moved to...
18738         * tree-cfgcleanup.cc: ...here.
18739         * tree-chrec.c: Moved to...
18740         * tree-chrec.cc: ...here.
18741         * tree-complex.c: Moved to...
18742         * tree-complex.cc: ...here.
18743         * tree-data-ref.c: Moved to...
18744         * tree-data-ref.cc: ...here.
18745         * tree-dfa.c: Moved to...
18746         * tree-dfa.cc: ...here.
18747         * tree-diagnostic.c: Moved to...
18748         * tree-diagnostic.cc: ...here.
18749         * tree-dump.c: Moved to...
18750         * tree-dump.cc: ...here.
18751         * tree-eh.c: Moved to...
18752         * tree-eh.cc: ...here.
18753         * tree-emutls.c: Moved to...
18754         * tree-emutls.cc: ...here.
18755         * tree-if-conv.c: Moved to...
18756         * tree-if-conv.cc: ...here.
18757         * tree-inline.c: Moved to...
18758         * tree-inline.cc: ...here.
18759         * tree-into-ssa.c: Moved to...
18760         * tree-into-ssa.cc: ...here.
18761         * tree-iterator.c: Moved to...
18762         * tree-iterator.cc: ...here.
18763         * tree-loop-distribution.c: Moved to...
18764         * tree-loop-distribution.cc: ...here.
18765         * tree-nested.c: Moved to...
18766         * tree-nested.cc: ...here.
18767         * tree-nrv.c: Moved to...
18768         * tree-nrv.cc: ...here.
18769         * tree-object-size.c: Moved to...
18770         * tree-object-size.cc: ...here.
18771         * tree-outof-ssa.c: Moved to...
18772         * tree-outof-ssa.cc: ...here.
18773         * tree-parloops.c: Moved to...
18774         * tree-parloops.cc: ...here.
18775         * tree-phinodes.c: Moved to...
18776         * tree-phinodes.cc: ...here.
18777         * tree-predcom.c: Moved to...
18778         * tree-predcom.cc: ...here.
18779         * tree-pretty-print.c: Moved to...
18780         * tree-pretty-print.cc: ...here.
18781         * tree-profile.c: Moved to...
18782         * tree-profile.cc: ...here.
18783         * tree-scalar-evolution.c: Moved to...
18784         * tree-scalar-evolution.cc: ...here.
18785         * tree-sra.c: Moved to...
18786         * tree-sra.cc: ...here.
18787         * tree-ssa-address.c: Moved to...
18788         * tree-ssa-address.cc: ...here.
18789         * tree-ssa-alias.c: Moved to...
18790         * tree-ssa-alias.cc: ...here.
18791         * tree-ssa-ccp.c: Moved to...
18792         * tree-ssa-ccp.cc: ...here.
18793         * tree-ssa-coalesce.c: Moved to...
18794         * tree-ssa-coalesce.cc: ...here.
18795         * tree-ssa-copy.c: Moved to...
18796         * tree-ssa-copy.cc: ...here.
18797         * tree-ssa-dce.c: Moved to...
18798         * tree-ssa-dce.cc: ...here.
18799         * tree-ssa-dom.c: Moved to...
18800         * tree-ssa-dom.cc: ...here.
18801         * tree-ssa-dse.c: Moved to...
18802         * tree-ssa-dse.cc: ...here.
18803         * tree-ssa-forwprop.c: Moved to...
18804         * tree-ssa-forwprop.cc: ...here.
18805         * tree-ssa-ifcombine.c: Moved to...
18806         * tree-ssa-ifcombine.cc: ...here.
18807         * tree-ssa-live.c: Moved to...
18808         * tree-ssa-live.cc: ...here.
18809         * tree-ssa-loop-ch.c: Moved to...
18810         * tree-ssa-loop-ch.cc: ...here.
18811         * tree-ssa-loop-im.c: Moved to...
18812         * tree-ssa-loop-im.cc: ...here.
18813         * tree-ssa-loop-ivcanon.c: Moved to...
18814         * tree-ssa-loop-ivcanon.cc: ...here.
18815         * tree-ssa-loop-ivopts.c: Moved to...
18816         * tree-ssa-loop-ivopts.cc: ...here.
18817         * tree-ssa-loop-manip.c: Moved to...
18818         * tree-ssa-loop-manip.cc: ...here.
18819         * tree-ssa-loop-niter.c: Moved to...
18820         * tree-ssa-loop-niter.cc: ...here.
18821         * tree-ssa-loop-prefetch.c: Moved to...
18822         * tree-ssa-loop-prefetch.cc: ...here.
18823         * tree-ssa-loop-split.c: Moved to...
18824         * tree-ssa-loop-split.cc: ...here.
18825         * tree-ssa-loop-unswitch.c: Moved to...
18826         * tree-ssa-loop-unswitch.cc: ...here.
18827         * tree-ssa-loop.c: Moved to...
18828         * tree-ssa-loop.cc: ...here.
18829         * tree-ssa-math-opts.c: Moved to...
18830         * tree-ssa-math-opts.cc: ...here.
18831         * tree-ssa-operands.c: Moved to...
18832         * tree-ssa-operands.cc: ...here.
18833         * tree-ssa-phiopt.c: Moved to...
18834         * tree-ssa-phiopt.cc: ...here.
18835         * tree-ssa-phiprop.c: Moved to...
18836         * tree-ssa-phiprop.cc: ...here.
18837         * tree-ssa-pre.c: Moved to...
18838         * tree-ssa-pre.cc: ...here.
18839         * tree-ssa-propagate.c: Moved to...
18840         * tree-ssa-propagate.cc: ...here.
18841         * tree-ssa-reassoc.c: Moved to...
18842         * tree-ssa-reassoc.cc: ...here.
18843         * tree-ssa-sccvn.c: Moved to...
18844         * tree-ssa-sccvn.cc: ...here.
18845         * tree-ssa-scopedtables.c: Moved to...
18846         * tree-ssa-scopedtables.cc: ...here.
18847         * tree-ssa-sink.c: Moved to...
18848         * tree-ssa-sink.cc: ...here.
18849         * tree-ssa-strlen.c: Moved to...
18850         * tree-ssa-strlen.cc: ...here.
18851         * tree-ssa-structalias.c: Moved to...
18852         * tree-ssa-structalias.cc: ...here.
18853         * tree-ssa-tail-merge.c: Moved to...
18854         * tree-ssa-tail-merge.cc: ...here.
18855         * tree-ssa-ter.c: Moved to...
18856         * tree-ssa-ter.cc: ...here.
18857         * tree-ssa-threadbackward.c: Moved to...
18858         * tree-ssa-threadbackward.cc: ...here.
18859         * tree-ssa-threadedge.c: Moved to...
18860         * tree-ssa-threadedge.cc: ...here.
18861         * tree-ssa-threadupdate.c: Moved to...
18862         * tree-ssa-threadupdate.cc: ...here.
18863         * tree-ssa-uncprop.c: Moved to...
18864         * tree-ssa-uncprop.cc: ...here.
18865         * tree-ssa-uninit.c: Moved to...
18866         * tree-ssa-uninit.cc: ...here.
18867         * tree-ssa.c: Moved to...
18868         * tree-ssa.cc: ...here.
18869         * tree-ssanames.c: Moved to...
18870         * tree-ssanames.cc: ...here.
18871         * tree-stdarg.c: Moved to...
18872         * tree-stdarg.cc: ...here.
18873         * tree-streamer-in.c: Moved to...
18874         * tree-streamer-in.cc: ...here.
18875         * tree-streamer-out.c: Moved to...
18876         * tree-streamer-out.cc: ...here.
18877         * tree-streamer.c: Moved to...
18878         * tree-streamer.cc: ...here.
18879         * tree-switch-conversion.c: Moved to...
18880         * tree-switch-conversion.cc: ...here.
18881         * tree-tailcall.c: Moved to...
18882         * tree-tailcall.cc: ...here.
18883         * tree-vect-data-refs.c: Moved to...
18884         * tree-vect-data-refs.cc: ...here.
18885         * tree-vect-generic.c: Moved to...
18886         * tree-vect-generic.cc: ...here.
18887         * tree-vect-loop-manip.c: Moved to...
18888         * tree-vect-loop-manip.cc: ...here.
18889         * tree-vect-loop.c: Moved to...
18890         * tree-vect-loop.cc: ...here.
18891         * tree-vect-patterns.c: Moved to...
18892         * tree-vect-patterns.cc: ...here.
18893         * tree-vect-slp-patterns.c: Moved to...
18894         * tree-vect-slp-patterns.cc: ...here.
18895         * tree-vect-slp.c: Moved to...
18896         * tree-vect-slp.cc: ...here.
18897         * tree-vect-stmts.c: Moved to...
18898         * tree-vect-stmts.cc: ...here.
18899         * tree-vector-builder.c: Moved to...
18900         * tree-vector-builder.cc: ...here.
18901         * tree-vectorizer.c: Moved to...
18902         * tree-vectorizer.cc: ...here.
18903         * tree-vrp.c: Moved to...
18904         * tree-vrp.cc: ...here.
18905         * tree.c: Moved to...
18906         * tree.cc: ...here.
18907         * tsan.c: Moved to...
18908         * tsan.cc: ...here.
18909         * typed-splay-tree.c: Moved to...
18910         * typed-splay-tree.cc: ...here.
18911         * ubsan.c: Moved to...
18912         * ubsan.cc: ...here.
18913         * valtrack.c: Moved to...
18914         * valtrack.cc: ...here.
18915         * value-prof.c: Moved to...
18916         * value-prof.cc: ...here.
18917         * var-tracking.c: Moved to...
18918         * var-tracking.cc: ...here.
18919         * varasm.c: Moved to...
18920         * varasm.cc: ...here.
18921         * varpool.c: Moved to...
18922         * varpool.cc: ...here.
18923         * vec-perm-indices.c: Moved to...
18924         * vec-perm-indices.cc: ...here.
18925         * vec.c: Moved to...
18926         * vec.cc: ...here.
18927         * vmsdbgout.c: Moved to...
18928         * vmsdbgout.cc: ...here.
18929         * vr-values.c: Moved to...
18930         * vr-values.cc: ...here.
18931         * vtable-verify.c: Moved to...
18932         * vtable-verify.cc: ...here.
18933         * web.c: Moved to...
18934         * web.cc: ...here.
18935         * xcoffout.c: Moved to...
18936         * xcoffout.cc: ...here.
18938 2022-01-17  qing zhao  <qing.zhao@oracle.com>
18940         * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
18941         .DEFERRED_INIT call with an anonymous SSA_NAME specially.
18942         (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
18943         specially.
18944         (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
18945         (warn_uninitialized_vars): Likewise.
18946         (warn_uninitialized_phi): Likewise.
18948 2022-01-17  Jason Merrill  <jason@redhat.com>
18950         * diagnostic.h (struct diagnostic_context): Add includes_seen.
18951         * diagnostic.c (diagnostic_initialize): Initialize it.
18952         (diagnostic_finish): Clean it up.
18953         (includes_seen): New function.
18954         (diagnostic_report_current_module): Use it.
18956 2022-01-17  Richard Biener  <rguenther@suse.de>
18958         PR middle-end/101292
18959         * diagnostic-spec.c (copy_warning): Make sure to not
18960         reference old hashtable content on possible resize.
18961         * warning-control.cc (copy_warning): Likewise.
18963 2022-01-17  Jakub Jelinek  <jakub@redhat.com>
18965         PR target/103973
18966         * tree-cfg.h (cond_only_block_p): Declare.
18967         * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
18968         * tree-cfg.c (cond_only_block_p): ... here.  No longer static.
18969         * optabs.def (spaceship_optab): New optab.
18970         * internal-fn.def (SPACESHIP): New internal function.
18971         * internal-fn.h (expand_SPACESHIP): Declare.
18972         * internal-fn.c (expand_PHI): Formatting fix.
18973         (expand_SPACESHIP): New function.
18974         * tree-ssa-math-opts.c (optimize_spaceship): New function.
18975         (math_opts_dom_walker::after_dom_children): Use it.
18976         * config/i386/i386.md (spaceship<mode>3): New define_expand.
18977         * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
18978         * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
18979         * doc/md.texi (spaceship@var{m}3): Document.
18981 2022-01-17  Kewen Lin  <linkw@linux.ibm.com>
18983         * config/rs6000/altivec.md (altivec_vreveti2): Remove.
18984         * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
18985         *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
18986         known constant values to simplify code.
18988 2022-01-17  Haochen Gui  <guihaoc@gcc.gnu.org>
18990         PR target/103124
18991         * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
18993 2022-01-16  wwwhhhyyy  <hongyu.wang@intel.com>
18995         * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
18996         * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
18997         Insert zero-idiom in output template when attr enabled, set new attribute to
18998         true for non-mask/maskz insn.
18999         (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
19000         Likewise.
19001         (avx512dq_mul<mode>3<mask_name>): Likewise.
19002         (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
19003         (avx2_perm<mode>_1<mask_name>): Likewise.
19004         (avx512f_perm<mode>_1<mask_name>): Likewise.
19005         (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
19006         (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
19007         Likewise.
19008         (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
19009         (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
19010         Likewise.
19011         * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
19012         subst_attr.
19013         (mask4_dest_false_dep_for_glc_cond): Likewise.
19014         (mask6_dest_false_dep_for_glc_cond): Likewise.
19015         (mask10_dest_false_dep_for_glc_cond): Likewise.
19016         (maskc_dest_false_dep_for_glc_cond): Likewise.
19017         (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
19018         (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
19019         * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
19020         DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
19022 2022-01-15  Martin Sebor  <msebor@redhat.com>
19024         PR c/63272
19025         * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
19026         -Wdangling-pointer.
19027         * doc/invoke.texi (-Wdangling-pointer): Document new option.
19028         * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
19029         (pass_waccess::check_pointer_uses): New function.
19030         (pass_waccess::gimple_call_return_arg): New function.
19031         (pass_waccess::gimple_call_return_arg_ref): New function.
19032         (pass_waccess::check_call_dangling): New function.
19033         (pass_waccess::check_dangling_uses): New function overloads.
19034         (pass_waccess::check_dangling_stores): New function.
19035         (pass_waccess::check_dangling_stores): New function.
19036         (pass_waccess::m_clobbers): New data member.
19037         (pass_waccess::m_func): New data member.
19038         (pass_waccess::m_run_number): New data member.
19039         (pass_waccess::m_check_dangling_p): New data member.
19040         (pass_waccess::check_alloca): Check m_early_checks_p.
19041         (pass_waccess::check_alloc_size_call): Same.
19042         (pass_waccess::check_strcat): Same.
19043         (pass_waccess::check_strncat): Same.
19044         (pass_waccess::check_stxcpy): Same.
19045         (pass_waccess::check_stxncpy): Same.
19046         (pass_waccess::check_strncmp): Same.
19047         (pass_waccess::check_memop_access): Same.
19048         (pass_waccess::check_read_access): Same.
19049         (pass_waccess::check_builtin): Call check_pointer_uses.
19050         (pass_waccess::warn_invalid_pointer): Add arguments.
19051         (is_auto_decl): New function.
19052         (pass_waccess::check_stmt): New function.
19053         (pass_waccess::check_block): Call check_stmt.
19054         (pass_waccess::execute): Call check_dangling_uses,
19055         check_dangling_stores.  Empty m_clobbers.
19056         * passes.def (pass_warn_access): Invoke pass two more times.
19058 2022-01-15  Martin Sebor  <msebor@redhat.com>
19060         PR tree-optimization/80532
19061         * common.opt (-Wuse-after-free): New options.
19062         * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
19063         OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
19064         * diagnostic-spec.h (NW_DANGLING): New enumerator.
19065         * doc/invoke.texi (-Wuse-after-free): Document new option.
19066         * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
19067         (pass_waccess::check_call_access): ...to this.
19068         (pass_waccess::check): Rename...
19069         (pass_waccess::check_block): ...to this.
19070         (pass_waccess::check_pointer_uses): New function.
19071         (pass_waccess::gimple_call_return_arg): New function.
19072         (pass_waccess::warn_invalid_pointer): New function.
19073         (pass_waccess::check_builtin): Handle free and realloc.
19074         (gimple_use_after_inval_p): New function.
19075         (get_realloc_lhs): New function.
19076         (maybe_warn_mismatched_realloc): New function.
19077         (pointers_related_p): New function.
19078         (pass_waccess::check_call): Call check_pointer_uses.
19079         (pass_waccess::execute): Compute and free dominance info.
19081 2022-01-15  Uroš Bizjak  <ubizjak@gmail.com>
19083         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
19084         expand_simple_unop and expand_simple_binop instead of manually
19085         constructing NOT, AND and IOR RTXes.  Use vector_all_ones_operand
19086         consistently.  Eliminate common subexpressions and simplify code.
19087         * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
19088         (<any_logic:code><MODEF:mode>3): Make public.
19090 2022-01-14  Eric Botcazou  <ebotcazou@adacore.com>
19092         * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
19093         reverse flag as "reverse" for the sake of consistency.
19094         * ipa-sra.c: Fix copyright year.
19095         (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
19096         (dump_isra_access): Tweak dump line.
19097         (isra_write_node_summary): Write the reverse flag.
19098         (isra_read_node_info): Read it.
19099         (pull_accesses_from_callee): Test its consistency and copy it.
19101 2022-01-14  Richard Sandiford  <richard.sandiford@arm.com>
19103         PR middle-end/104026
19104         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
19105         partial_load_store_bias.
19107 2022-01-14  Martin Sebor  <msebor@redhat.com>
19109         PR middle-end/101475
19110         * pointer-query.cc (handle_component_ref): Use the size of
19111         the enclosing object if it's smaller than the member.
19113 2022-01-14  Martin Liska  <mliska@suse.cz>
19115         * configure: Regenerate.
19117 2022-01-14  Uroš Bizjak  <ubizjak@gmail.com>
19119         * config/i386/i386.md (*add<mode>_1_slp"):
19120         Mark alternative 1 output operand earlyclobbered.
19121         (*sub<mode>_1_slp): Ditto.
19122         (*and<mode>_1_slp): Ditto.
19123         (*<code><mode>_1_slp): Ditto.
19124         (*neg<mode>_1_slp): Ditto.
19125         (*one_cmpl<mode>_1_slp): Ditto.
19126         (*ashl<mode>3_1_slp): Ditto.
19127         (*<insn><mode>3_1_slp): Ditto.
19128         (*<insn><mode>3_1_slp): Ditto.
19130 2022-01-14  Kewen Lin  <linkw@linux.ibm.com>
19132         PR tree-optimization/104015
19133         * tree-vect-loop.c (vect_analyze_loop): Check
19134         param_vect_partial_vector_usage for supports_partial_vectors.
19136 2022-01-14  Jakub Jelinek  <jakub@redhat.com>
19138         PR c++/89074
19139         * fold-const.c (address_compare): Punt on comparison of address of
19140         one object with address of end of another object if
19141         folding_initializer.
19143 2022-01-14  Jakub Jelinek  <jakub@redhat.com>
19145         PR target/98737
19146         * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
19147         __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
19148         and __atomic_op_fetch (p, x, y) iop x into
19149         __atomic_fetch_op (p, x, y).
19151 2022-01-14  Claudiu Zissulescu  <claziss@synopsys.com>
19153         * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
19154         (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
19155         (INCOMING_RETURN_ADDR_RTX): Likewise.
19156         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
19158 2022-01-14  Claudiu Zissulescu  <claziss@synopsys.com>
19160         * config/arc/arc.c (arc_compute_frame_size): Remove condition when
19161         computin checking accumulator regs.
19162         (arc_expand_prologue): Update comments.
19163         (arc_expand_epilogue): Likewise.
19165 2022-01-14  Roger Sayle  <roger@nextmovesoftware.com>
19166             Uroš Bizjak  <ubizjak@gmail.com>
19168         * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
19169         (ix86_expand_ti_to_v1ti): Use force_reg.
19170         (ix86_expand_v1ti_shift): Use force_reg.
19171         (ix86_expand_v1ti_rotate): Use force_reg.
19172         (ix86_expand_v1ti_ashiftrt): Provide new three operation
19173         implementations for shifts by 111..126 bits.  Use force_reg.
19175 2022-01-14  Martin Liska  <mliska@suse.cz>
19177         * common/config/arm/arm-common.c (arm_target_mode): Fix
19178         warning: unterminated quoting directive [-Wformat=].
19180 2022-01-14  Siddhesh Poyarekar  <siddhesh@gotplt.org>
19182         PR tree-optimization/104009
19183         * tree-object-size.c (compute_builtin_object_size): Bail out on
19184         negative offset.
19185         (plus_stmt_object_size): Return maximum of wholesize and minimum
19186         of 0 for negative offset.
19188 2022-01-14  liuhongt  <hongtao.liu@intel.com>
19190         PR target/104001
19191         PR target/94790
19192         PR target/104014
19193         * config/i386/i386.md (*xor2andn): Refine predicate of
19194         operands[0] from nonimmediate_operand to
19195         register_operand, remove TARGET_AVX512BW from condition.
19197 2022-01-14  David Malcolm  <dmalcolm@redhat.com>
19199         * doc/extend.texi (Function Attributes): Note that "tainted_args" can
19200         be used on field decls.
19201         (Common Function Attributes): Add entry on "tainted_args" attribute.
19203 2022-01-13  Anthony Sharp  <anthonysharp15@gmail.com>
19204             Jason Merrill  <jason@redhat.com>
19206         PR c++/70417
19207         * doc/invoke.texi: Documentation for Wmissing-template-keyword.
19209 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
19211         PR target/103861
19212         * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
19213         (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
19214         * config/i386/mmx.md (<any_shift:insn>v2qi):
19215         New insn_and_split pattern.
19217 2022-01-13  Robin Dapp  <rdapp@linux.ibm.com>
19219         * internal-fn.c (expand_partial_load_optab_fn): Add bias.
19220         (expand_partial_store_optab_fn): Likewise.
19221         (internal_len_load_store_bias): New function.
19222         * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
19223         (internal_len_load_store_bias): New function.
19224         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
19225         (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
19226         * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
19227         (vect_estimate_min_profitable_iters): Account for bias.
19228         (vect_get_loop_len): Add bias-adjusted length.
19229         * tree-vect-stmts.c (vectorizable_store): Use.
19230         (vectorizable_load): Use.
19231         * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
19232         (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
19233         * config/rs6000/vsx.md: Use const0 bias predicate.
19234         * doc/md.texi: Document bias value.
19236 2022-01-13  Andrew MacLeod  <amacleod@redhat.com>
19238         PR tree-optimization/83072
19239         PR tree-optimization/83073
19240         PR tree-optimization/97909
19241         * fold-const.c (expr_not_equal_to): Use a multi-range class.
19243 2022-01-13  Andrew MacLeod  <amacleod@redhat.com>
19245         PR tree-optimization/96707
19246         * range-op.cc (operator_rshift::lhs_op1_relation): New.
19248 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
19250         * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
19251         Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
19252         (negv2qi splitters): Use lowpart_subreg instead of
19253         gen_lowpart to create subreg.
19254         (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
19255         Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
19256         (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
19257         gen_lowpart to create subreg.
19258         * config/i386/i386.md (*subqi_ext<mode>_2): Move.
19260 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
19262         PR target/104003
19263         * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
19265 2022-01-13  Martin Liska  <mliska@suse.cz>
19267         * common/config/arm/arm-common.c (arm_target_mode): Wrap
19268         keywords with %<, %> and remove trailing punctuation char.
19269         (arm_canon_arch_option_1): Likewise.
19270         (arm_asm_auto_mfpu): Likewise.
19271         * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
19272         * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
19273         (use_vfp_abi): Likewise.
19274         (aapcs_vfp_is_call_or_return_candidate): Likewise.
19275         (arm_handle_cmse_nonsecure_entry): Likewise.
19276         (arm_handle_cmse_nonsecure_call): Likewise.
19277         (thumb1_md_asm_adjust): Likewise.
19279 2022-01-13  Paul A. Clarke  <pc@us.ibm.com>
19281         * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
19282         _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
19283         _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
19284         _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
19285         _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
19286         _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
19287         (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
19288         _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
19289         macro.
19291 2022-01-13  Jakub Jelinek  <jakub@redhat.com>
19293         PR tree-optimization/103989
19294         * tree-inline.c (setup_one_parameter): Don't copy parms with
19295         empty type.
19297 2022-01-13  Thomas Schwinge  <thomas@codesourcery.com>
19299         * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
19300         'TYPE_ADDR_SPACE' for offloading.
19301         * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
19302         'TYPE_ADDR_SPACE' for offloading.
19304 2022-01-13  Julian Brown  <julian@codesourcery.com>
19305             Thomas Schwinge  <thomas@codesourcery.com>
19307         * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
19308         of...
19309         (add_async_clauses_and_wait): ...here. Call new outlined function.
19310         (decompose_kernels_region_body): Add wait at the end of
19311         explicitly-asynchronous kernels regions.
19313 2022-01-13  Thomas Schwinge  <thomas@codesourcery.com>
19315         PR middle-end/100280
19316         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
19317         Mark variables used in synthesized data clauses as addressable.
19319 2022-01-13  Martin Liska  <mliska@suse.cz>
19321         * config/epiphany/epiphany.c (epiphany_mode_priority):
19322         Use gcc_unreachable for not handled cases.
19324 2022-01-13  Martin Liska  <mliska@suse.cz>
19326         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
19327         Use %qs format specifier.
19328         (epiphany_override_options): Wrap keyword in %<, %>.
19330 2022-01-13  Haochen Jiang  <haochen.jiang@intel.com>
19332         PR target/94790
19333         * config/i386/i386.md (*xor2andn): New define_insn_and_split.
19335 2022-01-13  Xionghu Luo  <luoxhu@linux.ibm.com>
19337         * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
19339 2022-01-12  Uroš Bizjak  <ubizjak@gmail.com>
19341         PR target/100637
19342         PR target/103861
19343         * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
19344         (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
19345         when constructing vector logic RTXes.
19346         (expand_vec_perm_pshufb2): Ditto.
19347         * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
19348         (<plusminus:insn>v2qi3): Ditto.
19349         (vcond<mode><mode>): Re-enable for TARGET_SSE2.
19350         (vcondu<mode><mode>): Ditto.
19351         (vcond_mask_<mode><mode>): Ditto.
19352         (one_cmpl<VI_32:mode>2): Remove expander.
19353         (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
19354         Use VI_16_32 mode iterator.
19355         (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
19356         Use lowpart_subreg instead of gen_lowpart to create subreg.
19357         (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
19358         "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
19359         Disparage GPR alternative a bit.  Add CC clobber.
19360         (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
19361         Use lowpart_subreg instead of gen_lowpart to create subreg.
19362         (*<any_logic:code><VI_16_32:mode>3): Merge from
19363         "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
19364         using VI_16_32 mode iterator.  Disparage GPR alternative a bit.
19365         Add CC clobber.
19366         (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
19367         iterator.  Use lowpart_subreg instead of gen_lowpart to create subreg.
19369 2022-01-12  Clément Chigot  <clement.chigot@atos.net>
19371         * configure.ac: Check sizeof ino_t and dev_t.
19372         (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
19373         syscall being able to handle 64bit inodes.
19374         * config.in: Regenerate.
19375         * configure: Regenerate.
19376         * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
19377         (remove_duplicates): Use it.
19379 2022-01-12  Andrew MacLeod  <amacleod@redhat.com>
19381         PR tree-optimization/103551
19382         * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
19384 2022-01-12  Richard Biener  <rguenther@suse.de>
19386         PR tree-optimization/103990
19387         * tree-pass.h (tail_merge_optimize): Drop unused argument.
19388         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
19389         * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
19390         and adjust call to tail_merge_optimize.
19392 2022-01-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
19394         * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
19395         does not add autovectorize_vector_modes.
19397 2022-01-12  Martin Liska  <mliska@suse.cz>
19399         * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
19400         %qs where possible.
19401         (aarch64_parse_sve_width_string): Likewise.
19402         (aarch64_override_options_internal): Likewise.
19403         (aarch64_print_hint_for_extensions): Likewise.
19404         (aarch64_validate_sls_mitigation): Likewise.
19405         (aarch64_handle_attr_arch): Likewise.
19406         (aarch64_handle_attr_cpu): Likewise.
19407         (aarch64_handle_attr_tune): Likewise.
19408         (aarch64_handle_attr_isa_flags): Likewise.
19410 2022-01-12  Martin Liska  <mliska@suse.cz>
19412         * config.gcc: Include elfos.h before ${tm_file}.
19414 2022-01-12  Hans-Peter Nilsson  <hp@axis.com>
19416         * config/cris/cris.c: Quote identifiers in parameters to error
19417         and internal_error, and remove extraneous spaces with punctuation.
19418         * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
19419         expression to internal_error, pass it as a parameter instead of
19420         appending it to the format part.
19422 2022-01-12  Hans-Peter Nilsson  <hp@axis.com>
19424         * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
19425         parameter to as_a.
19427 2022-01-11  qing zhao  <qing.zhao@oracle.com>
19429         * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
19430         Change the 3rd argument of function .DEFERRED_INIT to the name of the
19431         decl.
19432         (gimplify_decl_expr): Delete the 3rd argument when call
19433         gimple_add_init_for_auto_var.
19434         * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
19435         the 3rd argument change of function .DEFERRED_INIT.
19436         * tree-cfg.c (verify_gimple_call): Update comments and verification
19437         to reflect the 3rd argument change of function .DEFERRED_INIT.
19438         * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
19439         (sra_modify_deferred_init): Change the 3rd argument of function
19440         .DEFERRED_INIT to the name of the decl.
19442 2022-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
19444         * flag-types.h (enum gfc_convert): Add flags for
19445         conversion.
19447 2022-01-11  Michael Meissner  <meissner@the-meissners.org>
19449         * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
19450         checks for only C/C++ front ends before allowing the long double
19451         format to change without a warning.
19453 2022-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19455         PR rtl-optimization/103974
19456         * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
19457         extra argument, default true, that says whether old-reload
19458         targets should be excluded.
19459         * ira-color.c (color_pass): Pass false.
19461 2022-01-11  Uroš Bizjak  <ubizjak@gmail.com>
19463         PR target/103861
19464         * config/i386/mmx.md (vcond<mode><mode>):
19465         Use VI_16_32 mode iterator.  Enable for TARGET_SSE4_1.
19466         (vcondu<mode><mode>): Ditto.
19467         (vcond_mask_<mode><mode>): Ditto.
19468         (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
19469         (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
19470         Use VI_16_32 mode iterator.
19471         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
19472         Update for rename.  Handle V2QImode.
19473         (expand_vec_perm_blend): Update for rename.
19475 2022-01-11  Jakub Jelinek  <jakub@redhat.com>
19477         PR c++/101597
19478         * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
19480 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
19482         PR middle-end/70090
19483         * tree-object-size.c (size_valid_p): New function.
19484         (size_for_offset): Remove OFFSET constness assertion.
19485         (addr_object_size): Build dynamic expressions for object
19486         sizes and use size_valid_p to decide if it is valid for the
19487         given OBJECT_SIZE_TYPE.
19488         (compute_builtin_object_size): Allow dynamic offsets when
19489         computing size at O0.
19490         (call_object_size): Call size_valid_p.
19491         (plus_stmt_object_size): Allow non-constant offset and use
19492         size_valid_p to decide if it is valid for the given
19493         OBJECT_SIZE_TYPE.
19495 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
19497         PR middle-end/70090
19498         * tree-object-size.c (alloc_object_size): Make and return
19499         non-constant size expression.
19500         (call_object_size): Return expression or unknown based on
19501         whether dynamic object size is requested.
19503 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
19505         PR middle-end/70090
19506         * tree-object-size.c: Include tree-dfa.h.
19507         (parm_object_size): New function.
19508         (collect_object_sizes_for): Call it.
19510 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
19512         PR middle-end/70090
19513         * builtins.c (fold_builtin_object_size): Adjust for dynamic size
19514         expressions.
19515         * tree-object-size.c: Include gimplify-me.h.
19516         (struct object_size_info): New member UNKNOWNS.
19517         (size_initval_p, size_usable_p, object_sizes_get_raw): New
19518         functions.
19519         (object_sizes_get): Return suitable gimple variable for
19520         object size.
19521         (bundle_sizes): New function.
19522         (object_sizes_set): Use it and handle dynamic object size
19523         expressions.
19524         (object_sizes_set_temp): New function.
19525         (size_for_offset): Adjust for dynamic size expressions.
19526         (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
19527         New functions.
19528         (compute_builtin_object_size): Call gimplify_size_expressions
19529         for OST_DYNAMIC.
19530         (dynamic_object_size): New function.
19531         (cond_expr_object_size): Use it.
19532         (phi_dynamic_object_size): New function.
19533         (collect_object_sizes_for): Call it for OST_DYNAMIC.  Adjust to
19534         accommodate dynamic object sizes.
19536 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
19537             Jakub Jelinek  <jakub@redhat.com>
19539         PR tree-optimization/103961
19540         * tree-object-size.c (plus_stmt_object_size): Always avoid
19541         computing offset for -1 size.
19543 2022-01-11  Andrew MacLeod  <amacleod@redhat.com>
19545         PR tree-optimization/103821
19546         * range-op.cc (range_operator::fold_range): Only do precise ranges
19547         when there are not too many subranges.
19549 2022-01-11  Richard Sandiford  <richard.sandiford@arm.com>
19551         * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
19552         definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
19554 2022-01-11  Roger Sayle  <roger@nextmovesoftware.com>
19555             Richard Biener  <rguenther@suse.de>
19557         * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
19558         highpart_mults_inserted field.
19559         (convert_mult_to_highpart): New function to convert right shift
19560         of a widening multiply into a MULT_HIGHPART_EXPR.
19561         (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
19562         Call new convert_mult_to_highpart function.
19563         (pass_optimize_widening_mul::execute): Add a statistics counter
19564         for tracking "highpart multiplications inserted" events.
19566 2022-01-11  Xionghu Luo  <luoxhu@linux.ibm.com>
19568         PR target/102239
19569         * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
19570         declare.
19571         * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
19572         function.
19573         * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
19575 2022-01-11  Olivier Hainque  <hainque@adacore.com>
19577         * gcc.c (driver_handle_option): State --sysroot as
19578         validated.
19580 2022-01-11  Kewen Lin  <linkw@linux.ibm.com>
19582         * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
19583         useless related to option -mno-power10.
19585 2022-01-11  Haochen Jiang  <haochen.jiang@intel.com>
19587         PR target/53652
19588         * config/i386/sse.md (*andnot<mode>3): Extend predicate of
19589         operands[1] from register_operand to vector_operand.
19591 2022-01-10  Uroš Bizjak  <ubizjak@gmail.com>
19593         PR target/103861
19594         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
19595         Handle V2QImode.
19596         * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
19597         Use VI1_16_32 mode iterator.
19598         (*eq<mode>3): Ditto.
19599         (*gt<mode>3): Ditto.
19600         (*xop_maskcmp<mode>3): Ditto.
19601         (*xop_maskcmp_uns<mode>3): Ditto.
19602         (vec_cmp<mode><mode>): Ditto.
19603         (vec_cmpu<mode><mode>): Ditto.
19605 2022-01-10  Richard Biener  <rguenther@suse.de>
19607         PR tree-optimization/103948
19608         * tree-vect-generic.c (expand_vector_condition): Return true if
19609         all ones vector is returned for true, all zeros vector for false
19610         and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
19612 2022-01-10  Paul A. Clarke  <pc@us.ibm.com>
19614         * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
19615         when _ARCH_PWR10. Use signed types.
19616         (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
19617         (_mm_blendv_pd): Likewise.
19619 2022-01-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
19621         * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
19622         epilogue costing.
19623         * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
19624         epilogues, unless we are guaranteed that we can't have partial vectors.
19625         * genopinit.c: (partial_vectors_supported): Generate new function.
19627 2022-01-10  Jakub Jelinek  <jakub@redhat.com>
19629         PR target/102024
19630         * config/i386/i386.c (classify_argument): Add zero_width_bitfields
19631         argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
19632         always ignore them, when seeing other zero sized bitfields, either
19633         set zero_width_bitfields to 1 and ignore it or if equal to 2 process
19634         it.  Pass it to recursive calls.  Add wrapper
19635         with old arguments and diagnose ABI differences for C structures
19636         with zero width bitfields.  Formatting fixes.
19638 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
19640         PR rtl-optimization/98782
19641         * ira-int.h (ira_soft_conflict): Declare.
19642         * ira-color.c (max_soft_conflict_loop_depth): New constant.
19643         (ira_soft_conflict): New function.
19644         (spill_soft_conflicts): Likewise.
19645         (assign_hard_reg): Use them to handle the case described by
19646         the comment above ira_soft_conflict.
19647         (improve_allocation): Likewise.
19648         * ira.c (check_allocation): Allow allocnos with "soft" conflicts
19649         to share the same register.
19651 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
19653         PR rtl-optimization/98782
19654         * ira-int.h (ira_caller_save_cost): New function.
19655         (ira_caller_save_loop_spill_p): Likewise.
19656         * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
19657         cheaper to spill a call-clobbered register throughout a loop rather
19658         than spill it around each individual call.  If so, treat all
19659         call-clobbered registers as conflicts and...
19660         (propagate_allocno_info): ...do not propagate call information
19661         from the child to the parent.
19662         * ira-color.c (move_spill_restore): Update accordingly.
19663         * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
19665 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
19667         PR rtl-optimization/98782
19668         * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
19669         (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
19670         (ira_single_region_allocno_p): New function.
19671         (ira_total_conflict_hard_regs): Likewise.
19672         * ira-build.c (ira_create_allocno): Initialize
19673         ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
19674         (ira_propagate_hard_reg_costs): New function.
19675         (propagate_allocno_info): Use it.  Try to avoid propagating
19676         hard register conflicts to parent allocnos if we can handle
19677         the conflicts by spilling instead.  Limit the propagated
19678         register costs to the cost of spilling throughout the child loop.
19679         * ira-color.c (color_pass): Use ira_single_region_allocno_p to
19680         test whether a child and parent allocno can share the same
19681         register.
19682         (move_spill_restore): Adjust for the new behavior of
19683         propagate_allocno_info.
19685 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
19687         PR rtl-optimization/98782
19688         * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
19689         extracted from...
19690         * ira-color.c (color_pass): ...here.
19692 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
19694         PR rtl-optimization/98782
19695         * ira-color.c (color_pass): Add comments to describe the spill costs.
19696         (move_spill_restore): Likewise.  Fix reversed calculation.
19698 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
19700         PR rtl-optimization/98782
19701         * ira-int.h (ira_loop_border_costs): New class.
19702         * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
19703         New constructor.
19704         (calculate_allocno_spill_cost): Use ira_loop_border_costs.
19705         (color_pass): Likewise.
19706         (move_spill_restore): Likewise.
19708 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
19710         PR target/103465
19711         * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
19713 2022-01-10  Richard Biener  <rguenther@suse.de>
19715         PR tree-optimization/100359
19716         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
19717         Allow non-growing peeling with !allow_peel and UL_ALL.
19719 2022-01-08  Roger Sayle  <roger@nextmovesoftware.com>
19721         * config/i386/i386-expand.c (ix86_expand_vector_move): Add
19722         special case for TImode to V1TImode moves, going via V2DImode.
19724 2022-01-08  Jakub Jelinek  <jakub@redhat.com>
19726         PR c++/89074
19727         * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
19728         simplification.
19730 2022-01-08  David Malcolm  <dmalcolm@redhat.com>
19732         * doc/analyzer.texi
19733         (Special Functions for Debugging the Analyzer): Document
19734         __analyzer_dump_escaped.
19736 2022-01-08  David Malcolm  <dmalcolm@redhat.com>
19738         * doc/analyzer.texi (Other Debugging Techniques): Document
19739         region::is_named_decl_p.
19741 2022-01-07  Andrew Pinski  <apinski@marvell.com>
19743         PR target/102941
19744         * config/arm/aarch-common.c (arm_md_asm_adjust):
19745         Use a temp if !REG_P.
19747 2022-01-07  Uroš Bizjak  <ubizjak@gmail.com>
19749         * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
19750         (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
19752 2022-01-07  liuhongt  <hongtao.liu@intel.com>
19754         PR rtl-optimization/103750
19755         * fwprop.c (forward_propagate_into): Allow propagations from
19756         inner loop to outer loop.
19758 2022-01-07  Roger Sayle  <roger@nextmovesoftware.com>
19760         * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
19762 2022-01-07  Haochen Gui  <guihaoc@gcc.gnu.org>
19764         * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
19765         (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
19766         Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
19768 2022-01-07  liuhongt  <hongtao.liu@intel.com>
19770         * config/i386/sse.md
19771         (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
19772         UNSPEC_PCMP_UNSIGNED.
19774 2022-01-07  liuhongt  <hongtao.liu@intel.com>
19776         PR target/103753
19777         * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
19778         gen_avx2_pblendph_1 when elt == 0.
19779         * config/i386/sse.md (avx2_pblendph): Rename to ..
19780         (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
19781         (*avx2_pblendw): Rename to ..
19782         (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
19783         (avx2_pblendw): Rename to ..
19784         (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
19785         (blendsuf): Removed.
19786         (sse4_1_pblend<blendsuf>): Renamed to ..
19787         (sse4_1_pblend<ssemodesuffix>): .. this.
19789 2022-01-06  H.J. Lu  <hjl.tools@gmail.com>
19791         PR target/103925
19792         * config/i386/i386.c (ix86_output_indirect_function_return):
19793         Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
19795 2022-01-06  H.J. Lu  <hjl.tools@gmail.com>
19797         PR target/102952
19798         * config/i386/i386-opts.h (harden_sls): Replace
19799         harden_sls_indirect_branch with harden_sls_indirect_jmp.
19800         * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
19801         Likewise.
19802         (ix86_output_indirect_jmp): Likewise.
19803         (ix86_output_call_insn): Likewise.
19804         * config/i386/i386.opt: Replace indirect-branch with
19805         indirect-jmp.  Replace harden_sls_indirect_branch with
19806         harden_sls_indirect_jmp.
19807         * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
19808         indirect-jmp.
19810 2022-01-06  Uroš Bizjak  <ubizjak@gmail.com>
19812         * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
19813         Add %q modifier for operands in general registers.
19814         <MODE_SI>: Add %q modifier for operands in general registers.
19815         * config/i386/i386.md (*movhi_internal): Change type attribute of
19816         xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
19817         to SImode for non-avx512fp16 targets.
19818         (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
19819         * config/i386/mmx.md (*movv2qi_internal):
19820         Ditto for xmm-gpr interunit alternatives 8,9.
19822 2022-01-06  Kito Cheng  <kito.cheng@sifive.com>
19824         * common/config/riscv/riscv-common.c (riscv_implied_info): Add
19825         vector extensions.
19826         (riscv_ext_version_table): Add version info for vector extensions.
19827         (riscv_ext_flag_table): Add option mask for vector extensions.
19828         * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
19829         (MASK_VECTOR_EEW_64): New.
19830         (MASK_VECTOR_EEW_FP_32): New.
19831         (MASK_VECTOR_EEW_FP_64): New.
19832         (MASK_ZVL32B): New.
19833         (MASK_ZVL64B): New.
19834         (MASK_ZVL128B): New.
19835         (MASK_ZVL256B): New.
19836         (MASK_ZVL512B): New.
19837         (MASK_ZVL1024B): New.
19838         (MASK_ZVL2048B): New.
19839         (MASK_ZVL4096B): New.
19840         (MASK_ZVL8192B): New.
19841         (MASK_ZVL16384B): New.
19842         (MASK_ZVL32768B): New.
19843         (MASK_ZVL65536B): New.
19844         (TARGET_ZVL32B): New.
19845         (TARGET_ZVL64B): New.
19846         (TARGET_ZVL128B): New.
19847         (TARGET_ZVL256B): New.
19848         (TARGET_ZVL512B): New.
19849         (TARGET_ZVL1024B): New.
19850         (TARGET_ZVL2048B): New.
19851         (TARGET_ZVL4096B): New.
19852         (TARGET_ZVL8192B): New.
19853         (TARGET_ZVL16384B): New.
19854         (TARGET_ZVL32768B): New.
19855         (TARGET_ZVL65536B): New.
19856         * config/riscv/riscv.opt (Mask(VECTOR)): New.
19857         (riscv_vector_eew_flags): New.
19858         (riscv_zvl_flags): New.
19860 2022-01-06  Kito Cheng  <kito.cheng@sifive.com>
19862         * common/config/riscv/riscv-common.c
19863         (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
19864         digit.
19866 2022-01-06  Jakub Jelinek  <jakub@redhat.com>
19868         PR tree-optimization/103899
19869         * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
19870         warning by moving context variable to the only spot where it is used
19871         and moving gcc_assert into if body.
19873 2022-01-06  Jakub Jelinek  <jakub@redhat.com>
19875         PR rtl-optimization/103908
19876         * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
19877         asm goto.
19879 2022-01-05  Bill Schmidt  <wschmidt@linux.ibm.com>
19881         PR target/103622
19882         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19883         Skip over instances with undefined function types.
19885 2022-01-05  Andrew Pinski  <apinski@marvell.com>
19887         PR target/103910
19888         * config/i386/i386.h (x86_mfence): Mark with GTY.
19890 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
19892         PR target/103861
19893         * config/i386/mmx.md (VI_16_32): New mode iterator.
19894         (VI1_16_32): Ditto.
19895         (mmxvecsize): Handle V2QI mode.
19896         (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
19897         Use VI1_16_32 mode iterator.
19898         (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
19899         Use VI1_16_32 mode iterator.
19900         (abs<mode>2): Use VI_16_32 mode iterator.
19901         (uavgv2qi3_ceil): New insn pattern.
19903 2022-01-05  Martin Sebor  <msebor@redhat.com>
19905         * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
19906         %qs to avoid -Wformat-diag.
19908 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
19910         PR target/103915
19911         * config/i386/mmx.md (one_cmplv2qi2): Change
19912         alternatives 1,2 type from sselog to sselog1.
19914 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
19916         PR target/103905
19917         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
19918         narrow mode remapped elements for !one_operand_p case.
19920 2022-01-05  Richard Biener  <rguenther@suse.de>
19922         PR tree-optimization/103816
19923         * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
19924         check DR_GROUP_GAP compute for overflow and representability.
19926 2022-01-05  Jakub Jelinek  <jakub@redhat.com>
19928         PR fortran/103691
19929         * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
19930         for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
19931         it can do unwanted rhs folding like &a[0] into &2.0 etc.
19933 2022-01-05  Kewen Lin  <linkw@linux.ibm.com>
19935         PR ipa/102059
19936         * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
19937         (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
19938         (rs6000_need_ipa_fn_target_info): New function.
19939         (rs6000_update_ipa_fn_target_info): Likewise.
19940         (rs6000_can_inline_p): Adjust for ipa function summary target info.
19941         * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
19942         * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
19943         summary target info.
19944         (analyze_function_body): Adjust for ipa function summary target info
19945         and call hook rs6000_need_ipa_fn_target_info and
19946         rs6000_update_ipa_fn_target_info.
19947         (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
19948         target info.
19949         (inline_read_section): Likewise.
19950         (ipa_fn_summary_write): Likewise.
19951         * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
19952         * doc/tm.texi: Regenerate.
19953         * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
19954         (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
19955         * target.def (update_ipa_fn_target_info): New hook.
19956         (need_ipa_fn_target_info): Likewise.
19957         * targhooks.c (default_need_ipa_fn_target_info): New function.
19958         (default_update_ipa_fn_target_info): Likewise.
19959         * targhooks.h (default_update_ipa_fn_target_info): New declare.
19960         (default_need_ipa_fn_target_info): Likewise.
19962 2022-01-04  Martin Sebor  <msebor@redhat.com>
19964         PR middle-end/99612
19965         * builtins.c (get_memmodel): Move warning code to
19966         gimple-ssa-warn-access.cc.
19967         (expand_builtin_atomic_compare_exchange): Same.
19968         (expand_ifn_atomic_compare_exchange): Same.
19969         (expand_builtin_atomic_load): Same.
19970         (expand_builtin_atomic_store): Same.
19971         (expand_builtin_atomic_clear): Same.
19972         * doc/extend.texi (__atomic_exchange_n): Update valid memory
19973         models.
19974         * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
19975         (struct memmodel_pair): New struct.
19976         (memmodel_name): New function.
19977         (pass_waccess::maybe_warn_memmodel): New function.
19978         (pass_waccess::check_atomic_memmodel): New function.
19979         (pass_waccess::check_atomic_builtin): Handle memory model.
19980         * input.c (expansion_point_location_if_in_system_header): Return
19981         original location if expansion location is in a system header.
19983 2022-01-04  Uroš Bizjak  <ubizjak@gmail.com>
19985         PR target/103861
19986         * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
19987         (one_cmplv2qi3 splitters): New post-reload splitters.
19988         (*andnotv2qi3): New insn pattern.
19989         (andnotv2qi3 splitters): New post-reload splitters.
19990         (<any_logic:code>v2qi3): New insn pattern.
19991         (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
19993 2022-01-04  Richard Biener  <rguenther@suse.de>
19995         PR tree-optimization/103800
19996         * tree-vect-loop.c (vectorizable_phi): Remove assert and
19997         expand comment.
19999 2022-01-04  Richard Biener  <rguenther@suse.de>
20001         PR tree-optimization/103690
20002         * tree-pass.h (tail_merge_optimize): Adjust.
20003         * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
20004         to re-split critical edges, move CFG cleanup ...
20005         * tree-ssa-pre.c (pass_pre::execute): ... here, before
20006         simple_dce_from_worklist and delay freeing inserted_exprs from
20007         ...
20008         (fini_pre): .. here.
20010 2022-01-04  Roger Sayle  <roger@nextmovesoftware.com>
20012         * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
20013         * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
20014         (setcc_from_bi): Remove SImode specific pattern.
20015         (setcc<mode>_from_bi): Provide more general HSDIM pattern.
20016         (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
20017         for sign- and zero-extending BImode predicates to integers.
20018         (setcc_int<mode>): Remove previous (-1-based) instructions.
20019         (cstorebi4): Remove BImode to SImode specific expander.
20020         (cstore<mode>4): Fix indentation.  Expand using setccsi_from_bi.
20021         (cstore<mode>4): For both integer and floating point modes.
20023 2022-01-04  Olivier Hainque  <hainque@adacore.com>
20025         * gcc.c (driver_handle_option): do_save --sysroot.
20027 2022-01-04  Richard Biener  <rguenther@suse.de>
20029         PR tree-optimization/103864
20030         PR tree-optimization/103544
20031         * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
20032         reductions wrapped in conversions from SLP handling.
20033         (vect_analyze_slp): Revert PR103544 change.
20035 2022-01-04  Jakub Jelinek  <jakub@redhat.com>
20037         PR rtl-optimization/103860
20038         * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
20039         uselessly for blocks for which it has been called already.
20041 2022-01-04  Cui,Lili  <lili.cui@intel.com>
20043         * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
20044         to Alderlake and Rocketlake.
20046 2022-01-04  Chung-Lin Tang  <cltang@codesourcery.com>
20048         PR middle-end/103643
20049         * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
20050         OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
20052 2022-01-04  liuhongt  <hongtao.liu@intel.com>
20054         PR target/103895
20055         * config/i386/sse.md (*bit_and_float_vector_all_ones):
20056         Force_reg operand 1 to avoid ICE.
20058 2022-01-04  Jason Merrill  <jason@redhat.com>
20060         * tree-pretty-print.c (do_niy): Add spc parameter.
20061         (NIY): Pass it.
20062         (print_call_name): Add spc local variable.
20064 2022-01-03  Uroš Bizjak  <ubizjak@gmail.com>
20066         PR target/103894
20067         * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
20068         (mov<V_32:mode>_internal): Ditto.
20069         (*push<V_32:mode>_rex64): Ditto.
20070         (movmisalign<V_32:mode>): Ditto.
20071         (*push<V_32:mode>_rex64 splitter): Enable for
20072         TARGET_64BIT && TARGET_SSE.
20073         (*push<V_32:mode>2): Remove insn pattern.
20075 2022-01-03  Andrew Pinski  <apinski@marvell.com>
20077         PR c/33193
20078         * doc/extend.texi: Extend the documentation about Complex
20079         types for casting and also rewrite the __real__/__imag__
20080         expression portion to use tables.
20081         Move __builtin_complex to the Complex type section.
20083 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
20085         PR target/98737
20086         * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
20087         ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
20088         New internal fns.
20089         * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
20090         ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
20091         ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
20092         * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
20093         expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
20094         expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
20095         functions.
20096         * optabs.def (atomic_add_fetch_cmp_0_optab,
20097         atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
20098         atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
20099         direct optabs.
20100         * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
20101         * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
20102         * tree-ssa-ccp.c: Include internal-fn.h.
20103         (optimize_atomic_bit_test_and): Add . before internal fn call
20104         in function comment.  Change return type from void to bool and
20105         return true only if successfully replaced.
20106         (optimize_atomic_op_fetch_cmp_0): New function.
20107         (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
20108         for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
20109         BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
20110         for *XOR* ones only if optimize_atomic_bit_test_and failed.
20111         * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
20112         atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
20113         (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
20114         atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
20115         * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
20116         atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
20117         atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
20118         new named patterns.
20120 2022-01-03  Richard Biener  <rguenther@suse.de>
20122         PR middle-end/103851
20123         * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
20125 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
20127         PR c++/94716
20128         * symtab.c: Include fold-const.h.
20129         (symtab_node::equal_address_to): If folding_initializer is true,
20130         handle it like memory_accessed.  Simplify.
20132 2022-01-03  Martin Liska  <mliska@suse.cz>
20134         * doc/extend.texi: Use ; for function declarations.
20136 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
20138         PR c++/103600
20139         * symtab.c (symtab_node::equal_address_to): Return 0 if one of
20140         VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
20142 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
20144         * gcc.c (process_command): Update copyright notice dates.
20145         * gcov-dump.c (print_version): Ditto.
20146         * gcov.c (print_version): Ditto.
20147         * gcov-tool.c (print_version): Ditto.
20148         * gengtype.c (create_file): Ditto.
20149         * doc/cpp.texi: Bump @copying's copyright year.
20150         * doc/cppinternals.texi: Ditto.
20151         * doc/gcc.texi: Ditto.
20152         * doc/gccint.texi: Ditto.
20153         * doc/gcov.texi: Ditto.
20154         * doc/install.texi: Ditto.
20155         * doc/invoke.texi: Ditto.
20157 2022-01-02  Uroš Bizjak  <ubizjak@gmail.com>
20159         PR target/103861
20160         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
20161         (VALID_INT_MODE_P): Ditto.
20162         * config/i386/i386.c (ix86_secondary_reload): Handle
20163         V2QImode reloads from SSE register to memory.
20164         (vector_mode_supported_p): Always return true for V2QImode.
20165         * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
20166         (*negqi_ext<mode>_2): Ditto.
20167         * config/i386/mmx.md (movv2qi): New expander.
20168         (movmisalignv2qi): Ditto.
20169         (*movv2qi_internal): New insn pattern.
20170         (*pushv2qi2): Ditto.
20171         (negv2qi2 and splitters): Ditto.
20172         (<plusminus:insn>v2qi3 and splitters): Ditto.
20174 2022-01-02  John David Anglin  <danglin@gcc.gnu.org>
20176         * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
20177         sync_lock_test_and_set libfunc. Call convert_memory_address to
20178         convert memory address to Pmode.
20179         (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
20182 Copyright (C) 2022 Free Software Foundation, Inc.
20184 Copying and distribution of this file, with or without modification,
20185 are permitted in any medium without royalty provided the copyright
20186 notice and this notice are preserved.