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.
21 (foperator_lt::op1_range): Avoid adjustments to range if build_*
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
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
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
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>
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
121 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
124 * value-range.h (frange::supports_p): Disable decimal floats.
125 * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
127 (frange_drop_ninf): Same.
129 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
132 * value-range.cc (frange::set_nan): Set undefined when updating a
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
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
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
211 2022-09-05 Martin Liska <mliska@suse.cz>
213 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
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>
390 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
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
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
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
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
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>
496 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
498 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
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
510 * config/arm/arm-protos.h (arm_d_target_versions): Move to
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
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.
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
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
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
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.
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.
801 * xcoffout.cc: Removed.
802 * xcoffout.h: Removed.
804 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
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):
812 2022-09-01 Tamar Christina <tamar.christina@arm.com>
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>
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.
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.
845 (frange::set_varying): Same.
847 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
849 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
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
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>
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
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
922 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
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>
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
944 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
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
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.
964 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
966 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
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
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
1020 (frange_storage_slot::get_frange): Restore endpoints.
1021 * value-range-storage.h (class frange_storage_slot): Add endpoint
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
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
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
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
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
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
1180 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
1182 * value-range-storage.cc (frange_storage_slot::get_frange): Use
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.
1188 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
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.
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.
1259 (range_tests_nan): New.
1260 (range_tests_signed_zeros): New.
1261 (range_tests_floats): 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
1276 2022-08-30 Martin Liska <mliska@suse.cz>
1278 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
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()):
1301 * gimple-predicate-analysis.cc
1302 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
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
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>
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
1336 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
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):
1367 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
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
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
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.
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>
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>
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
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
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
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
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):
1538 (compute_control_dep_chain): Adjust to honor marked region
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>
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>
1594 * config/s390/predicates.md (subreg_register_operand): New
1596 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
1598 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
1599 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
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
1640 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
1643 * config/loongarch/loongarch.cc (loongarch_build_integer):
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>
1656 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
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>
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
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):
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):
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.
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.
1758 (optab, insn): Likewise.
1759 * config/riscv/iterators.md: New file.
1761 2022-08-24 Andrew Pinski <apinski@marvell.com>
1764 * config/riscv/bitmanip.md (bswaphi2): New pattern.
1766 2022-08-24 Andrew Pinski <apinski@marvell.com>
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>
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>
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
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
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>
1860 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
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
1881 2022-08-23 Richard Biener <rguenther@suse.de>
1883 * gimple-predicate-analysis.cc (is_loop_exit): Split out
1885 (is_non_loop_exit_postdominating): ... here. Remove after
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
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>
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
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
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
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>
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
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>
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
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
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
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
2051 2022-08-18 Tim Lange <mail@tim-lange.me>
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
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
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
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
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
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
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.
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
2115 2022-08-18 konglin1 <lingling.kong@intel.com>
2117 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
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.
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.
2144 (VF_AVX512HFBF16): Ditto.
2145 (VF_AVX512BWHFBF16): Ditto.
2148 (VIHFBF_256): Ditto.
2149 (VIHFBF_AVX512BW): Ditto.
2150 (VI2F_256_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.
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
2184 (*vec_extract<mode>): New define_insn.
2185 (VEC_EXTRACT_MODE): Add BF vector modes.
2186 (PINSR_MODE): Add V8BF.
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
2197 (avx2_pbroadcast<mode>_1): Ditto.
2198 (<avx512>_vec_dup<mode>_1): Ditto.
2199 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
2202 2022-08-18 Martin Liska <mliska@suse.cz>
2204 * configure: Regenerate.
2206 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
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
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
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>
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
2292 * value-relation.cc (path_oracle::reset_path): Set root oracle.
2293 * value-relation.h (path_oracle::reset_path): Add root oracle
2296 2022-08-17 Marek Polacek <polacek@redhat.com>
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>
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>
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
2337 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
2339 * config.gcc (arm): Define with_float to hard if target name ends
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
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
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>
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
2385 (riscv_ext_version_table): Ditto.
2386 (riscv_ext_flag_table): Ditto.
2387 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
2389 (TARGET_ZFHMIN): Ditto.
2390 (TARGET_ZFH): Ditto.
2391 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
2393 (riscv_emit_float_compare): Handle HFmode.
2394 * config/riscv/riscv.md (ANYF): Add HF.
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.
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>
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
2462 2022-08-16 Martin Liska <mliska@suse.cz>
2464 * value-range-storage.h (class obstack_vrange_allocator): Mark
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
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>
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
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.
2600 (HFBF): Add new define_mode_iterator.
2601 (*pushhf_rex64): Change for BFmode.
2602 (*push<mode>_rex64): Ditto.
2604 (*push<mode>): 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
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>
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>
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
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):
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
2724 2022-08-10 Martin Liska <mliska@suse.cz>
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
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
2770 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
2771 define_insn_and_split that recognizes UNSPEC_PTEST of identical
2774 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
2775 Richard Biener <rguenther@suse.de>
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
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>
2865 * dwarf2out.cc (dwarf2out_register_external_die): Restore
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>
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
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
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
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
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
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>
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
3063 (tree_lower_bound): New.
3064 (tree_upper_bound): New.
3065 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
3067 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
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
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
3098 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
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
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
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
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>
3143 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
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
3158 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
3159 Uroš Bizjak <ubizjak@gmail.com>
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
3166 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
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>
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
3181 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
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
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
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>
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>
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
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
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
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
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
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
3371 2022-07-27 Jakub Jelinek <jakub@redhat.com>
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>
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
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
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
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
3665 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
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
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
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'
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
3730 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
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
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
3755 * range-op-float.cc: New file.
3757 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
3758 Uroš Bizjak <ubizjak@gmail.com>
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
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
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.
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>
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
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.
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>
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
3895 (scalar_chain::convert): Call convert_insn_common before calling
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
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
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
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>
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
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
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>
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
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>
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>
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
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
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
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>
4213 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
4215 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
4216 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
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):
4222 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
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
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>
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
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>
4295 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
4296 false if callee has indirect_return attribute and caller
4299 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
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>
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):
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>
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
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
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>
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):
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
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>
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
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
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
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
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
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
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
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
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>
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
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
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
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>
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
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
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>
4877 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
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
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
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' ->
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
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
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):
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
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
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>
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
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.
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):
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):
5143 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
5145 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
5146 (tree_unswitch_outer_loop): Do not rewrite virtuals into
5148 * tree-parloops.cc (transform_to_exit_first_loop_alt):
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
5159 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
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
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>
5188 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
5190 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
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
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
5214 * value-range-storage.h (class vrange_allocator): Move from
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>
5252 * doc/invoke.texi: Added Wanalyzer-allocation-size.
5254 2022-07-02 Immad Mir <mirimmad17@gmail.com>
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
5278 (update_ssa): Do not initialize it.
5279 (pass_build_ssa::execute): Set interesting_blocks to NULL
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>
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
5358 2022-07-01 Martin Liska <mliska@suse.cz>
5360 PR tree-optimization/106126
5361 * gimple-if-to-switch.cc (struct condition_info): Save
5363 (find_conditions): Parse all BBs.
5364 (pass_if_to_switch::execute): Allow only side effects for first
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>
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
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
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
5412 * domwalk.cc (dom_walker::dom_walker): Recognize -1
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
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>
5432 * config/i386/sse.md: Fix asm generation.
5434 2022-06-29 Sergei Trofimovich <siarheit@google.com>
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>
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
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>
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
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,
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
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.
5590 * df-core.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.
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.
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.
5720 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
5722 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
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
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
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
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
5835 2022-06-24 Jason Merrill <jason@redhat.com>
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
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
5875 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
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):
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>
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
5962 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
5963 Uroš Bizjak <ubizjak@gmail.com>
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
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>
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>
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
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
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>
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)
6056 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
6058 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
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>
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
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>
6114 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
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>
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
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
6191 * config/riscv/riscv-ftypes.def (0): Remove unused.
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
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
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
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
6275 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
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>
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>
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
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>
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
6379 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
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>
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):
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
6453 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
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>
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
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
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>
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>
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
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
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>
6584 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
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>
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
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):
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
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"
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):
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
6695 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
6697 * config/riscv/riscv.md (length): Remove the explicit setting
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>
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
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>
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>
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
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>
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
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
6818 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6820 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
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
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
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
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
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>
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
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>
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>
6968 * config/i386/i386.md (*movsi_internal): Change alternative
6970 (*movdi_internal): Ditto.
6971 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
6973 (*vec_extractv4sf_mem): Ditto.
6974 (*vec_extracthf): Ditto.
6976 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
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>
6991 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
6994 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
6996 PR middle-end/105853
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>
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.
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):
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
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>
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)
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
7078 2022-06-04 Jakub Jelinek <jakub@redhat.com>
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>
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
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.
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
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
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):
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.
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
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
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
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)
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>
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>
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
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
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>
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
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
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
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>
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):
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.
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
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):
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
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.
7735 * value-range.h (enum value_range_discriminator): New.
7736 (class vrange): New.
7737 (class unsupported_range): New.
7738 (struct vrange_traits): 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
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>
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()
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>
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>
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
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>
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>
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>
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):
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>
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
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.
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
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
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
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>
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
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.
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
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
8235 (RISCV_ATYPE_SI): New.
8236 (RISCV_ATYPE_DI): New.
8237 * config/riscv/riscv-ftypes.def (0): 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.
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.
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>
8281 2022-05-24 Martin Liska <mliska@suse.cz>
8283 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
8286 2022-05-24 Martin Liska <mliska@suse.cz>
8288 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
8291 2022-05-24 Bruno Haible <bruno@clisp.org>
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
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
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>
8318 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
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>
8341 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
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
8349 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
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
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
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
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):
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
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>
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.
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
8597 (movdf_aarch64): Use DFD iterator and rename into
8599 (movtf_aarch64): Use TFD iterator and rename into
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>
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>
8657 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
8658 global vars without symtab node even when they have DECL_RTL
8661 2022-05-19 Jakub Jelinek <jakub@redhat.com>
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>
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):
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
8711 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
8714 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
8716 2022-05-18 liuhongt <hongtao.liu@intel.com>
8719 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
8722 2022-05-18 liuhongt <hongtao.liu@intel.com>
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>
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>
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>
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
8812 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
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
8840 * system.h: Advise to call 'internal_error' instead of 'abort' or
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
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>
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>
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>
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>
8905 * attribs.cc (decl_attributes): Fix broken typedefs here.
8907 2022-05-16 David Malcolm <dmalcolm@redhat.com>
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
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.
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>
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>
9068 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
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_*
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
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
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
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>
9184 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
9186 (*movmisalign<mode>_mve_load): Likewise.
9187 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
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
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
9215 2022-05-13 Richard Biener <rguenther@suse.de>
9217 * gimple-fold.cc (gimple_build): Adjust for new
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
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>
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
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>
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>
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>
9394 * opts.cc (finish_options): Also disable var-tracking if
9395 !DWARF2_DEBUGGING_INFO.
9397 2022-05-11 liuhongt <hongtao.liu@intel.com>
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>
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>
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
9440 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
9442 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
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
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 *
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.
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,
9506 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
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>
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>
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>
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>
9563 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
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
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>
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>
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):
9662 2022-05-05 Martin Liska <mliska@suse.cz>
9664 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
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
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
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):
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
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>
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>
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>
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
9829 2022-05-02 Jakub Jelinek <jakub@redhat.com>
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>
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>
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
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
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
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
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
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
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
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
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
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
10103 2022-04-28 David Malcolm <dmalcolm@redhat.com>
10105 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
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
10114 2022-04-28 Jakub Jelinek <jakub@redhat.com>
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>
10124 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
10125 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
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>
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
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
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>
10177 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
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>
10195 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
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>
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>
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>
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>
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>
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>
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
10306 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
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
10325 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
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
10341 * configure: Regenerate.
10343 2022-04-21 Jakub Jelinek <jakub@redhat.com>
10346 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
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>
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>
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>
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>
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
10432 (ctf_preprocess): Defer updating the number of global objts
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
10446 2022-04-14 Jakub Jelinek <jakub@redhat.com>
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):
10462 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
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>
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>
10497 * attribs.cc (decl_attributes): Don't set
10498 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
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>
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>
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>
10542 * toplev.cc: Call the new function tree_cc_finalize in
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>
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>
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>
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>
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>
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):
10616 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
10618 2022-04-12 Jakub Jelinek <jakub@redhat.com>
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
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>
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>
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>
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>
10706 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
10709 2022-04-11 Jason Merrill <jason@redhat.com>
10712 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
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
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>
10730 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
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>
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
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>
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
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>
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
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):
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>
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
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
10855 2022-04-07 liuhongt <hongtao.liu@intel.com>
10857 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
10859 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
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
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>
10887 * config/sh/sh.opt (mdiv=): Add Save.
10889 2022-04-06 Martin Liska <mliska@suse.cz>
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
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
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
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>
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
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>
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>
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>
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):
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>
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
11048 2022-04-05 Richard Biener <rguenther@suse.de>
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>
11057 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
11059 (ix86_reorg): Call ix86_split_stlf_stall_load.
11060 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
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>
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>
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>
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>
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
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
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>
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>
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>
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
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>
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
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,
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
11215 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
11218 2022-03-31 Martin Jambor <mjambor@suse.cz>
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>
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
11247 2022-03-31 Richard Biener <rguenther@suse.de>
11250 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
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]
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>
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>
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>
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>
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
11356 2022-03-29 Tom de Vries <tdevries@suse.de>
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'
11447 2022-03-29 Richard Biener <rguenther@suse.de>
11449 PR tree-optimization/105080
11450 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
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>
11461 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
11463 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
11466 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
11469 2022-03-28 Tom de Vries <tdevries@suse.de>
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
11478 2022-03-28 David Malcolm <dmalcolm@redhat.com>
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
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
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>
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>
11514 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
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
11530 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
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>
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>
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>
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>
11596 * doc/invoke.texi (Static Analyzer Options): Add
11597 -fdump-analyzer-untracked.
11599 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
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>
11608 * gimple-harden-conditionals.cc (detach_value): Keep temps
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
11618 2022-03-24 Jakub Jelinek <jakub@redhat.com>
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
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>
11651 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
11654 2022-03-23 Richard Biener <rguenther@suse.de>
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):
11671 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
11672 Reword the error message.
11674 2022-03-23 liuhongt <hongtao.liu@intel.com>
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,
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>
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
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>
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
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>
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>
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>
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
11768 2022-03-22 Martin Liska <mliska@suse.cz>
11771 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
11772 Use %qs instead of (%qs).
11774 2022-03-22 Martin Liska <mliska@suse.cz>
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>
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
11794 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
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
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
11832 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
11834 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
11837 2022-03-22 liuhongt <hongtao.liu@intel.com>
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>
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>
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>
11875 * common/config/i386/cpuinfo.h (get_available_features): Pass
11876 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
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
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
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>
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>
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.
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>
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>
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>
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>
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>
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>
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>
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>
12114 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
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
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>
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>
12141 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
12142 acceptable MEM addresses.
12144 2022-03-15 Jakub Jelinek <jakub@redhat.com>
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
12151 2022-03-15 Jakub Jelinek <jakub@redhat.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
12317 * calls.cc (expand_call): Ignore stack adjustments after sorry.
12319 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
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>
12329 * ipa-cp.cc (create_specialized_node): Move removal of
12330 self-recursive calls from callers vector before refrence
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
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>
12355 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
12358 2022-03-10 Tom de Vries <tdevries@suse.de>
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
12376 2022-03-10 Tom de Vries <tdevries@suse.de>
12379 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
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>
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>
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
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.
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
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>
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
12469 2022-03-09 Jakub Jelinek <jakub@redhat.com>
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
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>
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>
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>
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>
12588 * config/arm/arm.cc (arm_option_override_internal): Add missing
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>
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>
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>
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>
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
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>
12638 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
12641 2022-03-07 Jakub Jelinek <jakub@redhat.com>
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>
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>
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
12700 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
12704 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
12705 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
12707 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
12709 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
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>
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
12761 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
12764 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
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>
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
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
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
12839 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
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):
12877 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
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
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>
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>
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"):
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>
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
13002 2022-02-28 Martin Liska <mliska@suse.cz>
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
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>
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>
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
13126 2022-02-25 Alexandre Oliva <oliva@adacore.com>
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
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>
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
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
13199 (parser::parse_expr): Allow ! for GENERIC.
13200 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
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>
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>
13222 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
13224 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
13228 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
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
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
13245 * omp-general.h (omp_build_component_ref): Declare function.
13246 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
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>
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>
13270 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
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>
13284 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
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>
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>
13341 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
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>
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>
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
13382 (arm_mode_to_pred_mode): New.
13383 (arm_expand_vector_compare): Use the right VxBI mode instead of
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>
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
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.
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
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
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):
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
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>
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
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):
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
13538 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
13540 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
13542 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
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>
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
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
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>
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>
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
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
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
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>
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>
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
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>
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>
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>
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>
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
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
13770 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
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
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>
13791 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
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
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>
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
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
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>
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>
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
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>
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>
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>
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>
13927 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
13928 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
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
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
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
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>
13986 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
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>
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
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
14014 (execute_early_warn_uninitialized): Use VN to compute
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
14035 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
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
14047 2022-02-10 Tom de Vries <tdevries@suse.de>
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>
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.
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>
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>
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>
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>
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.
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):
14218 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
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):
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):
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
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
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>
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>
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
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
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>
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
14367 2022-02-09 liuhongt <hongtao.liu@intel.com>
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>
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>
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
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>
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='
14440 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
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>
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>
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
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>
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>
14517 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
14518 MMA if !TARGET_VSX.
14520 2022-02-06 Jakub Jelinek <jakub@redhat.com>
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
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
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>
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>
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>
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
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
14607 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
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
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
14648 * tree-streamer-out.cc (streamer_write_tree_bitfields):
14650 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
14651 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
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
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>
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
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):
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):
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
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>
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>
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
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
14764 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
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
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>
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
14846 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
14848 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
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
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):
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>
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>
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
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
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
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
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
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
14981 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
14983 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
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
14999 2022-02-01 Jakub Jelinek <jakub@redhat.com>
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
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>
15049 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
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.
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
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
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
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>
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>
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
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
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'
15396 2022-01-28 Jakub Jelinek <jakub@redhat.com>
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
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
15414 2022-01-27 Patrick Palka <ppalka@redhat.com>
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>
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>
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
15457 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
15458 corresponding condition even if they have non-NULL ops[]->op.
15461 2022-01-26 Jakub Jelinek <jakub@redhat.com>
15464 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
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>
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>
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>
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>
15504 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
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
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>
15534 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
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
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>
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
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
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
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
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.
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
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>
15687 * config/i386/predicates.md (bcst_mem_operand): Also check mode
15688 of memory broadcast.
15690 2022-01-23 Andrew Pinski <apinski@marvell.com>
15693 * config/aarch64/aarch64-builtins.cc
15694 (aarch64_general_gimple_fold_builtin): Handle
15695 __builtin_aarch64_sqrt* and simplify into SQRT internal
15698 2022-01-22 Jakub Jelinek <jakub@redhat.com>
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>
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
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>
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
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
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):
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
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
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):
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
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
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>
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):
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
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
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
15985 2022-01-20 Jakub Jelinek <jakub@redhat.com>
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>
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
16017 (noce_convert_multiple_sets): Create two sequences and use the less
16020 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
16022 * rtl.h (struct rtx_comparison): New struct that holds an rtx
16024 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
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
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
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
16287 2022-01-19 Jakub Jelinek <jakub@redhat.com>
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
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
16304 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
16307 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
16310 2022-01-19 Jakub Jelinek <jakub@redhat.com>
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
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>
16359 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
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
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
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):
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
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>
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>
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
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>
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
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.
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.
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.
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.
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.
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.
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...
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...
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...
18159 * ddg.c: Moved to...
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...
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...
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...
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...
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...
18499 * jump.c: Moved to...
18500 * jump.cc: ...here.
18501 * langhooks.c: Moved to...
18502 * langhooks.cc: ...here.
18503 * lcm.c: Moved to...
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...
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...
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...
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...
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...
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...
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
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>
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>
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>):
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>):
19008 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
19009 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
19011 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
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>
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>
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>
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
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>
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>
19207 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
19209 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
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>
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
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
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
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>
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>
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.
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
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
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
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>
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>
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
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
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
19519 (object_sizes_get): Return suitable gimple variable for
19521 (bundle_sizes): New function.
19522 (object_sizes_set): Use it and handle dynamic object size
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):
19528 (compute_builtin_object_size): Call gimplify_size_expressions
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>
19569 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
19571 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
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
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>
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>
19594 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
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
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>
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
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,
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):
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>
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>
19727 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
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>
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>
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>
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>
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):
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
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
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
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
19879 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
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>
19888 * config/i386/i386.h (x86_mfence): Mark with GTY.
19890 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
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>
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>
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>
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>
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
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
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>
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
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
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>
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.
20062 (print_call_name): Add spc local variable.
20064 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
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>
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>
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):
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
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
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>
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>
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>
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.