]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2022-10-04 Jakub Jelinek <jakub@redhat.com>
2
3 * attribs.h (remove_attribute): Declare overload with additional
4 attr_ns argument.
5 (private_lookup_attribute): Declare overload with additional
6 attr_ns and attr_ns_len arguments.
7 (lookup_attribute): New overload with additional attr_ns argument.
8 * attribs.cc (remove_attribute): New overload with additional
9 attr_ns argument.
10 (private_lookup_attribute): New overload with additional
11 attr_ns and attr_ns_len arguments.
12
13 2022-10-04 Jakub Jelinek <jakub@redhat.com>
14
15 * attribs.cc (handle_ignored_attributes_option, decl_attributes,
16 common_function_versions): Use auto_diagnostic_group.
17
18 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
19
20 * value-range.cc (irange::set_nonzero_bits): Remove assert.
21
22 2022-10-04 Richard Sandiford <richard.sandiford@arm.com>
23
24 * config/aarch64/aarch64.h (AARCH64_ISA_RCPC): New macro.
25 * config/aarch64/aarch64-arches.def (armv8.3-a): Include RCPC.
26 * config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1)
27 (neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores.
28 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
29 __ARM_FEATURE_RCPC when appropriate.
30
31 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
32
33 * doc/invoke.texi (-fopenmp): Mention C++ attribut syntax.
34 (-fopenmp-simd): Likewise; update permitted directives.
35
36 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
37
38 * doc/install.texi (Specific): Add missing items to bullet list.
39 (amdgcn): Update LLVM requirements, use version not date for newlib.
40 (nvptx): Use version not git hash for newlib.
41
42 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
43
44 * value-range-storage.cc (irange_storage_slot::set_irange): Remove
45 special case.
46 * value-range.cc (irange::irange_set): Adjust for nonzero mask
47 being a wide int.
48 (irange::irange_set_anti_range): Same.
49 (irange::set): Same.
50 (irange::verify_range): Same.
51 (irange::legacy_equal_p): Same.
52 (irange::operator==): Same.
53 (irange::contains_p): Same.
54 (irange::legacy_intersect): Same.
55 (irange::legacy_union): Same.
56 (irange::irange_single_pair_union): Call union_nonzero_bits.
57 (irange::irange_union): Same.
58 (irange::irange_intersect): Call intersect_nonzero_bits.
59 (irange::intersect): Adjust for nonzero mask being a wide int.
60 (irange::invert): Same.
61 (irange::set_nonzero_bits): Same.
62 (irange::get_nonzero_bits_from_range): New.
63 (irange::set_range_from_nonzero_bits): New.
64 (irange::get_nonzero_bits): Adjust for nonzero mask being a wide
65 int.
66 (irange::intersect_nonzero_bits): Same.
67 (irange::union_nonzero_bits): Same.
68 (range_tests_nonzero_bits): Remove test.
69 * value-range.h (irange::varying_compatible_p): Adjust for nonzero
70 mask being a wide int.
71 (gt_ggc_mx): Same.
72 (gt_pch_nx): Same.
73 (irange::set_undefined): Same.
74 (irange::set_varying): Same.
75 (irange::normalize_kind): Same.
76
77 2022-10-04 Aldy Hernandez <aldyh@redhat.com>
78
79 PR tree-optimization/107130
80 * gimple-range-op.cc (class cfn_popcount): Call op_cfn_ffs.
81 (class cfn_ffs): New.
82 (gimple_range_op_handler::maybe_builtin_call): Separate out
83 CASE_CFN_FFS into its own case.
84
85 2022-10-03 Sergei Trofimovich <siarheit@google.com>
86
87 * config/i386/t-i386: Add build-time dependencies against
88 i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
89 i386-features.o.
90
91 2022-10-03 Andrew Stubbs <ams@codesourcery.com>
92
93 * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
94 operand 3.
95 * doc/md.texi (while_ult): Document new operand 3 usage.
96 * internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type
97 maps to a non-vector mode.
98
99 2022-10-03 Andrew MacLeod <amacleod@redhat.com>
100
101 PR tree-optimization/107109
102 * range-op.cc (adjust_op1_for_overflow): Don't process undefined.
103
104 2022-10-03 Christophe Lyon <christophe.lyon@arm.com>
105
106 * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
107 clobber.
108 (mve_vrev64q_m_f<mode>): Likewise.
109
110 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
111
112 * value-range.cc (irange::set_nonzero_bits): Do not pessimize range.
113 (range_tests_nonzero_bits): New test.
114
115 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
116
117 * value-range.cc (irange::operator==): Early bail on m_num_ranges
118 equal to 0.
119
120 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
121
122 * value-range.cc (irange::legacy_equal_p): Remove nonozero mask
123 check when comparing VR_VARYING ranges.
124
125 2022-10-03 Aldy Hernandez <aldyh@redhat.com>
126
127 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare
128 incompatible ranges in ipa-prop.
129
130 2022-10-02 Jakub Jelinek <jakub@redhat.com>
131
132 PR tree-optimization/107121
133 * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics,
134 DEFFERED_INIT -> DEFERRED_INIT.
135
136 2022-10-02 Marc Poulhiès <poulhies@adacore.com>
137
138 * config/vxworks-driver.cc: New.
139 * config.gcc (*vxworks*): Add vxworks-driver.o in extra_gcc_objs.
140 * config/t-vxworks: Add vxworks-driver.o.
141 * config/vxworks.h (GCC_DRIVER_HOST_INITIALIZATION): New.
142
143 2022-10-02 Olivier Hainque <hainque@adacore.com>
144
145 * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If
146 HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless
147 of ENABLE_SHARED_LIBGCC.
148
149 2022-10-01 Stafford Horne <shorne@gmail.com>
150
151 * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if
152 HAVE_AS_TLS is defined.
153
154 2022-10-01 Julian Brown <julian@codesourcery.com>
155
156 * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create)
157 handling.
158
159 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
160
161 * config/h8300/h8300.md (HSI2): New iterator.
162 (eqne_invert): Similarly.
163 * config/h8300/testcompare.md (testhi_upper_z): New pattern.
164 (cmpqi_z, cmphi_z, cmpsi_z): Likewise.
165 (store_z_qi, store_z_i_qi, store_z_hi, store_z_hi_sb): New
166 define_insn_and_splits and/or define_insns.
167 (store_z_hi_neg, store_z_hi_and, store_z_<mode>): Likewise.
168 (store_z_<mode>_neg, store_z_<mode>_and, store_z): Likewise.
169
170 2022-10-01 Jeff Law <jeffreyalaw@gmail.com>
171
172 * tree-ssa-dom.cc (record_edge_info): Install correct version of
173 patch.
174
175 2022-10-01 Eugene Rozenfeld <erozen@microsoft.com>
176
177 * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
178
179 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
180
181 * tree-ssa-dom.cc (single_block_loop_p): New function.
182 (record_edge_info): Also record equivalences for the outgoing
183 edge of a single block loop where the condition is an invariant.
184
185 2022-09-30 Jeff Law <jeffreyalaw@gmail.com>
186
187 * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too.
188 (free_all_edge_infos): Do not clear e->aux here.
189
190 2022-09-30 H.J. Lu <hjl.tools@gmail.com>
191
192 * target.def (TARGET_C_EXCESS_PRECISION): Document
193 -fexcess-precision=16.
194
195 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
196
197 * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16.
198
199 2022-09-30 Palmer Dabbelt <palmer@rivosinc.com>
200
201 PR target/106815
202 * config/riscv/riscv.cc (riscv_excess_precision): Add support
203 for EXCESS_PRECISION_TYPE_FLOAT16.
204
205 2022-09-30 Jakub Jelinek <jakub@redhat.com>
206
207 PR c++/107080
208 * config/arm/arm.cc (arm_mangle_type): Mangle just __fp16 as Dh
209 and _Float16 as DF16_.
210 * config/csky/csky.cc (csky_init_builtins): Fix a comment typo.
211 (csky_mangle_type): Mangle __fp16 as Dh and _Float16 as DF16_
212 rather than mangling __fp16 as __fp16.
213
214 2022-09-30 Lewis Hyatt <lhyatt@gmail.com>
215
216 PR preprocessor/69543
217 * tree-ssa-uninit.cc (warn_uninit): Stop stripping macro tracking
218 information away from the diagnostic location.
219 (maybe_warn_read_write_only): Likewise.
220 (maybe_warn_operand): Likewise.
221
222 2022-09-30 Jakub Jelinek <jakub@redhat.com>
223
224 PR c++/107080
225 * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16
226 as Dh and _Float16 as DF16_.
227
228 2022-09-30 Jakub Jelinek <jakub@redhat.com>
229
230 PR c++/107080
231 * config/i386/i386.cc (ix86_mangle_type): Always return NULL
232 for float128_type_node or float64x_type_node, don't check
233 float128t_type_node later on.
234 * config/ia64/ia64.cc (ia64_mangle_type): Always return NULL
235 for float128_type_node or float64x_type_node.
236 * config/rs6000/rs6000.cc (rs6000_mangle_type): Likewise.
237 Don't check float128_type_node later on.
238 * config/s390/s390.cc (s390_mangle_type): Don't use
239 TYPE_MAIN_VARIANT on type which was set to TYPE_MAIN_VARIANT
240 a few lines earlier.
241
242 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
243 Yvan ROUX <yvan.roux@foss.st.com>
244
245 * doc/sourcebuild.texi: Document new vma_equals_lma effective
246 target check.
247
248 2022-09-30 Jiawei <jiawei@iscas.ac.cn>
249
250 * config/riscv/riscv.cc (riscv_file_start): New .option.
251 * config/riscv/riscv.opt: New options.
252 * doc/invoke.texi: New definations.
253
254 2022-09-30 Kewen Lin <linkw@linux.ibm.com>
255
256 PR target/99888
257 PR target/105649
258 * doc/invoke.texi (option -fpatchable-function-entry): Adjust the
259 documentation for PowerPC ELFv2 ABI dual entry points.
260 * config/rs6000/rs6000-internal.h
261 (rs6000_print_patchable_function_entry): New function declaration.
262 * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
263 Support patchable-function-entry by emitting nops before and after
264 local entry for the function that needs global entry.
265 * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): Skip
266 the function that needs global entry till global entry has been
267 emitted.
268 * config/rs6000/rs6000.h (struct machine_function): New bool member
269 global_entry_emitted.
270
271 2022-09-30 Richard Biener <rguenther@suse.de>
272
273 PR tree-optimization/107095
274 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg
275 for .MASK_STORE size.
276
277 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
278
279 * range-op.cc (plus_minus_ranges): New.
280 (adjust_op1_for_overflow): New.
281 (operator_plus::op1_range): Use new adjustment.
282 (operator_plus::op2_range): Ditto.
283 (operator_minus::op1_range): Ditto.
284 * value-relation.h (relation_lt_le_gt_ge_p): New.
285
286 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
287
288 * gimple-range-gori.cc (gori_compute::refine_using_relation): New.
289 (gori_compute::compute_operand1_range): Invoke
290 refine_using_relation when applicable.
291 (gori_compute::compute_operand2_range): Ditto.
292 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
293
294 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
295
296 * gimple-range-gori.cc (ori_compute::compute_operand_range):
297 Create a relation record and pass it along when possible.
298 (gori_compute::compute_operand1_range): Pass relation along.
299 (gori_compute::compute_operand2_range): Ditto.
300 (gori_compute::compute_operand1_and_operand2_range): Ditto.
301 * gimple-range-gori.h (class gori_compute): Adjust prototypes.
302 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Pass
303 relation to op1_range call.
304 (gimple_range_op_handler::calc_op2): Pass relation to op2_range call.
305 * gimple-range-op.h (class gimple_range_op_handler): Adjust
306 prototypes.
307
308 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
309
310 * value-relation.cc (class value_relation): Move to .h file.
311 (value_relation::set_relation): Ditto.
312 (value_relation::value_relation): ditto.
313 * value-relation.h (class value_relation): Move from .cc file.
314 (value_relation::set_relation): Ditto
315 (value_relation::value_relation): Ditto.
316
317 2022-09-29 Andrew MacLeod <amacleod@redhat.com>
318
319 * range-op.cc (operator_minus::op2_range): Check for undefined.
320 (operator_mult::op1_range): Ditto.
321 (operator_exact_divide::op1_range): Ditto.
322 (operator_lshift::op1_range): Ditto.
323 (operator_rshift::op1_range): Ditto.
324 (operator_cast::op1_range): Ditto.
325 (operator_bitwise_and::op1_range): Ditto.
326 (operator_bitwise_or::op1_range): Ditto.
327 (operator_trunc_mod::op1_range): Ditto.
328 (operator_trunc_mod::op2_range): Ditto.
329 (operator_bitwise_not::op1_range): Ditto.
330 (pointer_or_operator::op1_range): Ditto.
331 (range_op_handler::op1_range): Ditto.
332 (range_op_handler::op2_range): Ditto.
333
334 2022-09-29 Andrew Stubbs <ams@codesourcery.com>
335
336 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
337 Remove unused elt_bits variable.
338
339 2022-09-29 Olivier Hainque <hainque@adacore.com>
340
341 * config/vxworks.h: Add comment on our use of
342 HAVE_INITFINI_ARRAY_SUPPORT.
343
344 2022-09-29 Olivier Hainque <hainque@adacore.com>
345
346 * config/aarch64/t-aarch64-vxworks: Request multilib
347 variants for mcmodel=large.
348
349 2022-09-29 Olivier Hainque <hainque@adacore.com>
350
351 * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove
352 resetting to 0.
353
354 2022-09-29 Olivier Hainque <hainque@adacore.com>
355
356 * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0
357 when ARM_UNWIND_INFO is set.
358
359 2022-09-29 Julian Brown <julian@codesourcery.com>
360
361 PR middle-end/107028
362 * gimplify.cc (omp_check_mapping_compatibility,
363 oacc_resolve_clause_dependencies): New functions.
364 (omp_accumulate_sibling_list): Remove redundant duplicate clause
365 detection for OpenACC.
366 (build_struct_sibling_lists): Skip deleted groups. Don't build sibling
367 list for struct variables that are fully mapped on the same directive
368 for OpenACC.
369 (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies.
370
371 2022-09-29 Jose E. Marchesi <jose.marchesi@oracle.com>
372
373 PR middle-end/25521
374 * varasm.cc (categorize_decl_for_section): Place `const volatile'
375 objects in read-only sections.
376 (default_select_section): Likewise.
377
378 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
379
380 * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead
381 of to_widest.
382
383 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
384
385 * config/aarch64/aarch64.h (TARGET_CRYPTO, TARGET_SHA3, TARGET_SM4)
386 (TARGET_DOTPROD): Don't depend on TARGET_SIMD.
387 (TARGET_AES, TARGET_SHA2): Likewise. Remove TARGET_CRYPTO test.
388 (TARGET_FP_F16INST): Don't depend on TARGET_FLOAT.
389 (TARGET_SVE2, TARGET_SVE_F32MM, TARGET_SVE_F64MM): Don't depend
390 on TARGET_SVE.
391 (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
392 (TARGET_SVE2_SM4): Don't depend on TARGET_SVE2.
393 (TARGET_F32MM, TARGET_F64MM): Delete.
394 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Guard
395 float macros with just TARGET_FLOAT rather than TARGET_FLOAT
396 || TARGET_SIMD.
397 * config/aarch64/aarch64-simd.md (copysign<mode>3): Depend
398 only on TARGET_SIMD, rather than TARGET_FLOAT && TARGET_SIMD.
399 (aarch64_crypto_aes<aes_op>v16qi): Depend only on TARGET_AES,
400 rather than TARGET_SIMD && TARGET_AES.
401 (aarch64_crypto_aes<aesmc_op>v16qi): Likewise.
402 (*aarch64_crypto_aese_fused): Likewise.
403 (*aarch64_crypto_aesd_fused): Likewise.
404 (aarch64_crypto_pmulldi): Likewise.
405 (aarch64_crypto_pmullv2di): Likewise.
406 (aarch64_crypto_sha1hsi): Likewise TARGET_SHA2.
407 (aarch64_crypto_sha1hv4si): Likewise.
408 (aarch64_be_crypto_sha1hv4si): Likewise.
409 (aarch64_crypto_sha1su1v4si): Likewise.
410 (aarch64_crypto_sha1<sha1_op>v4si): Likewise.
411 (aarch64_crypto_sha1su0v4si): Likewise.
412 (aarch64_crypto_sha256h<sha256_op>v4si): Likewise.
413 (aarch64_crypto_sha256su0v4si): Likewise.
414 (aarch64_crypto_sha256su1v4si): Likewise.
415 (aarch64_crypto_sha512h<sha512_op>qv2di): Likewise TARGET_SHA3.
416 (aarch64_crypto_sha512su0qv2di): Likewise.
417 (aarch64_crypto_sha512su1qv2di, eor3q<mode>4): Likewise.
418 (aarch64_rax1qv2di, aarch64_xarqv2di, bcaxq<mode>4): Likewise.
419 (aarch64_sm3ss1qv4si): Likewise TARGET_SM4.
420 (aarch64_sm3tt<sm3tt_op>qv4si): Likewise.
421 (aarch64_sm3partw<sm3part_op>qv4si): Likewise.
422 (aarch64_sm4eqv4si, aarch64_sm4ekeyqv4si): Likewise.
423 * config/aarch64/aarch64.md (<FLOATUORS:optab>dihf2)
424 (copysign<GPF:mode>3, copysign<GPF:mode>3_insn)
425 (xorsign<mode>3): Remove redundant TARGET_FLOAT condition.
426
427 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
428
429 * config/aarch64/aarch64.opt (aarch64_asm_isa_flags): New variable.
430 * config/aarch64/aarch64.h (aarch64_asm_isa_flags)
431 (aarch64_isa_flags): Redefine as read-only macros.
432 (TARGET_SIMD, TARGET_FLOAT, TARGET_SVE): Don't depend on
433 !TARGET_GENERAL_REGS_ONLY.
434 * common/config/aarch64/aarch64-common.cc
435 (aarch64_set_asm_isa_flags): New function.
436 (aarch64_handle_option): Call it when updating -mgeneral-regs.
437 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Replace
438 m_old_isa_flags with m_old_asm_isa_flags.
439 (aarch64_set_asm_isa_flags): Declare.
440 * config/aarch64/aarch64-builtins.cc
441 (aarch64_simd_switcher::aarch64_simd_switcher)
442 (aarch64_simd_switcher::~aarch64_simd_switcher): Save and restore
443 aarch64_asm_isa_flags instead of aarch64_isa_flags.
444 * config/aarch64/aarch64-sve-builtins.cc
445 (check_required_extensions): Use aarch64_asm_isa_flags instead
446 of aarch64_isa_flags.
447 * config/aarch64/aarch64.cc (aarch64_set_asm_isa_flags): New function.
448 (aarch64_override_options, aarch64_handle_attr_arch)
449 (aarch64_handle_attr_cpu, aarch64_handle_attr_isa_flags): Use
450 aarch64_set_asm_isa_flags to set the ISA flags.
451 (aarch64_option_print, aarch64_declare_function_name)
452 (aarch64_start_file): Use aarch64_asm_isa_flags instead
453 of aarch64_isa_flags.
454 (aarch64_can_inline_p): Check aarch64_asm_isa_flags as well as
455 aarch64_isa_flags.
456
457 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
458
459 * common/config/aarch64/aarch64-common.cc (all_extensions):
460 Include the feature flag in flags_on and flags_off.
461 (aarch64_parse_extension): Update accordingly.
462 (aarch64_get_extension_string_for_isa_flags): Likewise.
463
464 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
465
466 * common/config/aarch64/aarch64-common.cc: Use aarch64_feature_flags
467 for feature flags throughout.
468 * config/aarch64/aarch64-protos.h: Likewise.
469 * config/aarch64/aarch64-sve-builtins.h: Likewise.
470 * config/aarch64/aarch64-sve-builtins.cc: Likewise.
471 * config/aarch64/aarch64.cc: Likewise.
472 * config/aarch64/aarch64.opt: Likewise.
473 * config/aarch64/driver-aarch64.cc: Likewise.
474
475 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
476
477 * common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
478 (processor_name_to_arch, arch_to_arch_name): Remove const from
479 member variables.
480 (all_extensions, all_cores, all_architectures): Make a constexpr.
481 * config/aarch64/aarch64.cc (processor): Remove const from
482 member variables.
483 (all_architectures): Make a constexpr.
484 * config/aarch64/driver-aarch64.cc (aarch64_core_data)
485 (aarch64_arch_driver_info): Remove const from member variables.
486 (aarch64_cpu_data, aarch64_arches): Make a constexpr.
487 (get_arch_from_id): Return a pointer to const.
488 (host_detect_local_cpu): Update accordingly.
489
490 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
491
492 * common/config/aarch64/aarch64-common.cc (processor_name_to_arch)
493 (arch_to_arch_name): Use const char * instead of std::string.
494
495 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
496
497 * common/config/aarch64/aarch64-common.cc
498 (TARGET_OPTION_INIT_STRUCT): Delete.
499 (aarch64_option_extension): Remove is_synthetic_flag.
500 (all_extensions): Update accordingly.
501 (all_extensions_by_on, opt_ext, opt_ext_cmp): Delete.
502 (aarch64_option_init_struct, aarch64_contains_opt): Delete.
503 (aarch64_get_extension_string_for_isa_flags): Rewrite to use
504 all_extensions instead of all_extensions_on.
505
506 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
507
508 * config/aarch64/aarch64-option-extensions.def: Switch to a new format.
509 * config/aarch64/aarch64-cores.def: Use the same format to specify
510 lists of features.
511 * config/aarch64/aarch64-arches.def: Likewise, moving that information
512 from aarch64.h.
513 * config/aarch64/aarch64-opts.h (aarch64_feature_flags): New typedef.
514 * config/aarch64/aarch64.h (aarch64_feature): New class enum.
515 Turn AARCH64_FL_* macros into constexprs, getting the definitions
516 from aarch64-option-extensions.def. Remove AARCH64_FL_FOR_* macros.
517 * common/config/aarch64/aarch64-common.cc: Include
518 aarch64-feature-deps.h.
519 (all_extensions): Update for new .def format.
520 (all_extensions_by_on, all_cores, all_architectures): Likewise.
521 * config/aarch64/driver-aarch64.cc: Include aarch64-feature-deps.h.
522 (aarch64_extensions): Update for new .def format.
523 (aarch64_cpu_data, aarch64_arches): Likewise.
524 * config/aarch64/aarch64.cc: Include aarch64-feature-deps.h.
525 (all_architectures, all_cores): Update for new .def format.
526 * config/aarch64/aarch64-sve-builtins.cc
527 (check_required_extensions): Likewise.
528 * config/aarch64/aarch64-feature-deps.h: New file.
529
530 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
531
532 * config/aarch64/aarch64-option-extensions.def: Move crypto
533 after sha2.
534
535 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
536
537 * config/aarch64/aarch64-option-extensions.def (dotprod): Depend
538 on fp as well as simd.
539 (sha3): Likewise.
540 (aes): Likewise. Make +noaes disable crypto.
541 (sha2): Likewise +nosha2. Also make +nosha2 disable sha3 and
542 sve2-sha3.
543 (sve2-sha3): Depend on sha2 as well as sha3.
544
545 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
546
547 PR target/107025
548 * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete.
549 (AARCH64_FL_FOR_V8_4A): Update accordingly.
550 (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly.
551 * config/aarch64/aarch64-cores.def (thunderx3t110): Remove
552 AARCH64_FL_RCPC8_4.
553
554 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
555
556 * config/aarch64/aarch64-cores.def: Remove AARCH64_FL_FOR_<ARCH>
557 from the flags field.
558 * common/config/aarch64/aarch64-common.cc (all_cores): Add it
559 here instead.
560 * config/aarch64/aarch64.cc (all_cores): Likewise.
561 * config/aarch64/driver-aarch64.cc (all_cores): Likewise.
562
563 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
564
565 * config.gcc: Remove dead aarch64-option-extensions.def code.
566 * config/aarch64/aarch64-arches.def: Update comment.
567
568 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
569
570 * config/aarch64/aarch64-arches.def: Add a leading "V" to the
571 ARCH_IDENT fields.
572 * config/aarch64/aarch64-cores.def: Update accordingly.
573 * common/config/aarch64/aarch64-common.cc (all_cores): Likewise.
574 * config/aarch64/aarch64.cc (all_cores): Likewise.
575 * config/aarch64/driver-aarch64.cc (aarch64_arches): Skip the
576 leading "V".
577
578 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
579
580 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8): Rename to...
581 (AARCH64_FL_FOR_V8A): ...this.
582 (AARCH64_FL_FOR_ARCH8_1): Rename to...
583 (AARCH64_FL_FOR_V8_1A): ...this.
584 (AARCH64_FL_FOR_ARCH8_2): Rename to...
585 (AARCH64_FL_FOR_V8_2A): ...this.
586 (AARCH64_FL_FOR_ARCH8_3): Rename to...
587 (AARCH64_FL_FOR_V8_3A): ...this.
588 (AARCH64_FL_FOR_ARCH8_4): Rename to...
589 (AARCH64_FL_FOR_V8_4A): ...this.
590 (AARCH64_FL_FOR_ARCH8_5): Rename to...
591 (AARCH64_FL_FOR_V8_5A): ...this.
592 (AARCH64_FL_FOR_ARCH8_6): Rename to...
593 (AARCH64_FL_FOR_V8_6A): ...this.
594 (AARCH64_FL_FOR_ARCH8_7): Rename to...
595 (AARCH64_FL_FOR_V8_7A): ...this.
596 (AARCH64_FL_FOR_ARCH8_8): Rename to...
597 (AARCH64_FL_FOR_V8_8A): ...this.
598 (AARCH64_FL_FOR_ARCH8_R): Rename to...
599 (AARCH64_FL_FOR_V8R): ...this.
600 (AARCH64_FL_FOR_ARCH9): Rename to...
601 (AARCH64_FL_FOR_V9A): ...this.
602 (AARCH64_FL_FOR_ARCH9_1): Rename to...
603 (AARCH64_FL_FOR_V9_1A): ...this.
604 (AARCH64_FL_FOR_ARCH9_2): Rename to...
605 (AARCH64_FL_FOR_V9_2A): ...this.
606 (AARCH64_FL_FOR_ARCH9_3): Rename to...
607 (AARCH64_FL_FOR_V9_3A): ...this.
608 * common/config/aarch64/aarch64-common.cc (all_cores): Update
609 accordingly.
610 * config/aarch64/aarch64-arches.def: Likewise.
611 * config/aarch64/aarch64-cores.def: Likewise.
612 * config/aarch64/aarch64.cc (all_cores): Likewise.
613
614 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
615
616 * config/aarch64/aarch64.h (AARCH64_FL_V8_1, AARCH64_FL_V8_2)
617 (AARCH64_FL_V8_3, AARCH64_FL_V8_4, AARCH64_FL_V8_5, AARCH64_FL_V8_6)
618 (AARCH64_FL_V9, AARCH64_FL_V8_7, AARCH64_FL_V8_8, AARCH64_FL_V9_1)
619 (AARCH64_FL_V9_2, AARCH64_FL_V9_3): Add "A" to the end of the name.
620 (AARCH64_FL_V8_R): Rename to AARCH64_FL_V8R.
621 (AARCH64_FL_FOR_ARCH8_1, AARCH64_FL_FOR_ARCH8_2): Update accordingly.
622 (AARCH64_FL_FOR_ARCH8_3, AARCH64_FL_FOR_ARCH8_4): Likewise.
623 (AARCH64_FL_FOR_ARCH8_5, AARCH64_FL_FOR_ARCH8_6): Likewise.
624 (AARCH64_FL_FOR_ARCH8_7, AARCH64_FL_FOR_ARCH8_8): Likewise.
625 (AARCH64_FL_FOR_ARCH8_R, AARCH64_FL_FOR_ARCH9): Likewise.
626 (AARCH64_FL_FOR_ARCH9_1, AARCH64_FL_FOR_ARCH9_2): Likewise.
627 (AARCH64_FL_FOR_ARCH9_3, AARCH64_ISA_V8_2A, AARCH64_ISA_V8_3A)
628 (AARCH64_ISA_V8_4A, AARCH64_ISA_V8_5A, AARCH64_ISA_V8_6A): Likewise.
629 (AARCH64_ISA_V8R, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A): Likewise.
630 (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A): Likewise.
631
632 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
633
634 * config/aarch64/aarch64.h (AARCH64_ISA_V8_2, AARCH64_ISA_V8_3)
635 (AARCH64_ISA_V8_4, AARCH64_ISA_V8_5, AARCH64_ISA_V8_6)
636 (AARCH64_ISA_V9, AARCH64_ISA_V9_1, AARCH64_ISA_V9_2)
637 (AARCH64_ISA_V9_3): Add "A" to the end of the name.
638 (AARCH64_ISA_V8_R): Rename to AARCH64_ISA_V8R.
639 (TARGET_ARMV8_3, TARGET_JSCVT, TARGET_FRINT, TARGET_MEMTAG): Update
640 accordingly.
641 * common/config/aarch64/aarch64-common.cc
642 (aarch64_get_extension_string_for_isa_flags): Likewise.
643 * config/aarch64/aarch64-c.cc
644 (aarch64_define_unconditional_macros): Likewise.
645
646 2022-09-29 Richard Sandiford <richard.sandiford@arm.com>
647
648 * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA.
649
650 2022-09-29 Jakub Jelinek <jakub@redhat.com>
651
652 PR bootstrap/107059
653 * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC
654 isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2
655 before FIXED_INCLUDE_DIR entry with multilib flag 0.
656 * gcc.cc (do_spec_1): If multiarch_dir, add
657 include-fixed/multiarch_dir paths before include-fixed paths.
658
659 2022-09-29 Martin Liska <mliska@suse.cz>
660
661 PR driver/106897
662 * common.opt: Add -gz=zstd value.
663 * configure.ac: Detect --compress-debug-sections=zstd
664 for both linker and assembler.
665 * configure: Regenerate.
666 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Handle -gz=zstd.
667 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
668
669 2022-09-29 Richard Biener <rguenther@suse.de>
670
671 PR tree-optimization/105646
672 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
673 the set of fallthru reachable blocks from function entry
674 and use that to determine wlims.always_executed.
675
676 2022-09-29 liuhongt <hongtao.liu@intel.com>
677
678 PR tree-optimization/107055
679 * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for
680 nonlinear induction variables.
681 * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New
682 functions.
683 (vectorizable_nonlinear_induction): Put part codes into
684 vect_can_peel_nonlinear_iv_p.
685 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare.
686
687 2022-09-28 Eugene Rozenfeld <erozen@microsoft.com>
688
689 * basic-block.h: Remove discriminator from basic blocks.
690 * cfghooks.cc (split_block_1): Remove discriminator from basic blocks.
691 * final.cc (final_start_function_1): Switch from per-bb to per statement
692 discriminator.
693 (final_scan_insn_1): Don't keep track of basic block discriminators.
694 (compute_discriminator): Switch from basic block discriminators to
695 instruction discriminators.
696 (insn_discriminator): New function to return instruction discriminator.
697 (notice_source_line): Use insn_discriminator.
698 * gimple-pretty-print.cc (dump_gimple_bb_header): Remove dumping of
699 basic block discriminators.
700 * gimple-streamer-in.cc (input_bb): Remove reading of basic block
701 discriminators.
702 * gimple-streamer-out.cc (output_bb): Remove writing of basic block
703 discriminators.
704 * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA.
705 (location_with_discriminator): New function to combine locus with
706 a discriminator.
707 (has_discriminator): New function to check if a location has a discriminator.
708 (get_discriminator_from_loc): New function to get the discriminator
709 from a location.
710 * input.h: Declarations of new functions.
711 * lto-streamer-in.cc (cmp_loc): Use discriminators in location comparison.
712 (apply_location_cache): Keep track of current discriminator.
713 (input_location_and_block): Read discriminator from stream.
714 * lto-streamer-out.cc (clear_line_info): Set current discriminator to
715 UINT_MAX.
716 (lto_output_location_1): Write discriminator to stream.
717 * lto-streamer.h: Add discriminator to cached_location.
718 Add current_discr to lto_location_cache.
719 Add current_discr to output_block.
720 * print-rtl.cc (print_rtx_operand_code_i): Print discriminator.
721 * rtl.h: Add extern declaration of insn_discriminator.
722 * tree-cfg.cc (assign_discriminator): New function to assign a unique
723 discriminator value to all statements in a basic block that have the given
724 line number.
725 (assign_discriminators): Assign discriminators to statement locations.
726 * tree-pretty-print.cc (dump_location): Dump discriminators.
727 * tree.cc (set_block): Preserve discriminator when setting block.
728 (set_source_range): Preserve discriminator when setting source range.
729
730 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
731
732 PR target/107061
733 * config/i386/predicates.md (encodekey128_operation): Check
734 XMM4-XMM6 as clobbered.
735 (encodekey256_operation): Likewise.
736 * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
737 (encodekey256u32): Likewise.
738
739 2022-09-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
740
741 * config.gcc: Add riscv-vector-builtins.o.
742 * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV builtin function.
743 * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): New function.
744 * config/riscv/riscv.cc (ENTRY): New macro.
745 (riscv_v_ext_enabled_vector_mode_p): New function.
746 (riscv_mangle_type): Add RVV mangle.
747 (riscv_vector_mode_supported_p): Adjust RVV machine mode.
748 (riscv_verify_type_context): Add context check for RVV.
749 (riscv_vector_alignment): Add RVV alignment target hook support.
750 (TARGET_VECTOR_MODE_SUPPORTED_P): New target hook support.
751 (TARGET_VERIFY_TYPE_CONTEXT): Ditto.
752 (TARGET_VECTOR_ALIGNMENT): Ditto.
753 * config/riscv/t-riscv: Add riscv-vector-builtins.o
754 * config/riscv/riscv-vector-builtins.cc: New file.
755 * config/riscv/riscv-vector-builtins.def: New file.
756 * config/riscv/riscv-vector-builtins.h: New file.
757 * config/riscv/riscv-vector-switch.def: New file.
758
759 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
760
761 * var-tracking.cc (vt_add_function_parameter): Add entry values
762 up to maximal register mode.
763
764 2022-09-28 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
765
766 * cselib.cc (new_cselib_val): Keep track of further subvalue
767 relations.
768
769 2022-09-28 Andrea Corallo <andrea.corallo@arm.com>
770
771 * config/arm/arm-c.cc (arm_cpu_builtins): Define
772 __ARM_FEATURE_AES and __ARM_FEATURE_SHA2.
773
774 2022-09-28 Xi Ruoyao <xry111@xry111.site>
775
776 PR tree-optimization/105414
777 * config/loongarch/loongarch.md (UNSPEC_FMAX): New unspec.
778 (UNSPEC_FMIN): Likewise.
779 (fmax<mode>3): Use UNSPEC_FMAX instead of smax.
780 (fmin<mode>3): Use UNSPEC_FMIN instead of smin.
781
782 2022-09-28 Lulu Cheng <chenglulu@loongson.cn>
783
784 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset):
785 Fixed typo in "asan_mapping.h".
786
787 2022-09-28 H.J. Lu <hjl.tools@gmail.com>
788
789 PR middle-end/58245
790 * calls.cc: Include "tree-eh.h".
791 (expand_call): Check stack canary before throwing exception.
792
793 2022-09-27 Eugene Rozenfeld <erozen@microsoft.com>
794
795 * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
796
797 2022-09-27 Kim Kuparinen <kim.kuparinen@rightware.com>
798
799 * doc/invoke.texi: Update ABI version info.
800
801 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
802
803 * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
804 singleton.
805
806 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
807
808 * value-range.cc (irange::set_nonzero_bits): Set range when known.
809
810 2022-09-27 Aldy Hernandez <aldyh@redhat.com>
811
812 * value-range.h (irange::set): New version taking wide_int_ref.
813
814 2022-09-27 Jakub Jelinek <jakub@redhat.com>
815
816 PR tree-optimization/107029
817 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat
818 OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be
819 signed and so can trigger even the (b % 4) == 3 case.
820
821 2022-09-27 Jeff Law <jeffreyalaw@gmail.com>
822
823 * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
824 and return are available before trying to use them.
825
826 2022-09-27 Jakub Jelinek <jakub@redhat.com>
827
828 PR c++/106652
829 PR c++/85518
830 * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
831 enumerator.
832 * tree.h (float128t_type_node): Define.
833 * tree.cc (build_common_tree_nodes): Initialize float128t_type_node.
834 * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that
835 _Float<N> is supported in C++ too.
836 * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g"
837 float128t_type_node.
838 * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use
839 float128t_type_node for __float128 instead of float128_type_node
840 and create it if NULL.
841 * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph,
842 _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of
843 0.0f.
844 * config/ia64/ia64.cc (ia64_init_builtins): Use
845 float128t_type_node for __float128 instead of float128_type_node
846 and create it if NULL.
847 * config/rs6000/rs6000-c.cc (is_float128_p): Also return true
848 for float128t_type_node if non-NULL.
849 * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle
850 float128_type_node as "u9__ieee128".
851 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use
852 float128t_type_node for __float128 instead of float128_type_node
853 and create it if NULL.
854
855 2022-09-26 Martin Liska <mliska@suse.cz>
856
857 * doc/invoke.texi: Add missing dash for
858 Wanalyzer-exposure-through-uninit-copy.
859
860 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
861
862 PR tree-optimization/107009
863 * range-op.cc (operator_bitwise_and::op1_range): Optimize 0 = x & MASK.
864 (range_op_bitwise_and_tests): New test.
865
866 2022-09-26 Aldy Hernandez <aldyh@redhat.com>
867
868 PR tree-optimization/107009
869 * tree-ssa-dom.cc
870 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
871 Iterate over exports.
872
873 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
874
875 * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override
876 the default.
877 * config/nvptx/gen-multilib-matches.sh: New.
878 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
879 (MULTILIB_EXCEPTIONS): Handle this.
880 * doc/install.texi (Specific) <nvptx-*-none>: Document this.
881 * doc/invoke.texi (Nvidia PTX Options): Likewise.
882
883 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
884
885 * config.gcc (TM_MULTILIB_CONFIG) [nvptx]: Set to '$with_arch'.
886 * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
887 (MULTILIB_EXCEPTIONS): Handle it.
888
889 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
890
891 * config.gcc (with_arch) [nvptx]: Set to 'sm_30'.
892 * config/nvptx/nvptx.cc (nvptx_option_override): Assert that
893 '-misa' appeared.
894 * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define.
895 * config/nvptx/nvptx.opt (misa=): Remove 'Init'.
896
897 2022-09-26 Thomas Schwinge <thomas@codesourcery.com>
898
899 * config/nvptx/nvptx.h (ASM_SPEC): Define.
900
901 2022-09-26 Jeff Law <jeffreyalaw@gmail.com>
902
903 * cfgcleanup.cc (bb_is_just_return): No longer static.
904 * cfgcleanup.h (bb_is_just_return): Add prototype.
905 * cfgrtl.cc (fixup_reorder_chain): Do not create an
906 unconditional jump to a return block. Conditionally
907 remove unreachable blocks.
908
909 2022-09-26 Tobias Burnus <tobias@codesourcery.com>
910
911 PR middle-end/106982
912 * omp-low.cc (lower_oacc_reductions): Add some unshare_expr.
913
914 2022-09-26 Martin Liska <mliska@suse.cz>
915
916 * config/s390/s390.cc (s390_rtx_costs): Remove dest variable
917 and use only dst.
918
919 2022-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
920
921 * config/aarch64/aarch64-arches.def (armv9.1-a): Define.
922 (armv9.2-a): Likewise.
923 (armv9.3-a): Likewise.
924 * config/aarch64/aarch64.h (AARCH64_FL_V9_1): Likewise.
925 (AARCH64_FL_V9_2): Likewise.
926 (AARCH64_FL_V9_3): Likewise.
927 (AARCH64_FL_FOR_ARCH9_1): Likewise.
928 (AARCH64_FL_FOR_ARCH9_2): Likewise.
929 (AARCH64_FL_FOR_ARCH9_3): Likewise.
930 (AARCH64_ISA_V9_1): Likewise.
931 (AARCH64_ISA_V9_2): Likewise.
932 (AARCH64_ISA_V9_3): Likewise.
933 * doc/invoke.texi (AArch64 Options): Document armv9.1-a, armv9.2-a,
934 armv9.3-a values to -march.
935
936 2022-09-26 Martin Liska <mliska@suse.cz>
937
938 * value-range.cc (tree_compare): Remove unused function.
939
940 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
941
942 PR target/96072
943 * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): Update the
944 condition for adding REG_CFA_DEF_CFA reg note with
945 frame_pointer_needed_indeed.
946
947 2022-09-26 Kewen Lin <linkw@linux.ibm.com>
948
949 PR target/100645
950 * config/rs6000/vector.md (vec_shr_<mode>): Replace condition
951 TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P.
952
953 2022-09-26 Hongtao Liu <hongtao.liu@intel.com>
954 Liwei Xu <liwei.xu@intel.com>
955
956 PR target/53346
957 * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps):
958 New function.
959 (ix86_expand_vec_perm_const_1): Insert
960 expand_vec_perm_shufps_shufps at the end of 2-instruction
961 expand sequence.
962
963 2022-09-25 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
964
965 * doc/sourcebuild.texi: Fix chapter level.
966
967 2022-09-24 Jakub Jelinek <jakub@redhat.com>
968
969 PR c/107001
970 * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement
971 at the end.
972 * omp-expand.cc (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
973 is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also don't
974 update parent.
975 (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
976 cur_region back after new_omp_region.
977
978 2022-09-23 Vineet Gupta <vineetg@rivosinc.com>
979
980 * config/riscv/riscv.h (LOCAL_SYM_P): New.
981 (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
982
983 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
984
985 * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes.
986 (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks.
987 (ADJUST_ALIGNMENT): Adjust alignment.
988 (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks.
989 (RVV_MODES): New macro.
990 (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes.
991 (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes.
992
993 2022-09-23 zhongjuzhe <juzhe.zhong@rivai.ai>
994
995 * common/config/riscv/riscv-common.cc: Change "static void" to "void".
996 * config.gcc: Add riscv-selftests.o
997 * config/riscv/predicates.md: Allow const_poly_int.
998 * config/riscv/riscv-protos.h (riscv_reinit): New function.
999 (riscv_parse_arch_string): change as exten function.
1000 (riscv_run_selftests): New function.
1001 * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly
1002 into const pool.
1003 (riscv_report_v_required): New function.
1004 (riscv_expand_op): New function.
1005 (riscv_expand_mult_with_const_int): New function.
1006 (riscv_legitimize_poly_move): Ditto.
1007 (riscv_legitimize_move): New function.
1008 (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix
1009 vector RA.
1010 (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
1011 -marh no 'v'.
1012 (riscv_reinit): New function.
1013 (TARGET_RUN_TARGET_SELFTESTS): New target hook support.
1014 * config/riscv/t-riscv: Add riscv-selftests.o.
1015 * config/riscv/riscv-selftests.cc: New file.
1016
1017 2022-09-23 Richard Biener <rguenther@suse.de>
1018
1019 PR tree-optimization/106922
1020 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
1021 an arbitrary number of same valued skipped stores.
1022
1023 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
1024
1025 * value-range.cc (frange::set): Swap setters such that the one
1026 accepting REAL_VALUE_TYPE does all the work.
1027
1028 2022-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1029
1030 * config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
1031 (demeter): Update tunings to neoversev2.
1032 * config/aarch64/aarch64-tune.md: Regenerate.
1033 * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to
1034 neoversev2_addrcost_table.
1035 (demeter_regmove_cost): Rename to neoversev2_addrcost_table.
1036 (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost.
1037 (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost.
1038 (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info.
1039 (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info.
1040 (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info.
1041 (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info.
1042 Update references to above.
1043 (demeter_vector_cost): Rename to neoversev2_vector_cost.
1044 (demeter_tunings): Rename to neoversev2_tunings.
1045 (aarch64_vec_op_count::rename_cycles_per_iter): Use
1046 neoversev2_sve_issue_info instead of demeter_sve_issue_info.
1047 * doc/invoke.texi (AArch64 Options): Document neoverse-v2.
1048
1049 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
1050
1051 * range-op-float.cc (build_le): Use vrp_val_*.
1052 (build_lt): Same.
1053 (build_ge): Same.
1054 (build_gt): Same.
1055 * value-range.cc (frange::set): Chop ranges outside of the
1056 representable numbers for -ffinite-math-only.
1057 (frange::normalize_kind): Use vrp_val*.
1058 (frange::verify_range): Same.
1059 (frange::set_nonnegative): Same.
1060 (range_tests_floats): Remove tests that depend on -INF and +INF.
1061 * value-range.h (real_max_representable): Add prototype.
1062 (real_min_representable): Same.
1063 (vrp_val_max): Set max representable number for
1064 -ffinite-math-only.
1065 (vrp_val_min): Same but for min.
1066 (frange::set_varying): Use vrp_val*.
1067
1068 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
1069
1070 * real.cc (debug): New.
1071
1072 2022-09-23 Aldy Hernandez <aldyh@redhat.com>
1073
1074 * value-range-pretty-print.cc (vrange_printer::print_real_value): New.
1075 (vrange_printer::visit): Call print_real_value.
1076 * value-range-pretty-print.h: New print_real_value.
1077
1078 2022-09-23 Martin Liska <mliska@suse.cz>
1079
1080 * common.opt: Update -flto-compression-level documentation.
1081 * opts.cc (print_filtered_help): Do not append range to an
1082 option that uses \t syntax.
1083
1084 2022-09-23 Jakub Jelinek <jakub@redhat.com>
1085
1086 * attribs.cc (decl_attributes): Improve diagnostics, instead of
1087 saying expected between 1 and 1, found 2 just say expected 1, found 2.
1088
1089 2022-09-23 Hu, Lin1 <lin1.hu@intel.com>
1090
1091 PR target/94962
1092 * config/i386/constraints.md (BH): New define_constraint.
1093 * config/i386/i386.cc (standard_sse_constant_p): Add return
1094 3/4 when operand matches new predicate.
1095 (standard_sse_constant_opcode): Add new alternative branch to
1096 return "vpcmpeqd".
1097 * config/i386/predicates.md
1098 (vector_all_ones_zero_extend_half_operand): New define_predicate.
1099 (vector_all_ones_zero_extend_quarter_operand): Ditto.
1100 * config/i386/sse.md: Add constraint to insn "mov<mode>_internal".
1101
1102 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1103
1104 * gimple-range-fold.cc (range_of_range_op): Handle no operands.
1105 (range_of_call): Do not check for builtins.
1106 (fold_using_range::range_of_builtin_call): Delete.
1107 (fold_using_range::range_of_builtin_int_call): Delete.
1108 * gimple-range-fold.h: Adjust prototypes.
1109 * gimple-range-op.cc (class cfn_parity): New.
1110 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1111
1112 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1113
1114 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1115 for CFN_GOACC_DIM_*.
1116 * gimple-range-op.cc (class cfn_goacc_dim): New.
1117 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1118
1119 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1120
1121 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1122 for CFN_BUILT_IN_STRLEN.
1123 * gimple-range-op.cc (class cfn_strlen): New.
1124 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1125
1126 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1127
1128 * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete.
1129 (range_of_builtin_int_call): Remove cases for
1130 CFN_BUILT_IN_UBSAN_CHECK.
1131 * gimple-range-op.cc (class cfn_ubsan): New.
1132 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1133
1134 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1135
1136 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1137 for CFN_BUILT_IN_CLRSB.
1138 * gimple-range-op.cc (class cfn_clrsb): New.
1139 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1140
1141 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1142
1143 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1144 for CFN_CTZ.
1145 * gimple-range-op.cc (class cfn_ctz): New.
1146 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1147
1148 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1149
1150 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1151 for CFN_CLZ.
1152 * gimple-range-op.cc (class cfn_clz): New.
1153 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1154
1155 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1156
1157 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1158 for CFN_FFS and CFN_POPCOUNT.
1159 * gimple-range-op.cc (class cfn_pocount): New.
1160 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1161
1162 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1163
1164 * gimple-range-fold.cc (get_letter_range): Move to new class.
1165 (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER
1166 and CFN_BUILT_IN_TOLOWER.
1167 * gimple-range-op.cc (class cfn_toupper_tolower): New.
1168 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1169
1170 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1171
1172 * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1173 for CFN_BUILT_IN_SIGNBIT.
1174 * gimple-range-op.cc (class cfn_signbit): New.
1175 (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1176
1177 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1178
1179 * gimple-range-fold.cc
1180 (fold_using_range::range_of_builtin_int_call): Remove case for
1181 CFN_BUILT_IN_CONSTANT_P.
1182 * gimple-range-op.cc (gimple_range_op_handler::supported_p):
1183 Check if a call also creates a range-op object.
1184 (gimple_range_op_handler): Also check builtin calls.
1185 (class cfn_constant_float_p): New. Float CFN_BUILT_IN_CONSTANT_P.
1186 (class cfn_constant_p): New. Integral CFN_BUILT_IN_CONSTANT_P.
1187 (gimple_range_op_handler::maybe_builtin_call): Set arguments and
1188 handler for supported built-in calls.
1189 * gimple-range-op.h (maybe_builtin_call): New prototype.
1190
1191 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1192
1193 * gimple-range-fold.cc (range_of_range_op): Set result to
1194 VARYING if the call to fold_range fails.
1195 * tree-data-ref.cc (compute_distributive_range): Ditto.
1196 * tree-vrp.cc (range_fold_binary_expr): Ditto.
1197 (range_fold_unary_expr): Ditto.
1198 * value-query.cc (range_query::get_tree_range): Ditto.
1199
1200 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1201
1202 * range-op-float.cc (range_operator_float::fold_range): New base
1203 method for "int = float op int".
1204 * range-op.cc (range_op_handler::fold_range): New case.
1205 * range-op.h: Update prototypes.
1206
1207 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1208
1209 * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
1210 operand 1 for second range if there is no operand 2.
1211
1212 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1213
1214 * Makefile.in (OBJS): Add gimple-range-op.o.
1215 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use
1216 gimple_range_op_handler.
1217 * gimple-range-fold.cc (gimple_range_base_of_assignment): Move
1218 to a method in gimple_range_op_handler.
1219 (gimple_range_operand1): Ditto.
1220 (gimple_range_operand2): Ditto.
1221 (fold_using_range::fold_stmt): Use gimple_range_op_handler.
1222 (fold_using_range::range_of_range_op): Ditto.
1223 (fold_using_range::relation_fold_and_or): Ditto.
1224 (fur_source::register_outgoing_edges): Ditto.
1225 (gimple_range_ssa_names): Relocate to gimple-range-op.cc.
1226 * gimple-range-fold.h: Adjust prototypes.
1227 * gimple-range-gori.cc (gimple_range_calc_op1): Move
1228 to a method in gimple_range_op_handler.
1229 (gimple_range_calc_op2): Ditto.
1230 (gori_compute::compute_operand_range): Use
1231 gimple_range_op_handler.
1232 (gori_compute::compute_logical_operands): Ditto.
1233 (compute_operand1_range): Ditto.
1234 (gori_compute::compute_operand2_range): Ditto.
1235 (gori_compute::compute_operand1_and_operand2_range): Ditto.
1236 * gimple-range-gori.h: Adjust protoypes.
1237 * gimple-range-op.cc: New. Supply gimple_range_op_handler methods.
1238 * gimple-range-op.h: New. Supply gimple_range_op_handler class.
1239 * gimple-range.cc (gimple_ranger::prefill_name): Use
1240 gimple_range_op_handler.
1241 (gimple_ranger::prefill_stmt_dependencies): Ditto.
1242 * gimple-range.h: Include gimple-range-op.h.
1243 * range-op.cc (range_op_handler::range_op_handler): Adjust and
1244 remove gimple * parameter option.
1245 * range-op.h: Adjust prototypes.
1246
1247 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1248
1249 * range-op.cc (range_op_handler::set_op_handler): Set new fields.
1250 (ange_op_handler::range_op_handler): Likewise.
1251 (range_op_handler::operator bool): Remove.
1252 (range_op_handler::fold_range): Use appropriate handler.
1253 (range_op_handler::op1_range): Likewise.
1254 (range_op_handler::op2_range): Likewise.
1255 (range_op_handler::lhs_op1_relation): Likewise.
1256 (range_op_handler::lhs_op2_relation): Likewise.
1257 (range_op_handler::op1_op2_relation): Likewise.
1258 * range-op.h (class range_op_handler): Store handler pointers.
1259 (range_op_handler:: operator bool): Inline.
1260
1261 2022-09-22 Andrew MacLeod <amacleod@redhat.com>
1262
1263 * tree-ssa-threadbackward.cc
1264 (back_threader::find_paths_to_names): Replace sequence with
1265 a call to gimple_range_ssa_names.
1266
1267 2022-09-22 Martin Liska <mliska@suse.cz>
1268 Fangrui Song <i@maskray.me>
1269
1270 * configure: Regenerate.
1271 * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1}
1272 and gcc_cv_as_compress_debug={0,1}.
1273 * doc/invoke.texi: Document the removal.
1274 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore
1275 zlib-gnu.
1276 (ASM_COMPRESS_DEBUG_SPEC): Likewise.
1277
1278 2022-09-22 Richard Biener <rguenther@suse.de>
1279
1280 PR tree-optimization/106922
1281 * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member.
1282 (vn_walk_cb_data::finish): Perform delayed verification of
1283 a skipped may-alias.
1284 (vn_reference_lookup_pieces): Likewise.
1285 (vn_reference_lookup): Likewise.
1286 (vn_reference_lookup_3): When skipping stores of the same
1287 value also handle constant stores that are more than a
1288 single VDEF away by delaying the verification.
1289
1290 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
1291
1292 * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
1293 definition.
1294
1295 2022-09-22 Max Filippov <jcmvbkbc@gmail.com>
1296
1297 * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk)
1298 (xtensa_output_mi_thunk): New functions.
1299 (TARGET_ASM_CAN_OUTPUT_MI_THUNK)
1300 (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions.
1301 (xtensa_prepare_expand_call): Use fixed register a8 as temporary
1302 when called with reload_completed set to 1.
1303
1304 2022-09-22 Richard Biener <rguenther@suse.de>
1305
1306 PR tree-optimization/99407
1307 * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
1308 (dse_classify_store): Use data-ref analysis to disambiguate more uses.
1309 (pass_dse::use_dr_analysis_p): New pass parameter.
1310 (pass_dse::set_pass_param): Implement.
1311 (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
1312 * passes.def: Allow DR analysis for the DSE pass before loop.
1313
1314 2022-09-22 Richard Biener <rguenther@suse.de>
1315
1316 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
1317 function split out from ...
1318 (vn_nary_op_insert_pieces_predicated): ... here.
1319
1320 2022-09-22 liuhongt <hongtao.liu@intel.com>
1321
1322 PR target/106994
1323 * config/i386/mmx.md (floorv2sf2): Fix typo, use
1324 register_operand instead of vector_operand for operands[1].
1325
1326 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
1327
1328 PR tree-optimization/106967
1329 * value-range.cc (frange::set): Set known NANs to undefined for
1330 flag_finite_math_only.
1331
1332 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
1333
1334 * value-range.cc (frange::combine_zeros): Call set_undefined.
1335 (frange::intersect_nans): Same.
1336 (frange::intersect): Same.
1337 (frange::verify_range): Undefined ranges do not have a type.
1338 * value-range.h (frange::set_undefined): Clear NAN flags and type.
1339
1340 2022-09-21 Richard Biener <rguenther@suse.de>
1341
1342 PR tree-optimization/106984
1343 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
1344 a separate statement.
1345
1346 2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1347
1348 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
1349 EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
1350 OPTION_DEFAULT_SPECS.
1351 (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
1352 local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
1353 is given.
1354 (CONFIG_TUNE_SPEC): Define.
1355 (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
1356
1357 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
1358
1359 PR tree-optimization/106967
1360 * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
1361 (foperator_equal::op1_range): Same.
1362 (foperator_not_equal::fold_range): Same.
1363 (foperator_not_equal::op1_range): Same.
1364 (foperator_lt::fold_range): Same.
1365 (foperator_lt::op1_range): Same.
1366 (foperator_lt::op2_range): Same.
1367 (foperator_le::fold_range): Same.
1368 (foperator_le::op1_range): Same.
1369 (foperator_le::op2_range): Same.
1370 (foperator_gt::fold_range): Same.
1371 (foperator_gt::op1_range): Same.
1372 (foperator_gt::op2_range): Same.
1373 (foperator_ge::fold_range): Same.
1374 (foperator_ge::op1_range): Same.
1375 (foperator_ge::op2_range): Same.
1376 (foperator_unordered::op1_range): Same.
1377 (foperator_ordered::fold_range): Same.
1378 (foperator_ordered::op1_range): Same.
1379 (build_le): Assert that we don't have a NAN.
1380 (build_lt): Same.
1381 (build_gt): Same.
1382 (build_ge): Same.
1383
1384 2022-09-21 liuhongt <hongtao.liu@intel.com>
1385
1386 PR tree-optimization/106963
1387 * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
1388 vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
1389
1390 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
1391
1392 * value-range.h (frange::maybe_isnan): Return false for
1393 undefined ranges.
1394
1395 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
1396
1397 * value-range.cc (frange::set_nonnegative): Set +NAN.
1398 (range_tests_signed_zeros): New test.
1399 * value-range.h (frange::update_nan): New overload to set NAN sign.
1400
1401 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
1402
1403 PR target/106491
1404 * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
1405 (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
1406 markup to (new) extern declarations instead of to the main
1407 definition.
1408
1409 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
1410
1411 PR tree-optimization/106794
1412 PR tree-optimization/106914
1413 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
1414 Only consider loads that already have a permutation.
1415 (vect_optimize_slp_pass::start_choosing_layouts): Assert that
1416 loads with permutations are leaf nodes. Prevent any kind of grouped
1417 access from changing layout if it doesn't have a load permutation.
1418
1419 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
1420
1421 * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
1422 early-out optimisation to SSA_NAMEs.
1423
1424 2022-09-20 Martin Liska <mliska@suse.cz>
1425
1426 * ctfc.cc (ctf_add_string): Replace "the the" with "the".
1427 * doc/md.texi: Likewise.
1428 * gimple-range-infer.cc (non_null_loadstore): Likewise.
1429
1430 2022-09-20 liuhongt <hongtao.liu@intel.com>
1431
1432 PR target/106910
1433 * config/i386/mmx.md (nearbyintv2sf2): New expander.
1434 (rintv2sf2): Ditto.
1435 (ceilv2sf2): Ditto.
1436 (lceilv2sfv2si2): Ditto.
1437 (floorv2sf2): Ditto.
1438 (lfloorv2sfv2si2): Ditto.
1439 (btruncv2sf2): Ditto.
1440 (lrintv2sfv2si2): Ditto.
1441 (roundv2sf2): Ditto.
1442 (lroundv2sfv2si2): Ditto.
1443 (*mmx_roundv2sf2): New define_insn.
1444
1445 2022-09-20 konglin1 <lingling.kong@intel.com>
1446
1447 PR middle-end/105735
1448 * tree-scalar-evolution.cc
1449 (analyze_and_compute_bitop_with_inv_effect): New function.
1450 (final_value_replacement_loop): Enhanced to handle bitop
1451 with inv induction.
1452
1453 2022-09-20 Xi Ruoyao <xry111@xry111.site>
1454
1455 * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
1456 -static-pie, pass -static -pie --no-dynamic-linker -z text to
1457 the linker, and do not pass --dynamic-linker.
1458
1459 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
1460
1461 * value-range.cc (frange::flush_denormals_to_zero): New.
1462 (frange::set): Call flush_denormals_to_zero.
1463 * value-range.h (class frange): Add flush_denormals_to_zero.
1464
1465 2022-09-20 liuhongt <hongtao.liu@intel.com>
1466
1467 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
1468 latest Intel processors.
1469
1470 2022-09-20 konglin1 <lingling.kong@intel.com>
1471
1472 PR target/106887
1473 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
1474 Fixed V16BF mode case.
1475
1476 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
1477
1478 * targhooks.cc (default_zero_call_used_regs): Improve sorry
1479 message.
1480
1481 2022-09-18 Julian Brown <julian@codesourcery.com>
1482
1483 * gimplify.cc (omp_segregate_mapping_groups): Update comment.
1484 (gimplify_adjust_omp_clauses): Move ATTACH and
1485 ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
1486 for offloaded OpenMP regions.
1487
1488 2022-09-18 Jakub Jelinek <jakub@redhat.com>
1489
1490 PR middle-end/106831
1491 * value-range.cc (frange::singleton_p): Avoid propagating long
1492 doubles that may have multiple representations.
1493
1494 2022-09-18 Aldy Hernandez <aldyh@redhat.com>
1495
1496 * range-op-float.cc (frange_add_zeros): Replace set_signbit with
1497 union of zero.
1498 * value-query.cc (range_query::get_tree_range): Remove set_signbit
1499 use.
1500 * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
1501 Remove.
1502 (vrange_printer::print_frange_nan): New.
1503 * value-range-pretty-print.h (print_frange_prop): Remove.
1504 (print_frange_nan): New.
1505 * value-range-storage.cc (frange_storage_slot::set_frange): Set
1506 kind and NAN fields.
1507 (frange_storage_slot::get_frange): Restore kind and NAN fields.
1508 * value-range-storage.h (class frange_storage_slot): Add kind and
1509 NAN fields.
1510 * value-range.cc (frange::update_nan): Remove.
1511 (frange::set_signbit): Remove.
1512 (frange::set): Adjust for NAN fields.
1513 (frange::normalize_kind): Remove m_props.
1514 (frange::combine_zeros): New.
1515 (frange::union_nans): New.
1516 (frange::union_): Handle new NAN fields.
1517 (frange::intersect_nans): New.
1518 (frange::intersect): Handle new NAN fields.
1519 (frange::operator=): Same.
1520 (frange::operator==): Same.
1521 (frange::contains_p): Same.
1522 (frange::singleton_p): Remove special case for signed zeros.
1523 (frange::verify_range): Adjust for new NAN fields.
1524 (frange::set_zero): Handle signed zeros.
1525 (frange::set_nonnegative): Same.
1526 (range_tests_nan): Adjust tests.
1527 (range_tests_signed_zeros): Same.
1528 (range_tests_signbit): Same.
1529 (range_tests_floats): Same.
1530 * value-range.h (class fp_prop): Remove.
1531 (FP_PROP_ACCESSOR): Remove.
1532 (class frange_props): Remove
1533 (frange::lower_bound): NANs don't have endpoints.
1534 (frange::upper_bound): Same.
1535 (frange_props::operator==): Remove.
1536 (frange_props::union_): Remove.
1537 (frange_props::intersect): Remove.
1538 (frange::update_nan): New.
1539 (frange::clear_nan): New.
1540 (frange::undefined_p): New.
1541 (frange::set_nan): New.
1542 (frange::known_finite): Adjust for new NAN representation.
1543 (frange::maybe_isnan): Same.
1544 (frange::known_isnan): Same.
1545 (frange::signbit_p): Same.
1546 * gimple-range-fold.cc (range_of_builtin_int_call): Rename
1547 known_signbit_p into signbit_p.
1548
1549 2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1550
1551 * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
1552 to prevent warning.
1553
1554 2022-09-17 Jakub Jelinek <jakub@redhat.com>
1555
1556 PR tree-optimization/106958
1557 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
1558 id >= l, cast op to type1, otherwise to pointer_sized_int_node.
1559 If type has pointer type, cast exp to pointer_sized_int_node
1560 even when id < l.
1561
1562 2022-09-16 liuhongt <hongtao.liu@intel.com>
1563
1564 PR target/106910
1565 * config/i386/i386-builtins.cc
1566 (ix86_builtin_vectorized_function): Modernized with
1567 corresponding expanders.
1568 * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
1569 expander.
1570 (floor<mode>2): Ditto.
1571 (lfloor<mode><sseintvecmodelower>2): Ditto.
1572 (ceil<mode>2): Ditto.
1573 (lceil<mode><sseintvecmodelower>2): Ditto.
1574 (btrunc<mode>2): Ditto.
1575 (lround<mode><sseintvecmodelower>2): Ditto.
1576 (exp2<mode>2): Ditto.
1577
1578 2022-09-15 Joseph Myers <joseph@codesourcery.com>
1579
1580 * ginclude/float.h (INFINITY): Define only if
1581 [__FLT_HAS_INFINITY__].
1582
1583 2022-09-15 Richard Biener <rguenther@suse.de>
1584
1585 PR tree-optimization/106922
1586 * tree-ssa-pre.cc (translate_vuse_through_block): Only
1587 keep the VUSE if its def dominates PHIBLOCK.
1588 (prune_clobbered_mems): Rewrite logic so we check whether
1589 a value dies in a block when the VUSE def doesn't dominate it.
1590
1591 2022-09-15 Richard Biener <rguenther@suse.de>
1592
1593 * tree.cc (build_common_tree_nodes): Initialize void_list_node
1594 here.
1595
1596 2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com>
1597
1598 PR target/106550
1599 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
1600
1601 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
1602
1603 * range-op-float.cc (frange_add_zeros): New.
1604 (build_le): Call frange_add_zeros.
1605 (build_ge): Same.
1606 (foperator_equal::op1_range): Same.
1607 (foperator_not_equal::op1_range): Same.
1608
1609 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
1610
1611 * range-op-float.cc (build_le): Accept frange instead of number.
1612 (build_lt): Same.
1613 (build_ge): Same.
1614 (build_gt): Same.
1615 (foperator_lt::op1_range): Pass full range to build_*.
1616 (foperator_lt::op2_range): Same.
1617 (foperator_le::op1_range): Same.
1618 (foperator_le::op2_range): Same.
1619 (foperator_gt::op1_range): Same.
1620 (foperator_gt::op2_range): Same.
1621 (foperator_ge::op1_range): Same.
1622 (foperator_ge::op2_range): Same.
1623
1624 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
1625
1626 * value-range.cc (frange::set): Use set_nan.
1627 * value-range.h (frange::set_nan): Inline code originally in
1628 set().
1629
1630 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
1631
1632 * range-op-float.cc (frange_set_nan): Remove.
1633 (build_lt): Use set_nan, update_nan, clear_nan.
1634 (build_gt): Same.
1635 (foperator_equal::op1_range): Same.
1636 (foperator_not_equal::op1_range): Same.
1637 (foperator_lt::op1_range): Same.
1638 (foperator_lt::op2_range): Same.
1639 (foperator_le::op1_range): Same.
1640 (foperator_le::op2_range): Same.
1641 (foperator_gt::op1_range): Same.
1642 (foperator_gt::op2_range): Same.
1643 (foperator_ge::op1_range): Same.
1644 (foperator_ge::op2_range): Same.
1645 (foperator_unordered::op1_range): Same.
1646 (foperator_ordered::op1_range): Same.
1647 * value-query.cc (range_query::get_tree_range): Same.
1648 * value-range.cc (frange::set_nan): Same.
1649 (frange::update_nan): Same.
1650 (frange::union_): Same.
1651 (frange::intersect): Same.
1652 (range_tests_nan): Same.
1653 (range_tests_signed_zeros): Same.
1654 (range_tests_signbit): Same.
1655 (range_tests_floats): Same.
1656 * value-range.h (class frange): Add update_nan and clear_nan.
1657 (frange::set_nan): New.
1658
1659 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
1660
1661 * value-query.cc (range_query::get_tree_range): Remove check for overflow.
1662 * value-range-pretty-print.cc (vrange_printer::visit): Move read
1663 of type until after undefined_p is checked.
1664 * value-range.cc (frange::set): Remove asserts for REAL_CST.
1665 (frange::contains_p): Tidy up.
1666 (range_tests_nan): Add comment.
1667 * value-range.h (frange::type): Check for undefined_p.
1668 (frange::set_undefined): Remove set of endpoints.
1669
1670 2022-09-14 Julian Brown <julian@codesourcery.com>
1671
1672 * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
1673 GOMP_MAP_STRUCT (for reindexing).
1674 (omp_gather_mapping_groups): Reimplement using...
1675 (omp_gather_mapping_groups_1): This new function. Stop processing at
1676 GATHER_SENTINEL.
1677 (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
1678 (omp_index_mapping_groups): Reimplement using...
1679 (omp_index_mapping_groups_1): This new function. Handle
1680 REINDEX_SENTINEL.
1681 (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
1682 functions.
1683 (omp_tsort_mapping_groups_1): Adjust handling of base group being the
1684 same as current group. Use omp_mapped_by_containing_struct.
1685 (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
1686 and omp_reindex_mapping_groups. Robustify group deletion for reordered
1687 lists.
1688 (gimplify_scan_omp_clauses): Update calls to
1689 omp_build_struct_sibling_lists.
1690
1691 2022-09-14 Julian Brown <julian@codesourcery.com>
1692
1693 * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
1694 (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
1695 (insert_struct_comp_map): Refactor function into...
1696 (build_omp_struct_comp_nodes): This new function. Remove list handling
1697 and improve self-documentation.
1698 (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters. Move
1699 code to strip outer parts of address out of function, but strip no-op
1700 conversions.
1701 (omp_mapping_group): Add DELETED field for use during reindexing.
1702 (omp_strip_components_and_deref, omp_strip_indirections): New functions.
1703 (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
1704 (omp_gather_mapping_groups): Initialise DELETED field for new groups.
1705 (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
1706 (omp_siblist_insert_node_after, omp_siblist_move_node_after,
1707 omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
1708 helper functions.
1709 (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
1710 node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
1711 (omp_build_struct_sibling_lists): New function.
1712 (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
1713 struct_seen_clause, struct_deref_set. Call
1714 omp_build_struct_sibling_lists as pre-pass instead of handling sibling
1715 lists in the function's main processing loop.
1716 (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
1717 handling, unused now.
1718 * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
1719 struct references, and references to pointers to structs also.
1720
1721 2022-09-14 Richard Biener <rguenther@suse.de>
1722
1723 PR tree-optimization/106938
1724 * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
1725 edges for all last stmts in a block. Do EH cleanup
1726 only on the last stmt in a block.
1727
1728 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
1729
1730 PR tree-optimization/106936
1731 * value-query.cc (range_query::get_value_range): Remove assert.
1732
1733 2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1734
1735 * config/mips/mips.cc (mips_option_override): Drop unused variable.
1736
1737 2022-09-14 Julian Brown <julian@codesourcery.com>
1738
1739 * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
1740 functions.
1741 (omp_tsort_mark): Add enum.
1742 (omp_mapping_group): Add struct.
1743 (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
1744 omp_group_last, omp_gather_mapping_groups, omp_group_base,
1745 omp_index_mapping_groups, omp_containing_struct,
1746 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
1747 omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
1748 functions.
1749 (gimplify_scan_omp_clauses): Call above functions instead of
1750 omp_target_reorder_clauses, unless we've seen an error.
1751 * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
1752 sorted mapping groups.
1753
1754 2022-09-14 Jakub Jelinek <jakub@redhat.com>
1755
1756 PR tree-optimization/106878
1757 * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
1758 reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
1759 the second argument is INTEGER_CST, BIT_AND_EXPR.
1760 * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
1761 (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
1762 POINTER_TYPE_P or OFFSET_TYPE.
1763 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
1764 pointers cast them to pointer sized integers first.
1765
1766 2022-09-14 Richard Biener <rguenther@suse.de>
1767
1768 PR tree-optimization/106934
1769 * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
1770 of bitfields.
1771 (maybe_rewrite_mem_ref_base): Likewise.
1772
1773 2022-09-14 liuhongt <hongtao.liu@intel.com>
1774
1775 PR tree-optimization/106905
1776 * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
1777 false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
1778 LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
1779
1780 2022-09-13 Roger Sayle <roger@nextmovesoftware.com>
1781
1782 PR target/106877
1783 * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
1784 in gcc_assert.
1785
1786 2022-09-13 Max Filippov <jcmvbkbc@gmail.com>
1787
1788 Revert:
1789 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1790
1791 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
1792 New macro definition.
1793 (xtensa_constant_ok_for_cprop_p):
1794 Implement the hook as mentioned above.
1795
1796 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
1797
1798 PR target/104482
1799 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
1800 the equality check for argument number, and move this hunk ahead.
1801
1802 2022-09-13 Kewen.Lin <linkw@gcc.gnu.org>
1803
1804 PR target/105485
1805 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
1806 the handling for unresolved overloaded builtin function.
1807 (rs6000_expand_builtin): Likewise.
1808
1809 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
1810
1811 * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
1812 m_nstores, m_reduc_factor, m_gather_load and member function
1813 determine_suggested_unroll_factor.
1814 (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
1815 m_reduc_factor and m_gather_load.
1816 (rs6000_cost_data::determine_suggested_unroll_factor): New function.
1817 (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
1818 * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
1819 (rs6000-vect-unroll-issue): Likewise.
1820 (rs6000-vect-unroll-reduc-threshold): Likewise.
1821 * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
1822
1823 2022-09-13 Richard Biener <rguenther@suse.de>
1824
1825 PR middle-end/106909
1826 * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
1827 flag of a unreachable call.
1828
1829 2022-09-13 Richard Biener <rguenther@suse.de>
1830
1831 PR tree-optimization/106913
1832 * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
1833 ft_reachable on EXIT_BLOCK.
1834
1835 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
1836
1837 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
1838 TARGET_FLOAT instead of TARGET_SIMD.
1839 (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
1840 TARGET_SIMD.
1841 (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
1842 in GPRs.
1843 (aarch64_classify_address): Treat little-endian structure moves
1844 like big-endian for TARGET_FLOAT && !TARGET_SIMD.
1845 (aarch64_secondary_memory_needed): New function.
1846 (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
1847 in the same way as TF, TI and TD.
1848 (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
1849 (aarch64_rtx_costs): Likewise.
1850 (aarch64_register_move_cost): Treat a pair of 64-bit vectors
1851 separately from a single 128-bit vector. Handle the cost implied
1852 by aarch64_secondary_memory_needed.
1853 (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
1854 TARGET_SIMD.
1855 (aarch64_expand_vec_perm_const_1): Likewise.
1856 (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
1857 * config/aarch64/iterators.md (VTX): New iterator.
1858 * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
1859 (arch_enabled): Adjust accordingly.
1860 (@aarch64_reload_mov<TX:mode>): Extend to...
1861 (@aarch64_reload_mov<VTX:mode>): ...this.
1862 * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
1863 rather than TARGET_SIMD.
1864 (movmisalign<mode>): Likewise.
1865 (load_pair<DREG:mode><DREG2:mode>): Likewise.
1866 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
1867 (load_pair<VQ:mode><VQ2:mode>): Likewise.
1868 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
1869 (@aarch64_split_simd_mov<mode>): Likewise.
1870 (aarch64_get_low<mode>): Likewise.
1871 (aarch64_get_high<mode>): Likewise.
1872 (aarch64_get_half<mode>): Likewise. Canonicalize to a move for
1873 lowpart extracts.
1874 (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
1875 TARGET_SIMD. Use different w<-w and r<-w instructions for
1876 !TARGET_SIMD. Disable immediate moves for !TARGET_SIMD but
1877 add an alternative specifically for w<-Z.
1878 (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
1879 TARGET_SIMD. Likewise for the associated define_splits. Disable
1880 FPR moves and immediate moves for !TARGET_SIMD but add an alternative
1881 specifically for w<-Z.
1882 (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
1883 TARGET_SIMD. Restrict the existing alternatives to TARGET_SIMD
1884 but add a new r<-w one for !TARGET_SIMD.
1885 (*aarch64_get_high<mode>): New pattern.
1886 (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
1887 (store_pair_lanes<mode>): Likewise.
1888 (*aarch64_combine_internal<mode>): Likewise. Restrict existing
1889 w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
1890 alternative for !TARGET_SIMD.
1891 (*aarch64_combine_internal_be<mode>): Likewise.
1892 (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
1893 Remove bogus arch attribute.
1894 (*aarch64_combinez_be<mode>): Likewise.
1895 (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
1896 TARGET_SIMD.
1897 (aarch64_combine<mode>): Likewise.
1898 (aarch64_rev_reglist<mode>): Likewise.
1899 (mov<mode>): Likewise.
1900 (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
1901 !TARGET_SIMD, regardless of endianness. Extend associated
1902 define_splits in the same way, both for this pattern and the
1903 ones below.
1904 (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise. Restrict w<-w
1905 alternative to TARGET_SIMD.
1906 (*aarch64_be_movoi): Likewise.
1907 (*aarch64_be_movci): Likewise.
1908 (*aarch64_be_movxi): Likewise.
1909 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
1910 && !TARGET_SIMD, regardless of endianness. Restrict w<-w alternative
1911 to TARGET_SIMD for tuples of 128-bit vectors.
1912 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
1913 * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
1914 from DREG STP peephole. Change TARGET_SIMD to TARGET_FLOAT in
1915 the VQ and VP_2E LDP and STP peepholes.
1916
1917 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
1918
1919 * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
1920 condition. Likewise for the related define_split. Tweak formatting.
1921
1922 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1923
1924 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
1925 New macro definition.
1926 (xtensa_constant_ok_for_cprop_p):
1927 Implement the hook as mentioned above.
1928
1929 2022-09-12 Joseph Myers <joseph@codesourcery.com>
1930
1931 * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
1932 __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
1933
1934 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
1935
1936 * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
1937 a warning + not enabling offloading if -misa=sm_30 prevents
1938 reverse offload.
1939 (main): Use tool_name as progname for diagnostic.
1940 * config/gcn/mkoffload.cc (main): Likewise.
1941
1942 2022-09-12 Aldy Hernandez <aldyh@redhat.com>
1943
1944 * value-range.cc (frange::set_signbit): Avoid changing sign when
1945 already in the correct sign.
1946
1947 2022-09-12 Max Filippov <jcmvbkbc@gmail.com>
1948
1949 * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
1950 Recognize all 4 return registers.
1951 * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
1952 * config/xtensa/xtensa.md (untyped_call): New pattern.
1953
1954 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
1955
1956 * doc/extend.texi (Floating Types): Fix "_float128" typo.
1957
1958 2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1959
1960 * config/xtensa/xtensa.cc (xtensa_constantsynth):
1961 Add new pattern for the abovementioned case.
1962
1963 2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com>
1964 Segher Boessenkool <segher@kernel.crashing.org>
1965
1966 * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
1967
1968 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1969
1970 * config/xtensa/xtensa.md: Rewrite the split pattern that performs
1971 the abovementioned process so that insns that overwrite clobbered
1972 register no longer need to be contiguous.
1973 (DSC): Remove as no longer needed.
1974
1975 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1976
1977 * config/xtensa/xtensa.cc (machine_function): New boolean member as
1978 a flag that controls whether to emit the insns for stack pointer
1979 adjustment inside of the pro/epilogue.
1980 (xtensa_emit_adjust_stack_ptr): New function to share the common
1981 codes and to emit insns if not inhibited.
1982 (xtensa_expand_epilogue): Change to use the function mentioned
1983 above when using the CALL0 ABI.
1984 (xtensa_expand_prologue): Ditto.
1985 And also change to set the inhibit flag used by
1986 xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
1987 used for its own adjustment.
1988
1989 2022-09-09 David Malcolm <dmalcolm@redhat.com>
1990
1991 * doc/invoke.texi (Static Analyzer Options): Add
1992 -Wanalyzer-exposure-through-uninit-copy.
1993
1994 2022-09-09 David Malcolm <dmalcolm@redhat.com>
1995
1996 * Makefile.in (ANALYZER_OBJS): Add
1997 analyzer/known-function-manager.o.
1998
1999 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
2000
2001 * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
2002 (record_id): Store func name without quotes, store dim separately.
2003 (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
2004 at least sm_35, create '$offload_func_table' global array and init
2005 with reverse-offload function addresses.
2006 * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
2007 force_public attribute to force .visible.
2008 (nvptx_declare_function_name): For "omp target
2009 device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
2010
2011 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
2012
2013 * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
2014 similar to pre-existing .offload_var_table.
2015
2016 2022-09-09 Joseph Myers <joseph@codesourcery.com>
2017
2018 * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
2019 New macro.
2020
2021 2022-09-09 Kewen Lin <linkw@linux.ibm.com>
2022
2023 PR middle-end/106833
2024 * tree.cc (verify_opaque_type): New function.
2025 (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
2026
2027 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com>
2028
2029 * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
2030 FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
2031 * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
2032 * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
2033 MATH_UNOP_TRIG): New iterators.
2034 (math_unop): New attributes.
2035 (<math_unop><mode>2, <math_unop><mode>2<exec>,
2036 <math_unop><mode>2, <math_unop><mode>2<exec>,
2037 *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
2038 ldexp<mode>3, ldexp<mode>3<exec>,
2039 frexp<mode>_exp2, frexp<mode>_mant2,
2040 frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
2041 (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
2042 * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
2043 dconst1over2pi.
2044 (gcn_dconst1over2pi): New.
2045 (gcn_builtin_type_index): Add entry for v64df type.
2046 (v64df_type_node): New.
2047 (gcn_init_builtin_types): Initialize v64df_type_node.
2048 (gcn_expand_builtin_1): Expand new builtins to instructions.
2049 (print_operand): Fix assembler output for 1/(2*PI) constant.
2050 * config/gcn/gcn.md (unspec): Add new entries.
2051
2052 2022-09-09 Richard Biener <rguenther@suse.de>
2053
2054 PR tree-optimization/106722
2055 * tree-predcom.cc (ref_at_iteration): Do not associate the
2056 constant part of the offset into the MEM_REF offset
2057 operand, across a non-zero offset.
2058
2059 2022-09-09 Kito Cheng <kito.cheng@sifive.com>
2060
2061 * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
2062 Move forward for cover all all necessary functions for suppress
2063 unused function warnings.
2064 (riscv_multi_lib_check): Move forward, and tweak message to suppress
2065 -Werror=format-diag warning.
2066
2067 2022-09-09 Richard Biener <rguenther@suse.de>
2068
2069 PR tree-optimization/106881
2070 * gimple-predicate-analysis.cc (simple_control_dep_chain):
2071 Add only non-fallthru edges and avoid the same set of edges
2072 as compute_control_dep_chain_pdom does.
2073
2074 2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2075
2076 * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
2077 of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
2078 * doc/tm.texi: Regenerate.
2079
2080 2022-09-09 Martin Liska <mliska@suse.cz>
2081
2082 * optc-save-gen.awk: Always compare array option values with memcmp.
2083
2084 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
2085
2086 PR c++/106838
2087 * doc/extend.texi (Type Traits): Fix requirements. Document
2088 __is_aggregate and __is_final.
2089
2090 2022-09-08 Tim Lange <mail@tim-lange.me>
2091
2092 PR analyzer/106625
2093 * doc/invoke.texi:
2094 State that the checker also reasons about symbolic values.
2095
2096 2022-09-08 Richard Sandiford <richard.sandiford@arm.com>
2097
2098 PR tree-optimization/106886
2099 * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
2100 Fix copying of scalar stmts.
2101
2102 2022-09-08 Chung-Lin Tang <cltang@codesourcery.com>
2103
2104 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
2105
2106 2022-09-08 Richard Biener <rguenther@suse.de>
2107
2108 PR middle-end/106870
2109 * gimple-harden-conditionals.cc (insert_check_and_trap):
2110 Set the control-altering flag on the built IFN_TRAP.
2111 * gimple.cc (gimple_build_builtin_unreachable): Likewise.
2112 * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
2113 flag on the .ABNORMAL_DISPATCHER call.
2114 * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
2115 resetting the control altering flag for ECF_NORETURN calls.
2116 (cleanup_control_flow_bb): Set the control altering flag on
2117 discovered noreturn calls.
2118 * symtab-thunks.cc (expand_thunk): Set the control altering
2119 flag for the noreturn tailcall case.
2120 * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
2121 calls.
2122
2123 2022-09-08 Jakub Jelinek <jakub@redhat.com>
2124
2125 * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
2126 Add doacross(sink:omp_cur_iteration-1) support.
2127 (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
2128 Adjust expand_omp_ordered_sink caller.
2129 (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
2130 non-NULL, set that variable to true at the start of outermost
2131 non-collapsed loop and set it to false at the end of innermost
2132 ordered loop.
2133 (expand_omp_for_generic): If fd->ordered, allocate
2134 1 + (fd->ordered - fd->collapse) further elements in counts array.
2135 Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
2136 fd->ordered - 1 loop if any.
2137
2138 2022-09-08 Richard Biener <rguenther@suse.de>
2139
2140 PR tree-optimization/106881
2141 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
2142 Add only non-fallthru edges and avoid the same set of edges
2143 as the caller does.
2144
2145 2022-09-08 Aldy Hernandez <aldyh@redhat.com>
2146
2147 * gimple-range-fold.cc
2148 (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
2149 * range-op-float.cc (finite_operand_p): Same.
2150 (finite_operands_p): Same.
2151 (foperator_lt::fold_range): Same.
2152 (foperator_le::fold_range): Same.
2153 (foperator_gt::fold_range): Same.
2154 (foperator_ge::fold_range): Same.
2155 (foperator_unordered::fold_range): Same.
2156 (foperator_unordered::op1_range): Same.
2157 (foperator_ordered::fold_range): Same.
2158 * value-range.cc (frange::set_nan): Same.
2159 (frange::set_signbit): Same.
2160 (frange::union_): Same.
2161 (frange::intersect): Same.
2162 (frange::operator==): Same.
2163 (frange::singleton_p): Same.
2164 (frange::verify_range): Same.
2165 (range_tests_nan): Same.
2166 (range_tests_floats): Same.
2167 * value-range.h(frange::known_finite): New.
2168 (frange::maybe_inf): New.
2169 (frange::known_inf): New.
2170 (frange::maybe_nan): New.
2171 (frange::known_nan): New.
2172 (frange::known_signbit): New.
2173
2174 2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org>
2175
2176 * config/darwin-d.cc: Include tm.h.
2177 * config/dragonfly-d.cc: Likewise.
2178 * config/freebsd-d.cc: Remove memmodel.h.
2179 * config/glibc-d.cc: Likewise.
2180 * config/netbsd-d.cc: Include tm.h.
2181 * config/openbsd-d.cc: Likewise.
2182 * config/sol2-d.cc: Likewise.
2183
2184 2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
2185
2186 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
2187 MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
2188 (mve_vqshluq_m_n_s<mode>): Likewise.
2189 (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
2190 instead of mve_imm_8/Rb.
2191 (mve_vqrshrunbq_n_s<mode>): Likewise.
2192 (mve_vqrshrntq_n_<supf><mode>): Likewise.
2193 (mve_vqrshruntq_n_s<mode>): Likewise.
2194 (mve_vrshrnbq_n_<supf><mode>): Likewise.
2195 (mve_vrshrntq_n_<supf><mode>): Likewise.
2196 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
2197 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
2198 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
2199 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
2200 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
2201 (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
2202 of mve_imm_selective_upto_8/Rg.
2203 (mve_vsriq_m_n_<supf><mode>): Likewise.
2204
2205 2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com>
2206
2207 * config/rs6000/rs6000.md (splitter for set to and_mask constants):
2208 Use int_reg_operand (instead of int_reg_operand_not_pseudo).
2209 (splitter for multi-insn constant loads): Ditto.
2210
2211 2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
2212
2213 * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
2214 -mvrsave is present.
2215 * config/rs6000/t-rtems: Add -mvrsave multilib variants for
2216 -mcpu=e6500.
2217
2218 2022-09-07 Martin Liska <mliska@suse.cz>
2219
2220 * configure.ac: Restore detection of HAVE_XCOFF_DWARF_EXTRAS.
2221 * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
2222 * configure: Regenerate.
2223 * config.in: Regenerate.
2224
2225 2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com>
2226
2227 PR rtl-optimization/105586
2228 * sched-rgn.cc (save_state_for_fallthru_edge): New function.
2229 (schedule_region): Use it for all blocks.
2230
2231 2022-09-07 Joseph Myers <joseph@codesourcery.com>
2232
2233 * ginclude/stdalign.h [defined __STDC_VERSION__ &&
2234 __STDC_VERSION__ > 201710L]: Disable all content.
2235 * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
2236 > 201710L] (bool, true, false): Do not define.
2237
2238 2022-09-07 Martin Liska <mliska@suse.cz>
2239
2240 PR bootstrap/106855
2241 * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
2242 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
2243 Restore usage of XCOFF_DEBUGGING_INFO.
2244 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
2245 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
2246 XCOFF_DEBUGGING_INFO.
2247 (dw2_asm_output_nstring): Likewise.
2248 (USE_LINKONCE_INDIRECT): Likewise.
2249 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
2250 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
2251 (output_fde): Likewise.
2252 (output_call_frame_info): Likewise.
2253 (have_macinfo): Likewise.
2254 (add_AT_loc_list): Likewise.
2255 (add_AT_view_list): Likewise.
2256 (output_compilation_unit_header): Likewise.
2257 (output_pubnames): Likewise.
2258 (output_aranges): Likewise.
2259 (output_line_info): Likewise.
2260 (output_macinfo): Likewise.
2261 (dwarf2out_finish): Likewise.
2262 (dwarf2out_early_finish): Likewise.
2263
2264 2022-09-07 Richard Biener <rguenther@suse.de>
2265
2266 PR tree-optimization/106866
2267 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
2268 we changed cfun->calls_setjmp make sure to purge all
2269 abnormal call edges.
2270
2271 2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2272
2273 * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
2274 float LE comparing with zero for fpuv3.
2275 * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
2276 features are enabled.
2277
2278 2022-09-07 Richard Biener <rguenther@suse.de>
2279
2280 PR tree-optimization/106860
2281 * tree-ssa-loop-split.cc (split_loop): Find the exit to
2282 latch edge from the loop exit edge instead of from the
2283 latch. Verify we're going to find it.
2284
2285 2022-09-07 Richard Biener <rguenther@suse.de>
2286
2287 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
2288 Adjust to take the region exit source as argument.
2289 (uninit_analysis::init_from_phi_def): Adjust.
2290 (uninit_analysis::init_use_preds): Mark the dominating region
2291 before computing control dependences.
2292
2293 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
2294
2295 * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
2296 w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
2297 in that case. Extend w<-r to w<-Z.
2298 (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
2299 (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
2300 available.
2301 (define_split): Do not apply the floating-point immediate-to-register
2302 split to zeros, even if MOVI is not available.
2303
2304 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
2305
2306 * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
2307 Disallow use of FPRs in register asms for !TARGET_FLOAT.
2308
2309 2022-09-07 Lulu Cheng <chenglulu@loongson.cn>
2310
2311 PR target/106828
2312 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
2313 (TARGET_ASAN_SHADOW_OFFSET): New.
2314
2315 2022-09-07 Jakub Jelinek <jakub@redhat.com>
2316
2317 * doc/invoke.texi (-Wno-unicode): Document.
2318
2319 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
2320
2321 * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
2322
2323 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
2324
2325 * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
2326 replacements.
2327
2328 2022-09-07 liuhongt <hongtao.liu@intel.com>
2329
2330 PR tree-optimization/103144
2331 * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
2332 (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
2333 (vect_create_nonlinear_iv_init): New function.
2334 (vect_peel_nonlinear_iv_init): Ditto.
2335 (vect_create_nonlinear_iv_step): Ditto
2336 (vect_create_nonlinear_iv_vec_step): Ditto
2337 (vect_update_nonlinear_iv): Ditto
2338 (vectorizable_nonlinear_induction): Ditto.
2339 (vectorizable_induction): Call
2340 vectorizable_nonlinear_induction when induction_type is not
2341 vect_step_op_add.
2342 * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
2343 Update nonlinear iv for epilogue loop.
2344 * tree-vectorizer.h (enum vect_induction_op_type): New enum.
2345 (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
2346
2347 2022-09-06 Richard Biener <rguenther@suse.de>
2348
2349 PR tree-optimization/106754
2350 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
2351 New function, split out from compute_control_dep_chain. Handle
2352 loop-exit like conditions here by pushing to the control vector.
2353 (compute_control_dep_chain): Adjust and streamline dumping.
2354 In the wrapper perform a post-dominator walk as well.
2355 (uninit_analysis::init_use_preds): Remove premature early exit.
2356
2357 2022-09-06 Max Filippov <jcmvbkbc@gmail.com>
2358
2359 * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
2360
2361 2022-09-06 Aldy Hernandez <aldyh@redhat.com>
2362
2363 * range-op-float.cc (build_le): Handle NANs and going past infinity.
2364 (build_lt): Same.
2365 (build_ge): Same.
2366 (build_gt): Same.
2367 (foperator_lt::op1_range): Avoid adjustments to range if build_*
2368 returned false.
2369 (foperator_lt::op2_range): Same.
2370 (foperator_le::op1_range): Same.
2371 (foperator_le::op2_range): Same.
2372 (foperator_gt::op1_range): Same.
2373 (foperator_gt::op2_range): Same.
2374
2375 2022-09-06 Richard Biener <rguenther@suse.de>
2376
2377 * gimple-predicate-analysis.cc (compute_control_dep_chain):
2378 Add output flag to indicate whether we possibly have dropped
2379 any chains. Return whether the info is complete from the
2380 wrapping overload.
2381 (uninit_analysis::init_use_preds): Adjust accordingly, with
2382 a workaround for PR106754.
2383 (uninit_analysis::init_from_phi_def): Properly guard the
2384 case where we complete an empty chain.
2385
2386 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2387
2388 * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
2389
2390 2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2391
2392 * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
2393 type with same element type as arg0, and length as op2.
2394
2395 2022-09-06 Richard Biener <rguenther@suse.de>
2396
2397 PR tree-optimization/106844
2398 * gimple-predicate-analysis.cc (compute_control_dep_chain):
2399 Return whether we found a chain.
2400
2401 2022-09-06 Richard Biener <rguenther@suse.de>
2402
2403 PR tree-optimization/106841
2404 * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
2405 scatter/gather offset.
2406
2407 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2408
2409 * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
2410
2411 2022-09-06 Jakub Jelinek <jakub@redhat.com>
2412
2413 * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
2414 (gimple_omp_subcode): Use GIMPLE_OMP_ORDERED instead of
2415 GIMPLE_OMP_TEAMS as upper bound.
2416 (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
2417 inline functions.
2418 * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
2419 NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
2420 (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
2421 with NULL OMP_ORDERED_BODY.
2422 * omp-low.cc (check_omp_nesting_restrictions): Use
2423 gimple_omp_ordered_standalone_p test instead of
2424 omp_find_clause (..., OMP_CLAUSE_DOACROSS).
2425 (lower_omp_ordered): Likewise.
2426 * omp-expand.cc (expand_omp, build_omp_regions_1,
2427 omp_make_gimple_edges): Likewise.
2428
2429 2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2430
2431 * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
2432 (cskyv2_addcc_invert): Likewise.
2433
2434 2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com>
2435
2436 * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
2437 `insn'.
2438 (bpf_expand_epilogue): Likewise.
2439
2440 2022-09-06 liuhongt <hongtao.liu@intel.com>
2441
2442 * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
2443 Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
2444 * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
2445 (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
2446 (avx512f_vcvtps2ph512_mask_sae): New expander
2447
2448 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
2449
2450 * gimple-range-fold.cc
2451 (fold_using_range::range_of_builtin_int_call): Ignore sign bit
2452 when there's the possibility of a NAN.
2453
2454 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
2455
2456 * gimple-range-fold.cc
2457 (fold_using_range::range_of_builtin_int_call): Fold a set signbit
2458 in __builtin_signbit to nonzero.
2459
2460 2022-09-05 Alexander Monakov <amonakov@ispras.ru>
2461
2462 PR target/106453
2463 * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
2464 bits of operand 0 are consumed, and the result is zero-extended
2465 to 64 bits.
2466
2467 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
2468
2469 PR middle-end/106831
2470 * value-range.h (frange::supports_p): Disable decimal floats.
2471 * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
2472 check.
2473 (frange_drop_ninf): Same.
2474
2475 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
2476
2477 PR middle-end/106824
2478 * value-range.cc (frange::set_nan): Set undefined when updating a
2479 NAN to a non-NAN.
2480
2481 2022-09-05 Kito Cheng <kito.cheng@sifive.com>
2482
2483 * config/riscv/riscv.cc (riscv_option_override): Fix wrong
2484 condition for MASK_DIV and simplify incompatible checking.
2485 * config/riscv/riscv.md (muldi3): Adding parentheses.
2486
2487 2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2488
2489 * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
2490 string is a valid -mcpu string and emit hint.
2491
2492 2022-09-05 LiaoShihua <shihua@iscas.ac.cn>
2493
2494 * common/config/riscv/riscv-common.cc: Add Zmmul.
2495 * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
2496 (TARGET_ZMMUL): Ditto.
2497 * config/riscv/riscv.cc (riscv_option_override):Ditto.
2498 * config/riscv/riscv.md: Add Zmmul
2499 * config/riscv/riscv.opt: Ditto.
2500
2501 2022-09-05 Richard Biener <rguenther@suse.de>
2502
2503 * tree-cfg.h (get_cases_for_edge): Declare.
2504 * tree-cfg.cc (get_cases_for_edge): Export.
2505 * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
2506 Start and end recording case labels.
2507 * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
2508 (predicate::init_from_control_deps): Use get_cases_for_edge.
2509
2510 2022-09-05 Richard Biener <rguenther@suse.de>
2511
2512 * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
2513 (compute_control_dep_chain): Move uninit-control-dep-attempts
2514 checking where it also counts the post-dominator check
2515 invocations.
2516
2517 2022-09-05 Richard Biener <rguenther@suse.de>
2518
2519 * gimple-predicate-analysis.h (predicate::debug): New.
2520 (predicate::dump): Add FILE * argument, add base overload.
2521 * gimple-predicate-analysis.cc (debug): New.
2522 (dump_pred_info): Add FILE * argument.
2523 (dump_pred_chain): Likewise.
2524 (predicate::dump): Split out preamble into overload. Add
2525 FILE * argument.
2526 (predicate::debug): New.
2527 (predicate::simplify): Adjust.
2528 (predicate::normalize): Likewise.
2529 (predicate::init_from_control_deps): Likewise.
2530
2531 2022-09-05 Richard Sandiford <richard.sandiford@arm.com>
2532
2533 * config/aarch64/aarch64-protos.h
2534 (aarch64_init_simd_builtins): Remove prototype.
2535 * config/aarch64/aarch64-builtins.cc
2536 (aarch64_simd_builtins_initialized_p): Delete.
2537 (aarch64_init_simd_builtins): Make static. Remove protection
2538 against multiple calls.
2539 * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
2540 lazy SIMD builtin initialization.
2541 * config/aarch64/aarch64.cc
2542 (aarch64_option_valid_attribute_p): Likewise.
2543
2544 2022-09-05 Xi Ruoyao <xry111@xry111.site>
2545
2546 * config/loongarch/genopts/loongarch.opt.in: Add
2547 -mdirect-extern-access option.
2548 * config/loongarch/loongarch.opt: Regenerate.
2549 * config/loongarch/loongarch.cc
2550 (loongarch_symbol_binds_local_p): Return true if
2551 TARGET_DIRECT_EXTERN_ACCESS.
2552 (loongarch_option_override_internal): Complain if
2553 -mdirect-extern-access is used with -fPIC or -fpic.
2554 * doc/invoke.texi: Document -mdirect-extern-access for
2555 LoongArch.
2556
2557 2022-09-05 Martin Liska <mliska@suse.cz>
2558
2559 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
2560 DEBUGGER_REGNO.
2561 * doc/tm.texi: Regenerate.
2562
2563 2022-09-05 Martin Liska <mliska@suse.cz>
2564
2565 * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
2566 Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
2567 (aarch64_debugger_regno): Likewise.
2568 * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
2569 (aarch64_debugger_regno): Likewise.
2570 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
2571 (DEBUGGER_REGNO): Likewise.
2572 (DWARF_FRAME_REGNUM): Likewise.
2573 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
2574 * config/arc/arc.cc (arc_init_reg_tables): Likewise.
2575 * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
2576 (DEBUGGER_REGNO): Likewise.
2577 * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
2578 (arm_debugger_regno): Likewise.
2579 * config/arm/arm.cc (arm_dbx_regno): Likewise.
2580 (arm_debugger_regno): Likewise.
2581 * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
2582 (DEBUGGER_REGNO): Likewise.
2583 * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
2584 (DEBUGGER_REGNO): Likewise.
2585 * config/c6x/c6x.cc: Likewise.
2586 * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
2587 (DEBUGGER_REGNO): Likewise.
2588 * config/cris/cris.h (enum reg_class): Likewise.
2589 (DBX_REGISTER_NUMBER): Likewise.
2590 (DEBUGGER_REGNO): Likewise.
2591 * config/csky/csky.cc (enum reg_class): Likewise.
2592 * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
2593 (DBX_REGISTER_NUMBER): Likewise.
2594 (DEBUGGER_REGNO): Likewise.
2595 * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
2596 (DEBUGGER_REGNO): Likewise.
2597 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
2598 (DEBUGGER_REGNO): Likewise.
2599 * config/gcn/gcn.cc (print_operand): Likewise.
2600 * config/i386/bsd.h (ASM_QUAD): Likewise.
2601 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
2602 (DEBUGGER_REGNO): Likewise.
2603 (DWARF_FRAME_REGNUM): Likewise.
2604 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
2605 (DEBUGGER_REGNO): Likewise.
2606 * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
2607 (DEBUGGER_REGNO): Likewise.
2608 * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
2609 (DEBUGGER_REGNO): Likewise.
2610 * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
2611 (DEBUGGER_REGNO): Likewise.
2612 * config/i386/gas.h: Likewise.
2613 * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
2614 (DEBUGGER_REGNO): Likewise.
2615 * config/i386/i386.cc (enum reg_class): Likewise.
2616 * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
2617 (DEBUGGER_REGNO): Likewise.
2618 * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
2619 (DEBUGGER_REGNO): Likewise.
2620 * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
2621 (DEBUGGER_REGNO): Likewise.
2622 * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
2623 (DEBUGGER_REGNO): Likewise.
2624 * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
2625 (DEBUGGER_REGNO): Likewise.
2626 * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
2627 (DEBUGGER_REGNO): Likewise.
2628 * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
2629 (DEBUGGER_REGNO): Likewise.
2630 * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
2631 (DEBUGGER_REGNO): Likewise.
2632 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
2633 (DEBUGGER_REGNO): Likewise.
2634 * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
2635 (DEBUGGER_REGNO): Likewise.
2636 * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
2637 (ia64_debugger_regno): Likewise.
2638 * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
2639 (ia64_dbx_regno): Likewise.
2640 (ia64_debugger_regno): Likewise.
2641 (process_cfa_adjust_cfa): Likewise.
2642 (process_cfa_register): Likewise.
2643 (ia64_asm_unwind_emit): Likewise.
2644 * config/ia64/ia64.h: Likewise.
2645 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
2646 (DEBUGGER_REGNO): Likewise.
2647 * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
2648 (DEBUGGER_REGNO): Likewise.
2649 * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
2650 * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
2651 (DEBUGGER_REGNO): Likewise.
2652 * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
2653 (DEBUGGER_REGNO): Likewise.
2654 * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
2655 (DEBUGGER_REGNO): Likewise.
2656 (__transfer_from_trampoline): Likewise.
2657 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
2658 (DEBUGGER_REGNO): Likewise.
2659 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
2660 (DBX_REGISTER_NUMBER): Likewise.
2661 (DEBUGGER_REGNO): Likewise.
2662 * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
2663 * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
2664 (DEBUGGER_REGNO): Likewise.
2665 (GP_DBX_FIRST): Likewise.
2666 (GP_DEBUGGER_FIRST): Likewise.
2667 * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
2668 (DEBUGGER_REGNO): Likewise.
2669 * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
2670 (mmix_debugger_regno): Likewise.
2671 * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
2672 (mmix_debugger_regno): Likewise.
2673 * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
2674 (DEBUGGER_REGNO): Likewise.
2675 * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
2676 (nds32_debugger_regno): Likewise.
2677 * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
2678 (nds32_debugger_regno): Likewise.
2679 (nds32_use_blocks_for_constant_p): Likewise.
2680 * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
2681 (DEBUGGER_REGNO): Likewise.
2682 * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
2683 (DEBUGGER_REGNO): Likewise.
2684 * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
2685 (DEBUGGER_REGNO): Likewise.
2686 * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
2687 (DEBUGGER_REGNO): Likewise.
2688 * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
2689 (DEBUGGER_REGNO): Likewise.
2690 * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
2691 (rs6000_debugger_regno): Likewise.
2692 * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
2693 (rs6000_debugger_regno): Likewise.
2694 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
2695 (DEBUGGER_REGNO): Likewise.
2696 (DWARF2_FRAME_REG_OUT): Likewise.
2697 * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
2698 (DEBUGGER_REGNO): Likewise.
2699 * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
2700 (DEBUGGER_REGNO): Likewise.
2701 * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
2702 (DEBUGGER_REGNO): Likewise.
2703 * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
2704 (DEBUGGER_REGNO): Likewise.
2705 (SH_DBX_REGISTER_NUMBER): Likewise.
2706 (SH_DEBUGGER_REGNO): Likewise.
2707 * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
2708 (DEBUGGER_REGNO): Likewise.
2709 * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
2710 (DEBUGGER_REGNO): Likewise.
2711 * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
2712 (DEBUGGER_REGNO): Likewise.
2713 * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
2714 (DEBUGGER_REGNO): Likewise.
2715 * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
2716 (xtensa_debugger_regno): Likewise.
2717 * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
2718 (xtensa_debugger_regno): Likewise.
2719 * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
2720 (DEBUGGER_REGNO): Likewise.
2721 * defaults.h (DBX_REGISTER_NUMBER): Likewise.
2722 (DEBUGGER_REGNO): Likewise.
2723 (DWARF_FRAME_REGNUM): Likewise.
2724 * doc/tm.texi: Likewise.
2725 * doc/tm.texi.in: Likewise.
2726 * dwarf2out.cc (dbx_reg_number): Likewise.
2727 (debugger_reg_number): Likewise.
2728 (reg_loc_descriptor): Likewise.
2729 (multiple_reg_loc_descriptor): Likewise.
2730 (mem_loc_descriptor): Likewise.
2731 * except.cc: Likewise.
2732
2733 2022-09-05 konglin1 <lingling.kong@intel.com>
2734
2735 PR target/106742
2736 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
2737 Handle V8BF mode.
2738 (expand_vec_perm_broadcast_1): Ditto.
2739 * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
2740 (vec_set<mode>_0): Add @ to it.
2741 (@vec_set<mode>_0): Ditto.
2742 (vec_interleave_high<mode><mask_name>): Ditto.
2743 (@vec_interleave_high<mode><mask_name>): Ditto.
2744 (vec_interleave_low<mode><mask_name>): Ditto.
2745 (@vec_interleave_low<mode><mask_name>): Ditto.
2746 * config/i386/subst.md (SUBST_V): Add BF vector mode.
2747
2748 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
2749
2750 * value-range.cc (early_nan_resolve): Remove.
2751 (frange::intersect): Handle NANs.
2752
2753 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
2754
2755 * value-range.cc (frange::union_): Do not drop properties when
2756 unioning a NAN with something else.
2757 (range_tests_signed_zeros): Add tests.
2758
2759 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
2760
2761 * real.cc (encode_ieee_single): Use real_isdenormal.
2762 (encode_ieee_double): Same.
2763 (encode_ieee_extended): Same.
2764 (encode_ieee_quad): Same.
2765 (encode_ieee_half): Same.
2766 (encode_arm_bfloat_half): Same.
2767 * real.h (real_isdenormal): New.
2768
2769 2022-09-03 Aldy Hernandez <aldyh@redhat.com>
2770
2771 * value-range.cc (frange::singleton_p): Move NAN check to the top.
2772
2773 2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2774
2775 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
2776
2777 2022-09-03 Jakub Jelinek <jakub@redhat.com>
2778
2779 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
2780 (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
2781 and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
2782 (enum omp_clause_doacross_kind): New type.
2783 (struct tree_omp_clause): Add subcode.doacross_kind member.
2784 * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
2785 (OMP_CLAUSE_DOACROSS_KIND): Define.
2786 (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
2787 (OMP_CLAUSE_DOACROSS_DEPEND): Define.
2788 (OMP_CLAUSE_ORDERED_DOACROSS): Define.
2789 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
2790 OMP_CLAUSE_DOACROSS entries.
2791 * tree-nested.cc (convert_nonlocal_omp_clauses,
2792 convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
2793 * tree-pretty-print.cc (dump_omp_clause): Don't handle
2794 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. Handle
2795 OMP_CLAUSE_DOACROSS.
2796 * gimplify.cc (gimplify_omp_depend): Don't handle
2797 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
2798 (gimplify_scan_omp_clauses): Likewise. Handle OMP_CLAUSE_DOACROSS.
2799 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
2800 (find_standalone_omp_ordered): New function.
2801 (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
2802 body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
2803 set OMP_CLAUSE_ORDERED_DOACROSS.
2804 (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
2805 OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
2806 diagnostics that presence or absence of ordered clause parameter
2807 is irrelevant. Handle doacross(sink:omp_cur_iteration-1). Use
2808 actual user name of the clause - doacross or depend - in diagnostics.
2809 * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
2810 if !OMP_CLAUSE_ORDERED_DOACROSS (t). If
2811 OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
2812 set fd->ordered to -1 and set it after the loop in that case to
2813 fd->collapse.
2814 * omp-low.cc (check_omp_nesting_restrictions): Don't handle
2815 OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
2816 OMP_CLAUSE_DOACROSS. Use actual user name of the clause - doacross
2817 or depend - in diagnostics. Diagnose mixing of stand-alone and
2818 block associated ordered constructs binding to the same loop.
2819 (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
2820 instead handle OMP_CLAUSE_DOACROSS.
2821 (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
2822 OMP_CLAUSE_DEPEND.
2823 (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
2824 OMP_CLAUSE_DEPEND_SINK.
2825 * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
2826 doacross(sink:omp_cur_iteration-1).
2827 (expand_omp_ordered_source_sink): Use
2828 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
2829 OMP_CLAUSE_DEPEND_SINK_NEGATIVE. Use actual user name of the clause
2830 - doacross or depend - in diagnostics.
2831 (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
2832 OMP_CLAUSE_DEPEND.
2833 (build_omp_regions_1): Likewise.
2834 (omp_make_gimple_edges): Likewise.
2835 * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
2836 * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
2837 * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
2838
2839 2022-09-02 David Malcolm <dmalcolm@redhat.com>
2840
2841 PR c/90885
2842 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
2843
2844 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
2845
2846 PR d/105659
2847 * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
2848 * config/aarch64/aarch64-d.cc: Include tm_d.h.
2849 * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
2850 config/aarch64/aarch64-d.h.
2851 (aarch64_d_register_target_info): Likewise.
2852 * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
2853 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2854 * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
2855 tm_p.h.
2856 * config/arm/arm-protos.h (arm_d_target_versions): Move to
2857 config/arm/arm-d.h.
2858 (arm_d_register_target_info): Likewise.
2859 * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
2860 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2861 * config/default-d.cc: Remove memmodel.h include.
2862 * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
2863 * config/glibc-d.cc: Likewise.
2864 * config/i386/i386-d.cc: Include tm_d.h.
2865 * config/i386/i386-protos.h (ix86_d_target_versions): Move to
2866 config/i386/i386-d.h.
2867 (ix86_d_register_target_info): Likewise.
2868 (ix86_d_has_stdcall_convention): Likewise.
2869 * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
2870 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2871 (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
2872 * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
2873 * config/mips/mips-d.cc: Include tm_d.h.
2874 * config/mips/mips-protos.h (mips_d_target_versions): Move to
2875 config/mips/mips-d.h.
2876 (mips_d_register_target_info): Likewise.
2877 * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
2878 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2879 * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
2880 * config/openbsd-d.cc: Likewise.
2881 * config/pa/pa-d.cc: Include tm_d.h.
2882 * config/pa/pa-protos.h (pa_d_target_versions): Move to
2883 config/pa/pa-d.h.
2884 (pa_d_register_target_info): Likewise.
2885 * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
2886 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2887 * config/riscv/riscv-d.cc: Include tm_d.h.
2888 * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
2889 config/riscv/riscv-d.h.
2890 (riscv_d_register_target_info): Likewise.
2891 * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
2892 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2893 * config/rs6000/rs6000-d.cc: Include tm_d.h.
2894 * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
2895 config/rs6000/rs6000-d.h.
2896 (rs6000_d_register_target_info): Likewise.
2897 * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
2898 (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
2899 * config/s390/s390-d.cc: Include tm_d.h.
2900 * config/s390/s390-protos.h (s390_d_target_versions): Move to
2901 config/s390/s390-d.h.
2902 (s390_d_register_target_info): Likewise.
2903 * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
2904 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2905 * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
2906 * config/sparc/sparc-d.cc: Include tm_d.h.
2907 * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
2908 config/sparc/sparc-d.h.
2909 (sparc_d_register_target_info): Likewise.
2910 * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
2911 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2912 * configure: Regenerate.
2913 * configure.ac (tm_d_file): Remove defaults.h.
2914 (tm_d_include_list): Remove options.h and insn-constants.h.
2915 * config/aarch64/aarch64-d.h: New file.
2916 * config/arm/arm-d.h: New file.
2917 * config/i386/i386-d.h: New file.
2918 * config/mips/mips-d.h: New file.
2919 * config/pa/pa-d.h: New file.
2920 * config/riscv/riscv-d.h: New file.
2921 * config/rs6000/rs6000-d.h: New file.
2922 * config/s390/s390-d.h: New file.
2923 * config/sparc/sparc-d.h: New file.
2924
2925 2022-09-02 Aldy Hernandez <aldyh@redhat.com>
2926
2927 * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
2928 (fold_builtin_fpclassify): Same.
2929 * fold-const-call.cc (fold_const_call_cc): Same.
2930 * match.pd: Same.
2931 * omp-low.cc (omp_reduction_init_op): Same.
2932 * realmpfr.cc (real_from_mpfr): Same.
2933 * tree.cc (build_complex_inf): Same.
2934
2935 2022-09-02 Peter Bergner <bergner@linux.ibm.com>
2936
2937 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
2938 NOP_EXPR for MMA pointer casting.
2939
2940 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
2941
2942 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
2943 Reduce the fallback cost to 1. Only use it if the number of
2944 input lanes is equal to the number of output lanes.
2945
2946 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
2947
2948 PR tree-optimization/106787
2949 * tree-vect-slp.cc (vect_map_to_instance): New function, split out
2950 from...
2951 (vect_bb_partition_graph_r): ...here. Replace the visited set
2952 with a map from nodes to instances. Ensure that a node only
2953 appears in one partition.
2954 (vect_bb_partition_graph): Update accordingly.
2955
2956 2022-09-02 Richard Biener <rguenther@suse.de>
2957
2958 * timevar.def (TV_TREE_RPO_VN): New.
2959 * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
2960 * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
2961 (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
2962 (pass_fre::execute): Adjust.
2963 * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
2964
2965 2022-09-02 Richard Biener <rguenther@suse.de>
2966
2967 PR tree-optimization/106809
2968 * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
2969 more than one successor before doing extra work.
2970
2971 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
2972
2973 * common/config/riscv/riscv-common.cc: Include <vector>.
2974 (struct riscv_multi_lib_info_t): New.
2975 (riscv_subset_list::match_score): Ditto.
2976 (find_last_appear_switch): Ditto.
2977 (prefixed_with): Ditto.
2978 (struct multi_lib_info_t): Ditto.
2979 (riscv_current_arch_str): Ditto.
2980 (riscv_current_abi_str): Ditto.
2981 (riscv_multi_lib_info_t::parse): Ditto.
2982 (riscv_check_cond): Ditto.
2983 (riscv_check_conds): Ditto.
2984 (riscv_compute_multilib): Ditto.
2985 (TARGET_COMPUTE_MULTILIB): Defined.
2986 * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
2987 doing link.
2988 (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
2989 * config/riscv/riscv.h (riscv_multi_lib_check): New.
2990 (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
2991 * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
2992
2993 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
2994
2995 * common/common-target.def (compute_multilib): New.
2996 * common/common-targhooks.h (default_compute_multilib): New.
2997 * common/common-targhooks.cc (default_compute_multilib): New.
2998 * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
2999 * doc/tm.texi: Regen.
3000 * gcc.cc: Include common/common-target.h.
3001 (set_multilib_dir) Call targetm_common.compute_multilib.
3002 (SWITCH_LIVE): Move to opts.h.
3003 (SWITCH_FALSE): Ditto.
3004 (SWITCH_IGNORE): Ditto.
3005 (SWITCH_IGNORE_PERMANENTLY): Ditto.
3006 (SWITCH_KEEP_FOR_GCC): Ditto.
3007 (struct switchstr): Ditto.
3008 * opts.h (SWITCH_LIVE): Move from gcc.c.
3009 (SWITCH_FALSE): Ditto.
3010 (SWITCH_IGNORE): Ditto.
3011 (SWITCH_IGNORE_PERMANENTLY): Ditto.
3012 (SWITCH_KEEP_FOR_GCC): Ditto.
3013 (struct switchstr): Ditto.
3014
3015 2022-09-02 Martin Liska <mliska@suse.cz>
3016
3017 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
3018 debugging format.
3019
3020 2022-09-02 Martin Liska <mliska@suse.cz>
3021
3022 * Makefile.in: Remove -gstabs option support, DBX-related
3023 macros and DBX debugging info support.
3024 * collect2.cc (scan_prog_file): Likewise.
3025 * common.opt: Likewise.
3026 * config.gcc: Likewise.
3027 * config.in: Likewise.
3028 * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
3029 * config/alpha/alpha.cc: Likewise.
3030 * config/alpha/elf.h (ASM_SPEC): Likewise.
3031 * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
3032 (DBX_CONTIN_LENGTH): Likewise.
3033 * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
3034 (DBX_CONTIN_LENGTH): Likewise.
3035 * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
3036 * config/darwin.h (DSYMUTIL_SPEC): Likewise.
3037 (ASM_DEBUG_SPEC): Likewise.
3038 (DBX_DEBUGGING_INFO): Likewise.
3039 (DBX_USE_BINCL): Likewise.
3040 (DBX_CONTIN_LENGTH): Likewise.
3041 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
3042 * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
3043 (DBX_CONTIN_LENGTH): Likewise.
3044 * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
3045 (DBX_CONTIN_LENGTH): Likewise.
3046 * config/i386/gas.h (DBX_NO_XREFS): Likewise.
3047 (DBX_CONTIN_LENGTH): Likewise.
3048 * config/ia64/ia64.h: Likewise.
3049 * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
3050 * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
3051 * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
3052 (DBX_CONTIN_LENGTH): Likewise.
3053 (DBX_CONTIN_CHAR): Likewise.
3054 * config/mips/mips.cc (mips_output_filename): Likewise.
3055 (mips_option_override): Likewise.
3056 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
3057 (DBX_DEBUGGING_INFO): Likewise.
3058 (DBX_CONTIN_LENGTH): Likewise.
3059 (DBX_REGISTER_NUMBER): Likewise.
3060 (GP_DBX_FIRST): Likewise.
3061 (FP_DBX_FIRST): Likewise.
3062 (MD_DBX_FIRST): Likewise.
3063 * config/nvptx/nvptx.cc: Likewise.
3064 * config/openbsd.h (DBX_NO_XREFS): Likewise.
3065 * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
3066 * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
3067 (DBX_CONTIN_LENGTH): Likewise.
3068 * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
3069 (DBX_USE_BINCL): Likewise.
3070 (DBX_LINES_FUNCTION_RELATIVE): Likewise.
3071 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
3072 * config/pdp11/pdp11.cc: Likewise.
3073 * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
3074 (PREFERRED_DEBUGGING_TYPE): Likewise.
3075 (DBX_CONTIN_LENGTH): Likewise.
3076 * config/rs6000/rs6000-builtin.cc: Likewise.
3077 * config/rs6000/rs6000-call.cc: Likewise.
3078 * config/rs6000/rs6000-logue.cc (defined): Likewise.
3079 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
3080 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
3081 (rs6000_xcoff_declare_function_name): Likewise.
3082 * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
3083 (DBX_FUNCTION_FIRST): Likewise.
3084 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
3085 * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
3086 * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
3087 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
3088 * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
3089 * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
3090 * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
3091 * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
3092 * config/vax/vax.cc (vax_file_start): Likewise.
3093 * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
3094 (DBX_CONTIN_LENGTH): Likewise.
3095 (DBX_CONTIN_CHAR): Likewise.
3096 (DBX_NO_XREFS): Likewise.
3097 (DBX_STATIC_STAB_DATA_SECTION): Likewise.
3098 * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
3099 (XCOFF_DEBUGGING_INFO): Likewise.
3100 * configure: Regenerate. Likewise.
3101 * configure.ac: Likewise.
3102 * debug.h: Likewise.
3103 * doc/install.texi: Likewise.
3104 * doc/invoke.texi: Likewise.
3105 * doc/passes.texi: Likewise.
3106 * doc/tm.texi: Likewise.
3107 * doc/tm.texi.in: Likewise.
3108 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
3109 (dw2_asm_output_nstring): Likewise.
3110 (USE_LINKONCE_INDIRECT): Likewise.
3111 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
3112 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
3113 (output_fde): Likewise.
3114 (output_call_frame_info): Likewise.
3115 (have_macinfo): Likewise.
3116 (add_AT_loc_list): Likewise.
3117 (add_AT_view_list): Likewise.
3118 (output_compilation_unit_header): Likewise.
3119 (output_pubnames): Likewise.
3120 (output_aranges): Likewise.
3121 (output_line_info): Likewise.
3122 (output_macinfo): Likewise.
3123 (dwarf2out_finish): Likewise.
3124 (dwarf2out_early_finish): Likewise.
3125 * final.cc (final_scan_insn_1): Likewise.
3126 (rest_of_handle_final): Likewise.
3127 * flag-types.h (enum debug_info_type): Likewise.
3128 (DBX_DEBUG): Likewise.
3129 (XCOFF_DEBUG): Likewise.
3130 * function.cc (defined): Likewise.
3131 * gcc.cc (defined): Likewise.
3132 (ASM_DEBUG_SPEC): Likewise.
3133 (ASM_DEBUG_OPTION_SPEC): Likewise.
3134 * opts.cc (common_handle_option): Likewise.
3135 (set_debug_level): Likewise.
3136 * system.h (fancy_abort): Likewise.
3137 * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
3138 (TARGET_ASM_DESTRUCTOR): Likewise.
3139 * toplev.cc (defined): Likewise.
3140 * varasm.cc: Likewise.
3141 * config/dbxcoff.h: Removed.
3142 * config/dbxelf.h: Removed.
3143 * dbxout.cc: Removed.
3144 * dbxout.h: Removed.
3145 * gstab.h: Removed.
3146 * stab.def: Removed.
3147 * xcoffout.cc: Removed.
3148 * xcoffout.h: Removed.
3149
3150 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
3151
3152 PR ipa/106627
3153 * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
3154 Set TREE_NOTHROW correctly for dispatcher declaration.
3155 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
3156 Likewise.
3157
3158 2022-09-01 Tamar Christina <tamar.christina@arm.com>
3159
3160 PR other/106782
3161 * config/aarch64/aarch64.cc
3162 (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
3163 HOST_WIDE_INT_PRINT_UNSIGNED.
3164
3165 2022-09-01 Richard Sandiford <richard.sandiford@arm.com>
3166
3167 * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
3168 VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
3169 to the number of vector elements, if that's a known constant.
3170 (vect_optimize_slp_pass::is_compatible_layout): Remove associated
3171 comment about zero SLP_TREE_LANES.
3172 (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
3173 all partition members when looking for potential layouts.
3174 Handle existing permutes of fixed-length vectors.
3175
3176 2022-09-01 Uroš Bizjak <ubizjak@gmail.com>
3177
3178 PR target/106707
3179 * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
3180 Do not convert a move pattern where both operands are AX_REG.
3181
3182 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
3183
3184 * range-op-float.cc (build_le): Convert to dconst*inf.
3185 (build_ge): Same.
3186 * value-range.cc (frange::set_signbit): Same.
3187 (frange::normalize_kind): Same.
3188 (range_tests_floats): Same.
3189 * value-range.h (vrp_val_max): Same.
3190 (vrp_val_min): Same.
3191 (frange::set_varying): Same.
3192
3193 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
3194
3195 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
3196 dconstninf.
3197 * real.h: Add dconstinf and dconstninf.
3198
3199 2022-09-01 Richard Biener <rguenther@suse.de>
3200
3201 * gimple-predicate-analysis.cc (compute_control_dep_chain):
3202 Remove cycle detection, instead avoid walking backedges.
3203
3204 2022-09-01 Richard Biener <rguenther@suse.de>
3205
3206 * gimple-predicate-analysis.cc (compute_control_dep_chain):
3207 New wrapping overload.
3208 (uninit_analysis::init_use_preds): Simplify.
3209 (uninit_analysis::init_from_phi_def): Likewise.
3210
3211 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
3212
3213 * gimple-range-fold.cc
3214 (fold_using_range::range_of_builtin_int_call): Add case for
3215 CFN_BUILT_IN_SIGNBIT.
3216
3217 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
3218
3219 * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
3220 bit.
3221 (foperator_not_equal::op1_range): Same.
3222 * value-query.cc (range_query::get_tree_range): Set sign bit.
3223 * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
3224 * value-range.cc (frange::set_signbit): New.
3225 (frange::set): Adjust for sign bit.
3226 (frange::normalize_kind): Same.
3227 (frange::union_): Remove useless comment.
3228 (frange::intersect): Same.
3229 (frange::contains_p): Adjust for sign bit.
3230 (frange::singleton_p): Same.
3231 (frange::verify_range): Same.
3232 (range_tests_signbit): New tests.
3233 (range_tests_floats): Call range_tests_signbit.
3234 * value-range.h (class frange_props): Add signbit
3235 (class frange): Same.
3236
3237 2022-09-01 Jakub Jelinek <jakub@redhat.com>
3238
3239 PR other/106782
3240 * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
3241 instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
3242 * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
3243 derived types of gimple to gimple * to avoid -Wformat warnings.
3244 * tree-vect-loop-manip.cc (vect_set_loop_condition,
3245 vect_update_ivs_after_vectorizer): Likewise.
3246 * tree-vect-stmts.cc (vectorizable_load): Likewise.
3247 * tree-vect-patterns.cc (vect_split_statement,
3248 vect_recog_mulhs_pattern, vect_recog_average_pattern,
3249 vect_determine_precisions_from_range,
3250 vect_determine_precisions_from_users): Likewise.
3251 * gimple-loop-versioning.cc
3252 (loop_versioning::analyze_term_using_scevs): Likewise.
3253 * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
3254 (vect_build_slp_tree): Cast slp_tree to void * to avoid
3255 -Wformat warnings.
3256 (optimize_load_redistribution_1, vect_match_slp_patterns,
3257 vect_build_slp_instance, vect_optimize_slp_pass::materialize,
3258 vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
3259 vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
3260 (vect_print_slp_tree): Likewise. Also use
3261 HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
3262 * tree-vect-loop.cc (vect_determine_vectorization_factor,
3263 vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
3264 vectorizable_induction, vect_transform_loop): Cast pointers to derived
3265 types of gimple to gimple * to avoid -Wformat warnings.
3266 (vect_analyze_loop_2): Cast slp_tree to void * to avoid
3267 -Wformat warnings.
3268 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
3269 instead of %d.
3270 * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
3271 instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
3272 instead of SLP_TREE_DEF_TYPE (node).
3273
3274 2022-09-01 Jakub Jelinek <jakub@redhat.com>
3275
3276 PR c++/106655
3277 * doc/invoke.texi (-Winvalid-utf8): Document it.
3278
3279 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
3280
3281 PR tree-optimization/106785
3282 * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
3283 (range_tests_floats): Same.
3284
3285 2022-09-01 konglin1 <lingling.kong@intel.com>
3286
3287 * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
3288 recognition.
3289
3290 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
3291
3292 PR target/101322
3293 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
3294 Enforce the use of a valid MMA pointer type.
3295
3296 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
3297
3298 * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
3299 registers.
3300
3301 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
3302
3303 * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
3304 (riscv_output_move): Add csrr vlenb assembly.
3305 * config/riscv/riscv.md (move_type): Add csrr vlenb type.
3306 (ext): New attribute.
3307 (ext_enabled): Ditto.
3308 (enabled): Ditto.
3309
3310 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
3311
3312 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
3313 "vr" constraint.
3314 (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
3315 (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
3316 (vp): Add poly constraint.
3317
3318 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
3319
3320 * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
3321
3322 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
3323
3324 * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
3325 configuration according to TARGET_MIN_VLEN.
3326 * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
3327
3328 2022-08-31 Martin Liska <mliska@suse.cz>
3329
3330 * config.build: Remove deprecated ports.
3331 * config.gcc: Likewise.
3332 * config.host: Likewise.
3333 * configure.ac: Likewise.
3334 * configure: Regenerate.
3335 * config/pa/pa-hpux10.h: Removed.
3336 * config/pa/pa-hpux10.opt: Removed.
3337 * config/pa/t-dce-thr: Removed.
3338
3339 2022-08-31 Martin Liska <mliska@suse.cz>
3340
3341 * Makefile.in: Always install limits.h and syslimits.h to
3342 include folder.
3343 * configure.ac: Assign STMP_FIXINC blank if
3344 --disable-fixincludes is used.
3345 * configure: Regenerate.
3346
3347 2022-08-31 Richard Biener <rguenther@suse.de>
3348
3349 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3350 Assert the guard_bb isn't empty and has more than one successor.
3351 Drop appropriate parts of the predicate when an edge fails to
3352 register a predicate.
3353 (predicate::dump): Dump empty predicate as TRUE.
3354
3355 2022-08-31 Richard Biener <rguenther@suse.de>
3356
3357 PR tree-optimization/90994
3358 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3359 Ignore exceptional control flow and skip the edge for the purpose of
3360 predicate generation also for non-calls.
3361
3362 2022-08-31 Aldy Hernandez <aldyh@redhat.com>
3363
3364 * value-range-storage.cc (frange_storage_slot::set_frange): Save
3365 endpoints.
3366 (frange_storage_slot::get_frange): Restore endpoints.
3367 * value-range-storage.h (class frange_storage_slot): Add endpoint
3368 fields.
3369
3370 2022-08-31 Martin Liska <mliska@suse.cz>
3371
3372 PR tree-optimization/106789
3373 * range-op-float.cc (default_frelop_fold_range): Remove the
3374 function.
3375
3376 2022-08-31 Martin Liska <mliska@suse.cz>
3377
3378 * value-range.h: Add more override keywords.
3379
3380 2022-08-31 Martin Liska <mliska@suse.cz>
3381
3382 * value-range.h: Add override.
3383
3384 2022-08-31 Richard Biener <rguenther@suse.de>
3385
3386 PR tree-optimization/65244
3387 * gimple-predicate-analysis.h (predicate::init_from_control_deps):
3388 Add argument to specify whether the predicate is for the USE.
3389 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3390 Also include predicates effective fallthru control edges when
3391 the predicate is for the USE.
3392
3393 2022-08-31 Richard Biener <rguenther@suse.de>
3394
3395 PR tree-optimization/73550
3396 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3397 Sanitize debug dumping. Handle case labels with a CASE_HIGH.
3398 (predicate::dump): Adjust for better readability.
3399
3400 2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3401 Jakub Jelinek <jakub@redhat.com>
3402
3403 * omp-simd-clone.cc (simd_clone_adjust_return_type,
3404 simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
3405 instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
3406
3407 2022-08-31 Richard Sandiford <richard.sandiford@arm.com>
3408
3409 * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
3410 argument.
3411
3412 2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai>
3413
3414 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
3415 initialize const_vf to 0.
3416
3417 2022-08-31 Martin Liska <mliska@suse.cz>
3418
3419 * config.gcc: Remove cr16.
3420
3421 2022-08-30 Martin Jambor <mjambor@suse.cz>
3422
3423 * vec.h (array_slice): Add constructors for non-const reference to
3424 heap vector and pointers to heap vectors.
3425
3426 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
3427
3428 * value-range.cc (early_nan_resolve): Change comment.
3429 (frange::union_): Handle union when one side is a NAN.
3430 (range_tests_nan): Add tests for NAN union.
3431
3432 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
3433
3434 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
3435 (gcn_simd_clone_adjust): New.
3436 (gcn_simd_clone_usable): New.
3437 (TARGET_SIMD_CLONE_ADJUST): New.
3438 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
3439 (TARGET_SIMD_CLONE_USABLE): New.
3440
3441 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
3442
3443 * doc/tm.texi: Regenerate.
3444 * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
3445 vecsize.
3446 (simd_clone_adjust_argument_types): Likewise.
3447 * target.def (compute_vecsize_and_simdlen): Document the new
3448 vecsize_int and vecsize_float semantics.
3449
3450 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
3451
3452 * expmed.cc (store_bit_field_1): Fix byte offset calculation
3453 for undefined structures.
3454
3455 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
3456
3457 * params.opt (-param=vect-max-layout-candidates=): New parameter.
3458 * doc/invoke.texi (vect-max-layout-candidates): Document it.
3459 * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
3460 (auto_load_permutation_t): Likewise.
3461 * tree-vect-slp.cc (vect_slp_node_weight): New function.
3462 (slpg_layout_cost): New class.
3463 (slpg_vertex): Replace perm_in and perm_out with partition,
3464 out_degree, weight and out_weight.
3465 (slpg_partition_info, slpg_partition_layout_costs): New classes.
3466 (vect_optimize_slp_pass): Likewise, cannibalizing some part of
3467 the previous vect_optimize_slp.
3468 (vect_optimize_slp): Use it.
3469
3470 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
3471
3472 * hash-traits.h (vec_hash_base): New class.
3473 (vec_free_hash_base): Likewise.
3474
3475 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
3476
3477 * hash-traits.h (int_hash_base): New struct, split out from...
3478 (int_hash): ...this class, which now inherits from int_hash_base.
3479 * hash-map-traits.h (unbounded_hashmap_traits): Take a template
3480 parameter for the key that provides hash and equality functions.
3481 (unbounded_int_hashmap_traits): Turn into a type alias of
3482 unbounded_hashmap_traits.
3483
3484 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
3485
3486 * graphds.cc (graphds_scc): Add a pass-back parameter for the
3487 final node order.
3488 * graphds.h (graphds_scc): Update prototype accordingly.
3489
3490 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
3491
3492 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
3493 (vect_transform_slp_perm_load): ...here. Use SLP_TREE_VECTYPE instead
3494 of STMT_VINFO_VECTYPE.
3495
3496 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
3497
3498 * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
3499 (vectorizable_slp_permutation): ...here.
3500
3501 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
3502
3503 * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
3504 that the requested number of units is interoperable with the requested
3505 prevailing mode.
3506
3507 2022-08-30 Martin Liska <mliska@suse.cz>
3508
3509 * config.gcc: Remove the port.
3510 * config/m32c/rtems.h: Removed.
3511
3512 2022-08-30 Richard Biener <rguenther@suse.de>
3513
3514 PR tree-optimization/73550
3515 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3516 Do not apply MAX_NUM_CHAINS again.
3517
3518 2022-08-30 Richard Biener <rguenther@suse.de>
3519
3520 * gimple-predicate-analysis.cc (format_edge_vec): Dump
3521 both source and destination.
3522 (dump_dep_chains): Remove.
3523 (uninit_analysis::init_use_preds): Remove redundant
3524 dumping of chains.
3525
3526 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
3527
3528 * value-range-storage.cc (frange_storage_slot::get_frange): Use
3529 frange_nan.
3530 * value-range.cc (frange::set_nan): New.
3531 (frange_nan): Move to header file.
3532 (range_tests_nan): Adjust frange_nan callers to pass type.
3533 New test.
3534 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
3535 (frange_nan): New.
3536
3537 2022-08-30 Richard Biener <rguenther@suse.de>
3538
3539 PR tree-optimization/67196
3540 * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
3541 Simplify and normalize use prediates before first use.
3542
3543 2022-08-30 Richard Biener <rguenther@suse.de>
3544
3545 * gimple-predicate-analysis.cc (dump_pred_chain): Fix
3546 parentizing and AND prepending.
3547 (predicate::dump): Do not dump the GENERIC expanded
3548 predicate, properly parentize and prepend ORs to the
3549 piecewise predicate dump.
3550 (build_pred_expr): Remove.
3551
3552 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
3553
3554 * range-op-float.cc (finite_operand_p): New.
3555 (build_le): New.
3556 (build_lt): New.
3557 (build_ge): New.
3558 (build_gt): New.
3559 (foperator_equal::fold_range): New implementation with endpoints.
3560 (foperator_equal::op1_range): Same.
3561 (foperator_not_equal::fold_range): Same.
3562 (foperator_not_equal::op1_range): Same.
3563 (foperator_lt::fold_range): Same.
3564 (foperator_lt::op1_range): Same.
3565 (foperator_lt::op2_range): Same.
3566 (foperator_le::fold_range): Same.
3567 (foperator_le::op1_range): Same.
3568 (foperator_le::op2_range): Same.
3569 (foperator_gt::fold_range): Same.
3570 (foperator_gt::op1_range): Same.
3571 (foperator_gt::op2_range): Same.
3572 (foperator_ge::fold_range): Same.
3573 (foperator_ge::op1_range): Same.
3574 (foperator_ge::op2_range): Same.
3575
3576 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
3577
3578 * range-op-float.cc (frange_set_nan): New.
3579 (frange_drop_inf): New.
3580 (frange_drop_ninf): New.
3581 (foperator_equal::op1_range): Adjust for endpoints.
3582 (foperator_lt::op1_range): Same.
3583 (foperator_lt::op2_range): Same.
3584 (foperator_gt::op1_range): Same.
3585 (foperator_gt::op2_range): Same.
3586 (foperator_unordered::op1_range): Same.
3587 * value-query.cc (range_query::get_tree_range): Same.
3588 * value-range-pretty-print.cc (vrange_printer::visit): Same.
3589 * value-range-storage.cc (frange_storage_slot::get_frange): Same.
3590 * value-range.cc (frange::set): Same.
3591 (frange::normalize_kind): Same.
3592 (frange::union_): Same.
3593 (frange::intersect): Same.
3594 (frange::operator=): Same.
3595 (early_nan_resolve): New.
3596 (frange::contains_p): New.
3597 (frange::singleton_p): New.
3598 (frange::set_nonzero): New.
3599 (frange::nonzero_p): New.
3600 (frange::set_zero): New.
3601 (frange::zero_p): New.
3602 (frange::set_nonnegative): New.
3603 (frange_float): New.
3604 (frange_nan): New.
3605 (range_tests_nan): New.
3606 (range_tests_signed_zeros): New.
3607 (range_tests_floats): New.
3608 (range_tests): New.
3609 * value-range.h (frange::lower_bound): New.
3610 (frange::upper_bound): New.
3611 (vrp_val_min): Use real_inf with a sign instead of negating inf.
3612 (frange::frange): New.
3613 (frange::set_varying): Adjust for endpoints.
3614 (real_max_representable): New.
3615 (real_min_representable): New.
3616
3617 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
3618
3619 * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
3620 for real zero.
3621
3622 2022-08-30 Martin Liska <mliska@suse.cz>
3623
3624 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
3625 argument.
3626
3627 2022-08-30 Richard Biener <rguenther@suse.de>
3628
3629 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
3630 the set of fallthru reachable blocks from function entry
3631 and use that to determine wlims.always_executed.
3632
3633 2022-08-30 Richard Biener <rguenther@suse.de>
3634
3635 PR tree-optimization/56654
3636 * tree-ssa-uninit.cc (cand_cmp): New.
3637 (find_uninit_use): First process all PHIs and collect candidate
3638 stmts, then sort those after RPO.
3639 (warn_uninitialized_phi): Pass on bb_to_rpo.
3640 (execute_late_warn_uninitialized): Compute and pass on
3641 reverse lookup of RPO number from basic block index.
3642
3643 2022-08-30 Richard Biener <rguenther@suse.de>
3644
3645 * gimple-predicate-analysis.h (uninit_analysis::operator()):
3646 Remove.
3647 * gimple-predicate-analysis.cc
3648 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
3649 simplify a bit.
3650 * tree-ssa-uninit.cc (defined_args): New global.
3651 (compute_uninit_opnds_pos): Mask with the recorded set
3652 of guarded maybe-uninitialized uses.
3653 (uninit_undef_val_t::operator()): Remove.
3654 (find_uninit_use): Process all PHI uses, recording the
3655 guarded ones and marking the PHI result as uninitialized
3656 consistently.
3657 (warn_uninitialized_phi): Adjust.
3658 (execute_late_warn_uninitialized): Get rid of the PHI worklist
3659 and instead walk the function in RPO order.
3660 * spellcheck.h (best_match::m_best_candidate_len): Initialize.
3661
3662 2022-08-30 Tamar Christina <tamar.christina@arm.com>
3663
3664 PR tree-optimization/106744
3665 * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
3666
3667 2022-08-30 Tamar Christina <tamar.christina@arm.com>
3668
3669 * expmed.cc (store_bit_field_1): Initialize regnum to 0.
3670
3671 2022-08-29 David Faust <david.faust@oracle.com>
3672
3673 PR target/106745
3674 * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
3675 computation of index for anonymous members.
3676
3677 2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com>
3678
3679 * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
3680 target macro.
3681
3682 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
3683
3684 PR target/106748
3685 * config/i386/i386-expand.cc
3686 (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
3687 * config/i386/sse.md (V_256H): Add V16BF.
3688
3689 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
3690
3691 * config/s390/s390.cc (s390_address_cost): Declare.
3692 (s390_hard_regno_nregs): Declare.
3693 (s390_rtx_costs): Add handling for REG and MEM in SET.
3694
3695 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
3696
3697 * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
3698 (is_reverse_perm_mask): New function.
3699 (expand_perm_with_rot): Recognize reverse pattern.
3700 (expand_perm_with_vstbrq): New function.
3701 (expand_perm_with_vster): Use vler/vster for element reversal on z15.
3702 (vectorize_vec_perm_const_1): Use.
3703 (s390_vectorize_vec_perm_const): Add expand functions.
3704 * config/s390/vx-builtins.md: Prefer vster over vler.
3705
3706 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
3707
3708 * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
3709 * config/s390/vector.md: Rewrite patterns to use vec_select.
3710 * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
3711 Likewise.
3712
3713 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
3714
3715 PR target/100869
3716 * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
3717 (rotl<mode>3_di): New pattern.
3718 * config/s390/vx-builtins.md: Use vpdi and verll for reversing
3719 elements.
3720
3721 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
3722
3723 * config/s390/s390.cc (s390_issue_rate): Add z15.
3724
3725 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
3726
3727 * common/config/s390/s390-common.cc: Enable -funroll-loops and
3728 -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
3729 * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
3730 loops larger than 12 instructions.
3731 (s390_override_options_after_change): Set unroll options.
3732 (s390_option_override_internal): Likewise.
3733 * config/s390/s390.opt: Document munroll-only-small-loops.
3734
3735 2022-08-29 Richard Biener <rguenther@suse.de>
3736
3737 * gimple-predicate-analysis.cc (is_loop_exit,
3738 find_control_equiv_block): Inline into single caller ...
3739 (uninit_analysis::init_use_preds): ... here and refactor.
3740
3741 2022-08-29 Richard Biener <rguenther@suse.de>
3742
3743 * gimple-predicate-analysis.cc (compute_control_dep_chain):
3744 Inline is_loop_exit and refactor, add comment about
3745 loop exits.
3746
3747 2022-08-29 Kito Cheng <kito.cheng@sifive.com>
3748
3749 * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
3750 (riscv_frame_info::reset(void)): New.
3751 (riscv_compute_frame_info): Use riscv_frame_info::reset instead
3752 of memset when clean frame.
3753
3754 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
3755
3756 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
3757 (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
3758 (riscv_address_insns): Add RVV modes condition.
3759 (riscv_binary_cost): Ditto.
3760 (riscv_rtx_costs): Adjust cost for RVV.
3761 (riscv_secondary_memory_needed): Add RVV modes condition.
3762 (riscv_hard_regno_nregs): Add RVV register allocation.
3763 (riscv_hard_regno_mode_ok): Add RVV register allocation.
3764 (riscv_class_max_nregs): Add RVV register allocation.
3765 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
3766 (UNITS_PER_V_REG): New macro.
3767 (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
3768 (V_REG_FIRST): New macro.
3769 (V_REG_LAST): Ditto.
3770 (V_REG_NUM): Ditto.
3771 (V_REG_P): Ditto.
3772 (VL_REG_P): Ditto.
3773 (VTYPE_REG_P): Ditto.
3774 (RISCV_DWARF_VL): Ditto.
3775 (RISCV_DWARF_VTYPE): Ditto.
3776 (enum reg_class): Add RVV register types.
3777 (REG_CLASS_CONTENTS): Add RVV register types.
3778 * config/riscv/riscv.md: Add VL/VTYPE register number constants.
3779
3780 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
3781
3782 * config/riscv/riscv.md: Add new type for vector instructions.
3783
3784 2022-08-28 Peter Bergner <bergner@linux.ibm.com>
3785
3786 PR target/106017
3787 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
3788 of MMA pointer conversions.
3789
3790 2022-08-27 Xi Ruoyao <xry111@xry111.site>
3791
3792 * config/i386/gcc-auto-profile: Regenerate.
3793
3794 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
3795
3796 * real.cc (real_iszero): New.
3797 * real.h (real_iszero): New.
3798
3799 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
3800
3801 * real.cc (real_isinf): New overload.
3802 (real_inf): Add sign argument.
3803 * real.h (real_isinf): New overload.
3804 (real_inf): Add sign argument.
3805
3806 2022-08-26 Marek Polacek <polacek@redhat.com>
3807
3808 PR c++/81159
3809 * doc/invoke.texi: Document -Wself-move.
3810
3811 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
3812
3813 * value-range.cc (vrange::set): Set varying.
3814 (vrange::set_nonzero): Same.
3815 (vrange::set_zero): Same.
3816 (vrange::set_nonnegative): Same.
3817
3818 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
3819
3820 * range-op-float.cc (foperator_equal::op1_range): Do not blindly
3821 copy op2 range when honoring signed zeros.
3822
3823 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
3824
3825 * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
3826 add newline.
3827 (profitable_path_p): Same.
3828
3829 2022-08-26 Richard Biener <rguenther@suse.de>
3830
3831 * gimple-predicate-analysis.h
3832 (uninit_analysis::use_cannot_happen): Remove.
3833 * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
3834 (uninit_analysis::use_cannot_happen): Likewise.
3835 (uninit_analysis::is_use_guarded): Do not call
3836 use_cannot_happen.
3837 (dump_predicates): Remove.
3838 (simple_control_dep_chain): Remove edge overload.
3839
3840 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
3841
3842 * internal-fn.cc (expand_GOMP_TARGET_REV): New.
3843 * internal-fn.def (GOMP_TARGET_REV): New.
3844 * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
3845 'omp target device_ancestor_host' as in_other_partition and don't
3846 error if absent.
3847 * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
3848 * omp-expand.cc (expand_omp_target): For reverse offload, remove
3849 sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
3850 empty-body nohost function.
3851 * omp-offload.cc (execute_omp_device_lower): Handle
3852 IFN_GOMP_TARGET_REV.
3853 (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
3854 nullify fn argument for reverse offload
3855
3856 2022-08-26 Jakub Jelinek <jakub@redhat.com>
3857
3858 * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
3859 * builtins.cc (expand_builtin_issignaling): New function.
3860 (expand_builtin_signbit): Don't overwrite target.
3861 (expand_builtin): Handle BUILT_IN_ISSIGNALING.
3862 (fold_builtin_classify): Likewise.
3863 (fold_builtin_1): Likewise.
3864 * optabs.def (issignaling_optab): New.
3865 * fold-const-call.cc (fold_const_call_ss): Handle
3866 BUILT_IN_ISSIGNALING.
3867 * config/i386/i386.md (issignalingxf2): New expander.
3868 * doc/extend.texi (__builtin_issignaling): Document.
3869 (__builtin_isinf, __builtin_isnan): Clarify behavior with
3870 -ffinite-math-only.
3871 * doc/md.texi (issignaling<mode>2): Likewise.
3872
3873 2022-08-26 Jakub Jelinek <jakub@redhat.com>
3874
3875 PR tree-optimization/106099
3876 * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
3877 * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
3878 __builtin_trap to avoid the need of vops.
3879
3880 2022-08-26 Richard Biener <rguenther@suse.de>
3881
3882 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
3883 New helper.
3884 (compute_control_dep_chain): Adjust to honor marked region
3885 if provided.
3886 (uninit_analysis::init_from_phi_def): Pre-mark the dominating
3887 region to improve compute_control_dep_chain walking.
3888 * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
3889
3890 2022-08-26 Richard Biener <rguenther@suse.de>
3891
3892 * gimple-predicate-analysis.cc
3893 (uninit_analysis::collect_phi_def_edges): Only expand a
3894 PHI def edge when it is possibly undefined.
3895
3896 2022-08-26 Martin Liska <mliska@suse.cz>
3897
3898 * doc/extend.texi: Remove cr16 related stuff.
3899 * doc/install.texi: Likewise.
3900 * doc/invoke.texi: Likewise.
3901 * doc/md.texi: Likewise.
3902 * function-tests.cc (test_expansion_to_rtl): Likewise.
3903 * common/config/cr16/cr16-common.cc: Removed.
3904 * config/cr16/constraints.md: Removed.
3905 * config/cr16/cr16-protos.h: Removed.
3906 * config/cr16/cr16.cc: Removed.
3907 * config/cr16/cr16.h: Removed.
3908 * config/cr16/cr16.md: Removed.
3909 * config/cr16/cr16.opt: Removed.
3910 * config/cr16/predicates.md: Removed.
3911 * config/cr16/t-cr16: Removed.
3912
3913 2022-08-26 liuhongt <hongtao.liu@intel.com>
3914
3915 PR target/106704
3916 * config/i386/i386-builtin.def (BDESC): Add
3917 CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
3918 corresponding builtins.
3919 * config/i386/i386.cc (ix86_gimple_fold_builtin):
3920 Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
3921 IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
3922
3923 2022-08-25 Marek Polacek <polacek@redhat.com>
3924
3925 * ginclude/stddef.h: Define nullptr_t.
3926
3927 2022-08-25 Joseph Myers <joseph@codesourcery.com>
3928
3929 * gimplify.cc (gimplify_modify_expr): Convert initialization from
3930 a variable-size CONSTRUCTOR to memset before call to
3931 gimplify_modify_expr_rhs.
3932
3933 2022-08-25 Jason Merrill <jason@redhat.com>
3934
3935 * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
3936
3937 2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com>
3938
3939 PR target/106101
3940 * config/s390/predicates.md (subreg_register_operand): New
3941 predicate.
3942 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
3943 function prototype.
3944 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
3945 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
3946 gen_lowpart.
3947 * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
3948 ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
3949 ("movstrictqi", "movstricthi", "movstrictsi"): Use the
3950 subreg_register_operand predicate instead of register_operand.
3951
3952 2022-08-25 Xi Ruoyao <xry111@xry111.site>
3953
3954 * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
3955 Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
3956 * config/loongarch/loongarch.cc (loongarch_attribute_table):
3957 New attribute table.
3958 (TARGET_ATTRIBUTE_TABLE): Define the target hook.
3959 (loongarch_handle_model_attribute): New static function.
3960 (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
3961 model attribute of SYMBOL_REF_DECL into account returning
3962 SYMBOL_PCREL or SYMBOL_PCREL64.
3963 (loongarch_use_anchors_for_symbol_p): New static function.
3964 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
3965 (loongarch_symbol_extreme_p): New static function.
3966 (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
3967 (loongarch_symbol_insns): Likewise.
3968 (loongarch_split_symbol_type): Likewise.
3969 (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
3970 TARGET_CMODEL_EXTREME for PC-relative addressing.
3971 (loongarch_print_operand_reloc): Likewise.
3972 * doc/extend.texi (Variable Attributes): Document new
3973 LoongArch specific attribute.
3974
3975 2022-08-25 Xi Ruoyao <xry111@xry111.site>
3976
3977 * config/loongarch/loongarch.cc (loongarch_classify_symbol):
3978 Return early if the rtx is not SYMBOL_REF.
3979
3980 2022-08-25 Richard Biener <rguenther@suse.de>
3981
3982 PR tree-optimization/106737
3983 * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
3984 verify SSA form.
3985
3986 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
3987
3988 PR target/106459
3989 * config/loongarch/loongarch.cc (loongarch_build_integer):
3990 Use HOST_WIDE_INT.
3991 * config/loongarch/loongarch.h (IMM_REACH): Likewise.
3992 (HWIT_1U): New Defined.
3993 (LU12I_OPERAND): Use HOST_WIDE_INT.
3994 (LU32I_OPERAND): Likewise.
3995 (LU52I_OPERAND): Likewise.
3996 (HWIT_UC_0xFFF): Likwise.
3997
3998 2022-08-24 Andrew Pinski <apinski@marvell.com>
3999
4000 PR target/106632
4001 PR target/106588
4002 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
4003 instead of i.
4004 (*slliuw): Likewise.
4005 (*bexti): Likewise. Also add a check for operands[2] to be less
4006 than the mode bitsize.
4007
4008 2022-08-24 Andrew Pinski <apinski@marvell.com>
4009
4010 * config/riscv/constraints.md (DbS): New constraint.
4011 (DnS): New constraint.
4012 * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
4013 (*bclr<mode>): Likewise.
4014 (*binvi<mode>): Likewise.
4015
4016 2022-08-24 Andrew Pinski <apinski@marvell.com>
4017
4018 PR target/106586
4019 * config/riscv/predicates.md (single_bit_mask_operand):
4020 Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
4021 (not_single_bit_mask_operand): Likewise.
4022 * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
4023 1<<31 for 32bits as it is already handled.
4024 Call trunc_int_for_mode on the upper part after the subtraction.
4025 (riscv_move_integer): Call trunc_int_for_mode before generating
4026 the integer just make sure the constant has been sign extended
4027 corectly.
4028 (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
4029 addition for the new rhs.
4030 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
4031 then mask off the upper 32bits of the HWI as it will be sign extended.
4032
4033 2022-08-24 Andrew Pinski <apinski@marvell.com>
4034
4035 * config/riscv/constraints.md (DsS): New constraint.
4036 (DsD): New constraint.
4037 * config/riscv/iterators.md (shiftm1c): New iterator.
4038 * config/riscv/bitmanip.md (*bset<mode>_mask):
4039 Use shiftm1c.
4040 (*bset<mode>_1_mask): Likewise.
4041
4042 2022-08-24 Andrew Pinski <apinski@marvell.com>
4043
4044 * config/riscv/constraints.md (Ds3): New constraint.
4045 * config/riscv/predicates.md (imm123_operand): New predicate.
4046 * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
4047 (*shNadduw): Likewise.
4048
4049 2022-08-24 Andrew Pinski <apinski@marvell.com>
4050
4051 * config/riscv/riscv.cc (riscv_print_operand):
4052 Handle '~'.
4053 (riscv_print_operand_punct_valid_p): New function
4054 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
4055 * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
4056 Use %~ instead of conditional the pattern on TARGET_64BIT.
4057 (rotrsi3): Likewise.
4058 (rotlsi3): Likewise.
4059 * config/riscv/riscv.md: Add ~ to the list of modifiers.
4060 (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
4061 (subsi3): Likewise.
4062 (negsi2): Likewise.
4063 (mulsi3): Likewise.
4064 (optab>si3/any_div): Likewise.
4065 (*add<mode>hi3): Likewise.
4066 (<optab>si3/any_shift): Likewise.
4067
4068 2022-08-24 Andrew Pinski <apinski@marvell.com>
4069
4070 * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
4071 keep the list in riscv.md in sync with this list.
4072 * config/riscv/riscv.md: Add list of modifiers as comments.
4073
4074 2022-08-24 Andrew Pinski <apinski@marvell.com>
4075
4076 * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
4077 * config/riscv/iterators.md: Here.
4078
4079 2022-08-24 Andrew Pinski <apinski@marvell.com>
4080
4081 * config/riscv/bitmanip.md
4082 (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
4083 tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
4084 * config/riscv/iterators.md: Here.
4085
4086 2022-08-24 Andrew Pinski <apinski@marvell.com>
4087
4088 * config/riscv/riscv.md (GPR): Move to new file.
4089 (P, X, BR): Likewise.
4090 (MOVE32, MOVE64, SHORT): Likewise.
4091 (HISI, SUPERQI, SUBX): Likewise.
4092 (ANYI, ANYF, SOFTF): Likewise.
4093 (size, load, default_load): Likewise.
4094 (softload, store, softstore): Likewise.
4095 (reg, fmt, ifmt, amo): Likewise.
4096 (UNITMODE, HALFMODE): Likewise.
4097 (RINT, rint_pattern, rint_rm): Likewise.
4098 (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
4099 (any_extend, any_shiftrt, any_shift): Likewise.
4100 (any_bitwise): Likewise.
4101 (any_div, any_mod): Likewise.
4102 (any_gt, any_ge, any_lt, any_le): Likewise.
4103 (u, su): Likewise.
4104 (optab, insn): Likewise.
4105 * config/riscv/iterators.md: New file.
4106
4107 2022-08-24 Andrew Pinski <apinski@marvell.com>
4108
4109 PR target/106601
4110 * config/riscv/bitmanip.md (bswaphi2): New pattern.
4111
4112 2022-08-24 Andrew Pinski <apinski@marvell.com>
4113
4114 PR target/106600
4115 * config/riscv/bitmanip.md (bswap<mode>2): Remove
4116 condition on TARGET_64BIT as X is already conditional there.
4117
4118 2022-08-24 Joseph Myers <joseph@codesourcery.com>
4119
4120 * tree.cc (build_real): Give DFP dconst0 the minimum quantum
4121 exponent for the type.
4122
4123 2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com>
4124
4125 PR target/106733
4126 * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
4127 constants as legitimate addresses for functions.
4128 (bpf_small_register_classes_for_mode_p): Define target hook.
4129
4130 2022-08-24 Richard Biener <rguenther@suse.de>
4131
4132 * gimple-predicate-analysis.cc: Move predicate normalization
4133 after the comment documenting it.
4134
4135 2022-08-24 Richard Biener <rguenther@suse.de>
4136
4137 * gimple-predicate-analysis.h (predicate): Split out
4138 non-predicate related functionality into ..
4139 (uninit_analysis): .. this new class.
4140 * gimple-predicate-analysis.cc: Refactor into two classes.
4141 * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
4142
4143 2022-08-24 Richard Biener <rguenther@suse.de>
4144
4145 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
4146 Do simple_control_dep_chain only up to cd_root, add the PHI
4147 operand edge to the chains like init_from_phi_def does.
4148 (predicate::is_use_guarded): Speedup early out, avoid half-way
4149 initializing the PHI def predicate.
4150
4151 2022-08-24 Jakub Jelinek <jakub@redhat.com>
4152
4153 PR target/106721
4154 * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
4155 Change V32HF, V16HF and V8HF entries from "f" to "i".
4156 (iptr): Add V32BF, V16BF, V8BF and BF entries.
4157 (i128vldq): Add V16HF and V16BF entries.
4158 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
4159 mask_opernad3 -> mask_operand3.
4160
4161 2022-08-24 Martin Liska <mliska@suse.cz>
4162 Jørgen Kvalsvik <j@lambda.is>
4163
4164 * gcov.cc (add_line_counts): Add group functions to coverage
4165 summary.
4166 (accumulate_line_counts): Similarly for files.
4167
4168 2022-08-24 Lulu Cheng <chenglulu@loongson.cn>
4169
4170 * config/loongarch/genopts/loongarch-strings: Support code model medium.
4171 * config/loongarch/genopts/loongarch.opt.in: Likewise.
4172 * config/loongarch/loongarch-def.c: Likewise.
4173 * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
4174 (CMODEL_EXTREME): Likewise.
4175 (N_CMODEL_TYPES): Likewise.
4176 (CMODEL_MEDIUM): Likewise.
4177 * config/loongarch/loongarch-opts.cc: Likewise.
4178 * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
4179 * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
4180 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
4181 Tls symbol Loading support medium mode.
4182 (loongarch_legitimize_call_address): When medium mode, make a symbolic
4183 jump with two instructions.
4184 (loongarch_option_override_internal): Support medium.
4185 * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
4186 (@sibcall_internal_1<mode>): New function call templates added to support
4187 medium mode.
4188 (@sibcall_value_internal_1<mode>): Likewise.
4189 (@sibcall_value_multiple_internal_1<mode>): Likewise.
4190 (@call_internal_1<mode>): Likewise.
4191 (@call_value_internal_1<mode>): Likewise.
4192 (@call_value_multiple_internal_1<mode>): Likewise.
4193 * config/loongarch/loongarch.opt: Support medium.
4194 * config/loongarch/predicates.md: Add processing about medium mode.
4195 * doc/invoke.texi: Document for '-mcmodel=medium'.
4196
4197 2022-08-24 Richard Biener <rguenther@suse.de>
4198
4199 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
4200 Start the compute_control_dep_chain walk from the immediate
4201 dominator of the PHI.
4202
4203 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
4204
4205 PR target/106714
4206 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
4207 __PTRDIFF_TYPE__.
4208 (_tile_stream_loadd_internal): Likewise.
4209 (_tile_stored_internal): Likewise.
4210
4211 2022-08-23 Richard Biener <rguenther@suse.de>
4212
4213 PR tree-optimization/106722
4214 * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
4215 MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
4216 * gimple-predicate-analysis.cc: ... here and document.
4217 (simple_control_dep_chain): New function, factored from
4218 predicate::use_cannot_happen.
4219 (predicate::use_cannot_happen): Adjust.
4220 (predicate::predicate): Use simple_control_dep_chain as fallback.
4221
4222 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
4223
4224 * range-op-float.cc (foperator_equal::op1_range): Set range to
4225 range of op2.
4226
4227 2022-08-23 Richard Biener <rguenther@suse.de>
4228
4229 * gimple-predicate-analysis.cc (is_loop_exit): Split out
4230 from ...
4231 (is_non_loop_exit_postdominating): ... here. Remove after
4232 inlining ...
4233 (find_control_equiv_block): ... here.
4234 (compute_control_dep_chain): ... and here.
4235 (predicate::is_use_guarded): Do not excempt loop exits
4236 from short-cutting the case of the use post-dominating the
4237 PHI definition.
4238
4239 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
4240
4241 PR tree-optimization/106687
4242 * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
4243 for the VREL_GT case as well.
4244
4245 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
4246
4247 * config/pru/pru.md (pru_<code>di3): New alternative for
4248 two operands but without earlyclobber.
4249
4250 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
4251
4252 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
4253 variants for loading -1 consts.
4254
4255 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
4256
4257 PR target/106564
4258 * config/pru/constraints.md (Um): New constraint for -1.
4259 (Uf): New constraint for IOR fill-bytes constants.
4260 (Uz): New constraint for AND zero-bytes constants.
4261 * config/pru/predicates.md (const_fillbytes_operand): New
4262 predicate for IOR fill-bytes constants.
4263 (const_zerobytes_operand): New predicate for AND zero-bytes
4264 constants.
4265 * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
4266 (struct pru_byterange): New struct to describe a byte range.
4267 (pru_calc_byterange): New declaration.
4268 * config/pru/pru.cc (pru_rtx_costs): Add penalty for
4269 64-bit zero-extend.
4270 (pru_output_sign_extend): Remove.
4271 (pru_calc_byterange): New helper function to extract byte
4272 range info from a constant.
4273 (pru_print_operand): Remove 'y' and 'z' print modifiers.
4274 * config/pru/pru.md (zero_extendqidi2): New pattern.
4275 (zero_extendhidi2): New pattern.
4276 (zero_extendsidi2): New pattern.
4277 (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
4278 (@pru_ior_fillbytes<mode>): New pattern.
4279 (@pru_and_zerobytes<mode>): New pattern.
4280 (<code>di3): Rewrite as an expand and handle ZERO and FILL
4281 special cases.
4282 (pru_<code>di3): New name for <code>di3.
4283 (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
4284 handle bit-test for 64-bit registers.
4285
4286 2022-08-22 Richard Biener <rguenther@suse.de>
4287
4288 * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
4289 (predicate::def_expr): Likewise.
4290 (predicate::use_expr): Likewise.
4291 (predicate::expr): Likewise.
4292 * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
4293 (predicate::use_expr): Likewise.
4294 (predicate::expr): Likewise.
4295 (predicate::is_use_guarded): Do not build m_use_expr.
4296
4297 2022-08-22 Martin Liska <mliska@suse.cz>
4298
4299 PR lto/106700
4300 * configure.ac: Detect O_NONBLOCK flag for open.
4301 * config.in: Regenerate.
4302 * configure: Regenerate.
4303 * opts-common.cc (jobserver_info::connect): Set is_connected
4304 properly based on O_NONBLOCK.
4305 * opts-jobserver.h (struct jobserver_info): Add is_connected
4306 member variable.
4307
4308 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
4309
4310 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
4311 and repeat value different.
4312
4313 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
4314
4315 PR lto/106686
4316 * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
4317 (tool_cleanup): Unlink offload_names.
4318 (compile_offload_image): Take filename argument to set it early.
4319 (compile_images_for_offload_targets): Update call; set
4320 offload_names to NULL after freeing the array.
4321
4322 2022-08-22 Richard Biener <rguenther@suse.de>
4323
4324 PR tree-optimization/105937
4325 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
4326 on backedges.
4327 (execute_late_warn_uninitialized): Mark backedges.
4328
4329 2022-08-22 Richard Biener <rguenther@suse.de>
4330
4331 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
4332 If the use is guarded with multiple predicate paths compute
4333 the predicates intersection before going forward. When
4334 compute_control_dep_chain wasn't able to come up with at
4335 least one path from function entry to the PHI edge compute
4336 a conservative sparse path instead.
4337
4338 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
4339
4340 * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
4341 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
4342 Add extreme support for TLS GD and LD types.
4343 (loongarch_legitimize_tls_address): Add extreme support for TLS LE
4344 and IE.
4345 (loongarch_split_symbol): When compiling with -mcmodel=extreme,
4346 the symbol address will be obtained through five instructions.
4347 (loongarch_print_operand_reloc): Add support.
4348 (loongarch_print_operand): Add support.
4349 (loongarch_print_operand_address): Add support.
4350 (loongarch_option_override_internal): Set '-mcmodel=extreme' option
4351 incompatible with '-mno-explicit-relocs'.
4352 * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
4353 Loads bits 12-31 of data into registers.
4354 (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
4355 the source register.
4356 (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
4357 the source register.
4358 * config/loongarch/predicates.md: Symbols need to be decomposed
4359 when defining the macro TARGET_CMODEL_EXTREME
4360 * doc/invoke.texi: Modify the description information of cmodel in the document.
4361 Document -W[no-]extreme-plt.
4362
4363 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
4364
4365 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
4366 files_to_cleanup.
4367 * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
4368 omp_requires_file to temp_files.
4369 * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
4370 (main): Remove local omp_requires_file var.
4371 (tool_cleanup): Handle omp_requires_file.
4372
4373 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
4374
4375 * gimple-range-path.cc (path_range_query::path_range_query):
4376 Remove constructor that takes edge.
4377 * gimple-range-path.h (class path_range_query): Same.
4378 * tree-ssa-loop-ch.cc (edge_range_query): New.
4379 (entry_loop_condition_is_static): Call edge_range_query.
4380
4381 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4382
4383 * config/xtensa/xtensa.h
4384 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
4385 Add new register class "ISC_REGS".
4386 * config/xtensa/constraints.md (c): Add new register constraint.
4387 * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
4388 (sibcall_internal, sibcall_value_internal):
4389 Change to use the new register constraint, and remove two split
4390 patterns for fixups that are no longer needed.
4391
4392 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
4393
4394 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
4395 pattern formatting.
4396
4397 2022-08-18 Tim Lange <mail@tim-lange.me>
4398
4399 PR analyzer/106181
4400 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
4401
4402 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
4403
4404 * gimple-range-path.cc (path_range_query::path_range_query): Add
4405 various constructors to take a path.
4406 (path_range_query::~path_range_query): Remove m_alloced_ranger.
4407 (path_range_query::range_on_path_entry): Adjust for m_ranger being
4408 a reference.
4409 (path_range_query::set_path): Rename to...
4410 (path_range_query::reset_path): ...this and call compute_ranges.
4411 (path_range_query::ssa_range_in_phi): Adjust for m_ranger
4412 reference.
4413 (path_range_query::range_defined_in_block): Same.
4414 (path_range_query::compute_ranges_in_block): Same.
4415 (path_range_query::adjust_for_non_null_uses): Same.
4416 (path_range_query::compute_exit_dependencies): Use m_path instead
4417 of argument.
4418 (path_range_query::compute_ranges): Remove path argument.
4419 (path_range_query::range_of_stmt): Adjust for m_ranger reference.
4420 (path_range_query::compute_outgoing_relations): Same.
4421 * gimple-range-path.h (class path_range_query): Add various
4422 constructors.
4423 Make compute_ranges and compute_exit_dependencies private.
4424 Rename set_path to reset_path.
4425 Make m_ranger a reference.
4426 Remove m_alloced_ranger.
4427 * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
4428 path_range_query.
4429 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
4430 ranger and instantiate a new path_range_query every time.
4431 (ch_base::copy_headers): Pass ranger instead of path_range_query.
4432 * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
4433 (back_threader::~back_threader): Remove m_solver.
4434 (back_threader::find_taken_edge_switch): Adjust for m_ranger
4435 reference.
4436 (back_threader::find_taken_edge_cond): Same.
4437 (back_threader::dump): Remove m_solver.
4438 (back_threader::back_threader): Move verify_marked_backedges
4439 here from the path_range_query constructor.
4440 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
4441 some code from compute_ranges_from_state here.
4442 (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
4443 (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
4444 * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
4445 compute_ranges_from_state to compute_exit_dependencies.
4446 Remove m_path.
4447
4448 2022-08-18 Richard Biener <rguenther@suse.de>
4449
4450 PR middle-end/106617
4451 * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
4452 guard, disable on GENERIC to not cause quadratic behavior
4453 with the fold-const.cc implementation and the use of !
4454
4455 2022-08-18 Andrew Pinski <apinski@marvell.com>
4456
4457 PR gcov-profile/106659
4458 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
4459 INCLUDE_VECTOR.
4460
4461 2022-08-18 konglin1 <lingling.kong@intel.com>
4462
4463 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
4464 BFmode.
4465 (ix86_expand_vector_init_duplicate): Support vector BFmode.
4466 (ix86_expand_vector_init_one_nonzero): Ditto.
4467 (ix86_expand_vector_init_one_var): Ditto.
4468 (ix86_expand_vector_init_concat): Ditto.
4469 (ix86_expand_vector_init_interleave): Ditto.
4470 (ix86_expand_vector_init_general): Ditto.
4471 (ix86_expand_vector_init): Ditto.
4472 (ix86_expand_vector_set_var): Ditto.
4473 (ix86_expand_vector_set): Ditto.
4474 (ix86_expand_vector_extract): Ditto.
4475 * config/i386/i386.cc (classify_argument): Add BF vector modes.
4476 (function_arg_64): Ditto.
4477 (ix86_gimplify_va_arg): Ditto.
4478 (ix86_get_ssemov): Ditto.
4479 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
4480 (VALID_AVX512F_REG_MODE): Ditto.
4481 (host_detect_local_cpu): Ditto.
4482 (VALID_SSE2_REG_MODE): Ditto.
4483 * config/i386/i386.md: Add BF vector modes.
4484 (MODE_SIZE): Ditto.
4485 (ssemodesuffix): Add bf suffix for BF vector modes.
4486 (ssevecmode): Ditto.
4487 * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
4488 (VI12HFBF_AVX512VL): Ditto.
4489 (V_256_512): Ditto.
4490 (VF_AVX512HFBF16): Ditto.
4491 (VF_AVX512BWHFBF16): Ditto.
4492 (VIHFBF): Ditto.
4493 (avx512): Ditto.
4494 (VIHFBF_256): Ditto.
4495 (VIHFBF_AVX512BW): Ditto.
4496 (VI2F_256_512):Ditto.
4497 (V8_128):Ditto.
4498 (V16_256): Ditto.
4499 (V32_512): Ditto.
4500 (sseinsnmode): Ditto.
4501 (sseconstm1): Ditto.
4502 (sseintmodesuffix): New mode_attr.
4503 (avx512fmaskmode): Ditto.
4504 (avx512fmaskmodelower): Ditto.
4505 (ssedoublevecmode): Ditto.
4506 (ssehalfvecmode): Ditto.
4507 (ssehalfvecmodelower): Ditto.
4508 (ssescalarmode): Add vector BFmode mapping.
4509 (ssescalarmodelower): Ditto.
4510 (ssexmmmode): Ditto.
4511 (ternlogsuffix): Ditto.
4512 (ssescalarsize): Ditto.
4513 (sseintprefix): Ditto.
4514 (i128): Ditto.
4515 (xtg_mode): Ditto.
4516 (bcstscalarsuff): Ditto.
4517 (<avx512>_blendm<mode>): New define_insn for BFmode.
4518 (<avx512>_store<mode>_mask): Ditto.
4519 (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
4520 (vec_set<mode>_0): New define_insn for BF vector set.
4521 (V8BFH_128): New mode_iterator for BFmode.
4522 (avx512fp16_mov<mode>): Ditto.
4523 (vec_set<mode>): New define_insn for BF vector set.
4524 (@vec_extract_hi_<mode>): Ditto.
4525 (@vec_extract_lo_<mode>): Ditto.
4526 (vec_set_hi_<mode>): Ditto.
4527 (vec_set_lo_<mode>): Ditto.
4528 (*vec_extract<mode>_0): New define_insn_and_split for BF
4529 vector extract.
4530 (*vec_extract<mode>): New define_insn.
4531 (VEC_EXTRACT_MODE): Add BF vector modes.
4532 (PINSR_MODE): Add V8BF.
4533 (sse2p4_1): Ditto.
4534 (pinsr_evex_isa): Ditto.
4535 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
4536 insert for V8BFmode.
4537 (pbroadcast_evex_isa): Add BF vector modes.
4538 (AVX2_VEC_DUP_MODE): Ditto.
4539 (VEC_INIT_MODE): Ditto.
4540 (VEC_INIT_HALF_MODE): Ditto.
4541 (avx2_pbroadcast<mode>): Adjust to support BF vector mode
4542 broadcast.
4543 (avx2_pbroadcast<mode>_1): Ditto.
4544 (<avx512>_vec_dup<mode>_1): Ditto.
4545 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
4546 Ditto.
4547
4548 2022-08-18 Martin Liska <mliska@suse.cz>
4549
4550 * configure: Regenerate.
4551
4552 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
4553
4554 PR target/103109
4555 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
4556 (<u>madddi4_highpart): New.
4557 (<u>madddi4_highpart_le): New.
4558
4559 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
4560
4561 * gimple-range-path.cc
4562 (path_range_query::compute_exit_dependencies): Use
4563 gimple_range_ssa_names.
4564
4565 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
4566
4567 * config/riscv/predicates.md: Adjust runtime invariant.
4568 * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
4569 (NUM_POLY_INT_COEFFS): New.
4570 * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
4571 runtime invariant.
4572 * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
4573 Adjust runtime invariant.
4574 * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
4575 invariant.
4576 (enum riscv_microarchitecture_type): Ditto.
4577 (riscv_valid_offset_p): Ditto.
4578 (riscv_valid_lo_sum_p): Ditto.
4579 (riscv_address_insns): Ditto.
4580 (riscv_load_store_insns): Ditto.
4581 (riscv_legitimize_move): Ditto.
4582 (riscv_binary_cost): Ditto.
4583 (riscv_rtx_costs): Ditto.
4584 (riscv_output_move): Ditto.
4585 (riscv_extend_comparands): Ditto.
4586 (riscv_flatten_aggregate_field): Ditto.
4587 (riscv_get_arg_info): Ditto.
4588 (riscv_pass_by_reference): Ditto.
4589 (riscv_elf_select_rtx_section): Ditto.
4590 (riscv_stack_align): Ditto.
4591 (riscv_compute_frame_info): Ditto.
4592 (riscv_initial_elimination_offset): Ditto.
4593 (riscv_set_return_address): Ditto.
4594 (riscv_for_each_saved_reg): Ditto.
4595 (riscv_first_stack_step): Ditto.
4596 (riscv_expand_prologue): Ditto.
4597 (riscv_expand_epilogue): Ditto.
4598 (riscv_can_use_return_insn): Ditto.
4599 (riscv_secondary_memory_needed): Ditto.
4600 (riscv_hard_regno_nregs): Ditto.
4601 (riscv_convert_vector_bits): New.
4602 (riscv_option_override): Adjust runtime invariant.
4603 (riscv_promote_function_mode): Ditto.
4604 * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
4605 (BITS_PER_RISCV_VECTOR): New.
4606 (BYTES_PER_RISCV_VECTOR): New.
4607 * config/riscv/riscv.md: Adjust runtime invariant.
4608
4609 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
4610
4611 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
4612 Get __tls_get_addr address through got table when disable plt.
4613
4614 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4615
4616 * config/xtensa/xtensa.cc (xtensa_expand_prologue):
4617 Use an "addmi" machine instruction for updating the stack pointer
4618 rather than addition/subtraction via hard register A9, if the amount
4619 of change satisfies the literal value conditions of that instruction
4620 when the CALL0 ABI is used.
4621 (xtensa_expand_epilogue): Ditto.
4622 And also inhibit the stack pointer addition of constant zero.
4623
4624 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
4625
4626 PR target/106640
4627 * config/i386/i386-features.cc
4628 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
4629 of XINT with INTVAL (XEXP (src, 1)).
4630
4631 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
4632
4633 * gimple-range-path.cc
4634 (path_range_query::compute_ranges_in_block): Remove
4635 set_root_oracle call.
4636 (path_range_query::compute_ranges): Pass ranger oracle to
4637 reset_path.
4638 * value-relation.cc (path_oracle::reset_path): Set root oracle.
4639 * value-relation.h (path_oracle::reset_path): Add root oracle
4640 argument.
4641
4642 2022-08-17 Marek Polacek <polacek@redhat.com>
4643
4644 PR c++/89780
4645 * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
4646 OPT_Wpessimizing_move and OPT_Wredundant_move.
4647 * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
4648
4649 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4650 Jakub Jelinek <jakub@redhat.com>
4651
4652 PR fortran/46539
4653 * common.opt (static-libquadmath): New option.
4654 * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
4655 * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
4656
4657 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
4658
4659 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
4660 when filenames come out identically.
4661
4662 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
4663
4664 PR middle-end/106548
4665 * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
4666 for 'simd' linear-step values that are variable.
4667
4668 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
4669 Chung-Lin Tang <cltang@codesourcery.com>
4670
4671 PR c++/104493
4672 * gimplify.cc (omp_notice_variable): Call omp_mappable_type
4673 instead of removed langhook.
4674 * omp-general.h (omp_mappable_type): New prototype.
4675 * omp-general.cc (omp_mappable_type): New; moved from ...
4676 * langhooks.cc (lhd_omp_mappable_type): ... here.
4677 * langhooks-def.h (lhd_omp_mappable_type,
4678 LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
4679 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
4680 * langhooks.h (struct lang_hooks_for_types): Remove
4681 omp_mappable_type.
4682
4683 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
4684
4685 * config.gcc (arm): Define with_float to hard if target name ends
4686 with 'hf'.
4687
4688 2022-08-17 Richard Biener <rguenther@suse.de>
4689
4690 * tree-ssa-threadbackward.cc
4691 (back_threader_profitability): Split profitable_path_p
4692 into possibly_profitable_path_p and itself, keep state
4693 as new members.
4694 (back_threader::m_profit): Remove.
4695 (back_threader::find_paths): Likewise.
4696 (back_threader::maybe_register_path): Take profitability
4697 instance as parameter.
4698 (back_threader::find_paths_to_names): Likewise. Use
4699 possibly_profitable_path_p and avoid the path range query
4700 when the path is currently too large.
4701 (back_threader::find_paths): Fold into ...
4702 (back_threader::maybe_thread_block): ... this.
4703 (get_gimple_control_stmt): Remove.
4704 (back_threader_profitability::possibly_profitable_path_p):
4705 Split out from profitable_path_p, do early profitability
4706 checks.
4707 (back_threader_profitability::profitable_path_p): Do final
4708 profitability path after the taken edge has been determined.
4709
4710 2022-08-17 Xi Ruoyao <xry111@xry111.site>
4711
4712 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
4713 (fmin<mode>3): Likewise.
4714
4715 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
4716
4717 * gimple-range-fold.cc (gimple_range_ssa_names): New.
4718 * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
4719 * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
4720 code to new routine.
4721
4722 2022-08-16 Martin Liska <mliska@suse.cz>
4723
4724 PR target/106637
4725 * doc/install.texi: Remove link to www.bullfreeware.com
4726
4727 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
4728
4729 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
4730 zfh and zfhmin.
4731 (riscv_ext_version_table): Ditto.
4732 (riscv_ext_flag_table): Ditto.
4733 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
4734 (MASK_ZFH): Ditto.
4735 (TARGET_ZFHMIN): Ditto.
4736 (TARGET_ZFH): Ditto.
4737 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
4738 for zfh and zfhmin.
4739 (riscv_emit_float_compare): Handle HFmode.
4740 * config/riscv/riscv.md (ANYF): Add HF.
4741 (SOFTF): Add HF.
4742 (load): Ditto.
4743 (store): Ditto.
4744 (truncsfhf2): New.
4745 (truncdfhf2): Ditto.
4746 (extendhfsf2): Ditto.
4747 (extendhfdf2): Ditto.
4748 (*movhf_hardfloat): Ditto.
4749 (*movhf_softfloat): Make sure not ZFHMIN.
4750 * config/riscv/riscv.opt (riscv_zf_subext): New.
4751
4752 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
4753
4754 * config/riscv/riscv-builtins.cc: include stringpool.h
4755 (riscv_float16_type_node): New.
4756 (riscv_init_builtin_types): Ditto.
4757 (riscv_init_builtins): Call riscv_init_builtin_types.
4758 * config/riscv/riscv-modes.def (HF): New.
4759 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
4760 (riscv_mangle_type): New.
4761 (riscv_scalar_mode_supported_p): Ditto.
4762 (riscv_libgcc_floating_mode_supported_p): Ditto.
4763 (riscv_excess_precision): Ditto.
4764 (riscv_floatn_mode): Ditto.
4765 (riscv_init_libfuncs): Ditto.
4766 (TARGET_MANGLE_TYPE): Ditto.
4767 (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
4768 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
4769 (TARGET_INIT_LIBFUNCS): Ditto.
4770 (TARGET_C_EXCESS_PRECISION): Ditto.
4771 (TARGET_FLOATN_MODE): Ditto.
4772 * config/riscv/riscv.md (mode): Add HF.
4773 (softload): Add HF.
4774 (softstore): Ditto.
4775 (fmt): Ditto.
4776 (UNITMODE): Ditto.
4777 (movhf): New.
4778 (*movhf_softfloat): New.
4779
4780 2022-08-16 Richard Biener <rguenther@suse.de>
4781
4782 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
4783 Do not walk further if we are leaving the current loop.
4784
4785 2022-08-16 Sergei Trofimovich <siarheit@google.com>
4786
4787 PR driver/106624
4788 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
4789 argument using xstrdup().
4790
4791 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
4792
4793 * gimple-range-path.cc (path_range_query::import_p): Rename to...
4794 (path_range_query::exit_dependency_p): ...this.
4795 (path_range_query::dump): Rename imports to exit dependencies.
4796 (path_range_query::compute_ranges_in_phis): Same.
4797 (path_range_query::compute_ranges_in_block): Same.
4798 (path_range_query::adjust_for_non_null_uses): Same.
4799 (path_range_query::compute_ranges): Same.
4800 (path_range_query::compute_phi_relations): Same.
4801 (path_range_query::add_to_imports): Rename to...
4802 (path_range_query::add_to_exit_dependencies): ...this.
4803 (path_range_query::compute_imports): Rename to...
4804 (path_range_query::compute_exit_dependencies): ...this.
4805 * gimple-range-path.h (class path_range_query): Rename imports to
4806 exit dependencies.
4807
4808 2022-08-16 Martin Liska <mliska@suse.cz>
4809
4810 * value-range-storage.h (class obstack_vrange_allocator): Mark
4811 the class as final.
4812 (class ggc_vrange_allocator): Likewise.
4813
4814 2022-08-16 Martin Liska <mliska@suse.cz>
4815
4816 * value-range-equiv.h (class value_range_equiv): Add virtual
4817 destructor.
4818 * value-range.h: Likewise.
4819
4820 2022-08-16 Richard Biener <rguenther@suse.de>
4821
4822 PR middle-end/106630
4823 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
4824 narrowing conversions.
4825
4826 2022-08-16 Martin Liska <mliska@suse.cz>
4827
4828 * value-range-equiv.h (class value_range_equiv):
4829
4830 2022-08-16 Martin Liska <mliska@suse.cz>
4831
4832 * config/i386/i386-features.h (class general_scalar_chain): Add
4833 final override for a method.
4834 (class timode_scalar_chain): Likewise.
4835
4836 2022-08-16 Richard Biener <rguenther@suse.de>
4837
4838 * doc/invoke.texi (max-jump-thread-paths): Adjust.
4839
4840 2022-08-16 Martin Liska <mliska@suse.cz>
4841
4842 * opts-common.cc (jobserver_info::connect): Open fifo
4843 in non-blocking mode.
4844
4845 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
4846
4847 PR target/103353
4848 * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
4849 check to preparation statements and add handlings for !TARGET_MMA.
4850 (define_expand movxo): Likewise.
4851
4852 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
4853
4854 PR tree-optimization/106322
4855 * tree-vect-stmts.cc (vectorizable_call): Don't allow
4856 vect_emulated_vector_p type for both vectype_in and vectype_out.
4857
4858 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4859
4860 * common/config/xtensa/xtensa-common.cc
4861 (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
4862 for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
4863
4864 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
4865
4866 PR tree-optimization/106621
4867 * value-range.cc (irange::set): Check for POLY_INT_CST early.
4868
4869 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
4870
4871 * config/i386/i386-features.cc
4872 (timode_scalar_chain::compute_convert_gain): Provide costs for
4873 shifts and rotates.
4874 (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
4875 and ROTATE just like existing ASHIFT and LSHIFTRT cases.
4876 (timode_scalar_to_vector_candidate_p): Handle all shifts and
4877 rotates by integer constants between 0 and 127.
4878
4879 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
4880
4881 * config/i386/i386-features.cc
4882 (timode_scalar_chain::compute_convert_gain): Provide gains for
4883 comparisons against 0/-1, including "*testti" patterns.
4884
4885 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
4886
4887 PR tree-optimization/64992
4888 PR tree-optimization/98956
4889 * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
4890 when X is zero_one_valued_p and the shift constant C is valid.
4891 (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
4892 when X is zero_one_valued_p and the shift constant C is valid.
4893
4894 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
4895 Richard Biener <rguenther@suse.de>
4896
4897 PR tree-optimization/71343
4898 * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
4899 expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
4900 (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
4901 to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
4902
4903 2022-08-15 Richard Biener <rguenther@suse.de>
4904
4905 * gimple-range-path.cc (range_on_path_entry): Just
4906 call range_on_entry.
4907
4908 2022-08-15 Jakub Jelinek <jakub@redhat.com>
4909
4910 PR rtl-optimization/106590
4911 * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
4912 (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
4913 mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
4914 further conditional moves.
4915
4916 2022-08-15 konglin1 <lingling.kong@intel.com>
4917
4918 * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
4919 * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
4920 (ix86_register_bf16_builtin_type): New function.
4921 (ix86_bf16_type_node): New.
4922 (ix86_bf16_ptr_type_node): Ditto.
4923 (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
4924 * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
4925 (ADJUST_FLOAT_FORMAT): Ditto.
4926 * config/i386/i386.cc (classify_argument): Handle BFmode.
4927 (construct_container): Ditto.
4928 (function_value_32): Return __bf16 by %xmm0.
4929 (function_value_64): Return __bf16 by SSE register.
4930 (ix86_output_ssemov): Handle BFmode.
4931 (ix86_legitimate_constant_p): Disable BFmode constant double.
4932 (ix86_secondary_reload): Require gpr as intermediate register
4933 to store __bf16 from sse register when sse4 is not available.
4934 (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
4935 (ix86_mangle_type): Add manlging for __bf16 type.
4936 (ix86_invalid_conversion): New function for target hook.
4937 (ix86_invalid_unary_op): Ditto.
4938 (ix86_invalid_binary_op): Ditto.
4939 (TARGET_INVALID_CONVERSION): New define for target hook.
4940 (TARGET_INVALID_UNARY_OP): Ditto.
4941 (TARGET_INVALID_BINARY_OP): Ditto.
4942 * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
4943 * config/i386/i386.md ("mode"): Add BFmode.
4944 (MODE_SIZE): Ditto.
4945 (X87MODEFH): Ditto.
4946 (HFBF): Add new define_mode_iterator.
4947 (*pushhf_rex64): Change for BFmode.
4948 (*push<mode>_rex64): Ditto.
4949 (*pushhf): Ditto.
4950 (*push<mode>): Ditto.
4951 (MODESH): Ditto.
4952 (hfbfconstf): Add new define_mode_attr.
4953 (*mov<mode>_internal): Add BFmode.
4954
4955 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
4956 Uroš Bizjak <ubizjak@gmail.com>
4957
4958 * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
4959 New predicate for values between 0/1 and 255, not multiples of 8.
4960 * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
4961 shifts by constant bit counts.
4962 (*ashlvti3_internal): New define_insn_and_split that lowers
4963 logical left shifts by constant bit counts, that aren't multiples
4964 of 8, before reload.
4965 (lshrv1ti3): Delay lowering of logical right shifts by constant.
4966 (*lshrv1ti3_internal): New define_insn_and_split that lowers
4967 logical right shifts by constant bit counts, that aren't multiples
4968 of 8, before reload.
4969 (ashrv1ti3):: Delay lowering of arithmetic right shifts by
4970 constant bit counts.
4971 (*ashrv1ti3_internal): New define_insn_and_split that lowers
4972 arithmetic right shifts by constant bit counts before reload.
4973 (rotlv1ti3): Delay lowering of rotate left by constant.
4974 (*rotlv1ti3_internal): New define_insn_and_split that lowers
4975 rotate left by constant bits counts before reload.
4976 (rotrv1ti3): Delay lowering of rotate right by constant.
4977 (*rotrv1ti3_internal): New define_insn_and_split that lowers
4978 rotate right by constant bits counts before reload.
4979
4980 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4981
4982 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
4983
4984 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
4985
4986 PR middle-end/106057
4987 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
4988 function.
4989 (possible_polymorphic_call_targets): Use it.
4990
4991 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
4992
4993 * tree-ssa-loop.h: Improve comment
4994
4995 2022-08-12 Jakub Jelinek <jakub@redhat.com>
4996
4997 PR tree-optimization/106506
4998 * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
4999 is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
5000
5001 2022-08-12 Richard Biener <rguenther@suse.de>
5002
5003 PR tree-optimization/106593
5004 * tree-ssa-threadbackward.cc (back_threader::find_paths):
5005 If the imports from the conditional do not satisfy
5006 gimple_range_ssa_p don't try to thread anything.
5007
5008 2022-08-12 Tamar Christina <tamar.christina@arm.com>
5009
5010 PR target/106524
5011 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
5012 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
5013
5014 2022-08-12 Tim Lange <mail@tim-lange.me>
5015
5016 PR analyzer/106000
5017 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
5018
5019 2022-08-12 Andrew Pinski <apinski@marvell.com>
5020
5021 * config/aarch64/aarch64.md: Remove comment
5022 about MD_INCLUDES as it is out of date and not needed.
5023
5024 2022-08-11 Richard Biener <rguenther@suse.de>
5025
5026 * gimple-range-path.cc (path_range_query::compute_imports):
5027 Restrict walking SSA defs to blocks inside the path. Track
5028 the same operands as range_def_chain::get_def_chain does.
5029
5030 2022-08-11 Richard Biener <rguenther@suse.de>
5031
5032 PR tree-optimization/106514
5033 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
5034 Compute and unwind both m_imports and interesting on the fly during
5035 path discovery.
5036 (back_threader::find_paths): Compute the original m_imports
5037 from just the SSA uses of the exit conditional. Drop
5038 handling single_succ_to_potentially_threadable_block.
5039 * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
5040 constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE.
5041
5042 2022-08-11 Richard Biener <rguenther@suse.de>
5043
5044 * gimple-range-path.h (path_range_query::compute_imports):
5045 Take path as argument, not the exit block.
5046 * gimple-range-path.cc (path_range_query::compute_imports):
5047 Likewise, and adjust, avoiding possibly stale m_path.
5048 (path_range_query::compute_outgoing_relations): Register
5049 relations for all conditionals.
5050 * tree-ssa-threadbackward.cc (back_threader::find_paths):
5051 Adjust.
5052
5053 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
5054
5055 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
5056 oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
5057 (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
5058
5059 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
5060
5061 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
5062 Remove function declaration.
5063
5064 2022-08-10 Richard Biener <rguenther@suse.de>
5065
5066 PR tree-optimization/106513
5067 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
5068 for head_marker.
5069
5070 2022-08-10 Martin Liska <mliska@suse.cz>
5071
5072 PR lto/106328
5073 * opts-jobserver.h (struct jobserver_info): Add pipefd.
5074 (jobserver_info::connect): New.
5075 (jobserver_info::disconnect): Likewise.
5076 (jobserver_info::get_token): Likewise.
5077 (jobserver_info::return_token): Likewise.
5078 * opts-common.cc: Implement the new functions.
5079
5080 2022-08-10 Martin Liska <mliska@suse.cz>
5081
5082 * opts-jobserver.h: Add one member.
5083 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
5084 format of --jobserver-auth.
5085
5086 2022-08-10 Martin Liska <mliska@suse.cz>
5087
5088 * gcc.cc (driver::detect_jobserver): Remove and move to
5089 jobserver.h.
5090 * lto-wrapper.cc (jobserver_active_p): Likewise.
5091 (run_gcc): Likewise.
5092 * opts-jobserver.h: New file.
5093 * opts-common.cc (jobserver_info::jobserver_info): New function.
5094
5095 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
5096
5097 * config/i386/i386-features.cc (scalar_chain::convert_compare):
5098 Create new pseudos only when/if needed. Add support for TEST,
5099 i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
5100 When broadcasting V2DImode and V4SImode use new pseudo register.
5101 (timode_scalar_chain::convert_op): Do nothing if operand is
5102 already V1TImode. Avoid generating useless SUBREG conversions,
5103 i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT
5104 in addition to CONST_INT by using CONST_SCALAR_INT_P.
5105 (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
5106 CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword
5107 pattern as an STV candidate.
5108 (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
5109 operands in binary logic operations.
5110 * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
5111 for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
5112 as regular PTEST, i.e. cost->sse_op.
5113 * config/i386/i386.md (*testti_doubleword): New pre-reload
5114 define_insn_and_split that recognizes comparison of TI mode AND
5115 against zero.
5116 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
5117 define_insn_and_split that recognizes UNSPEC_PTEST of identical
5118 AND operands.
5119
5120 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
5121 Richard Biener <rguenther@suse.de>
5122
5123 PR middle-end/21137
5124 PR tree-optimization/98954
5125 * fold-const.cc (fold_binary_loc): Remove optimizations to
5126 optimize ((X >> C1) & C2) ==/!= 0.
5127 * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
5128 check, and handle all values of INTEGER_CSTs @2 and @3.
5129 (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
5130 checks, and handle all values of INTEGER_CSTs @2 and @3.
5131
5132 2022-08-09 David Malcolm <dmalcolm@redhat.com>
5133
5134 * doc/invoke.texi (Static Analyzer Options): Add notes on which
5135 functions the analyzer has hardcoded knowledge of.
5136
5137 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
5138
5139 * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
5140 (num_arg_regs): Allow vector arguments.
5141 (gcn_function_arg): Likewise.
5142 (gcn_function_arg_advance): Likewise.
5143 (gcn_arg_partial_bytes): Likewise.
5144 (gcn_return_in_memory): Likewise.
5145 (gcn_expand_epilogue): Get return value from v8.
5146 * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
5147 (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
5148 (FIRST_VPARM_REG): New.
5149 (FUNCTION_ARG_REGNO_P): Allow vector parameters.
5150 (struct gcn_args): Add vnum field.
5151 (LIBCALL_VALUE): All vector return values.
5152 * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
5153 (gcn_call_value_indirect): Likewise.
5154
5155 2022-08-09 Richard Biener <rguenther@suse.de>
5156
5157 * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
5158 directly. Avoid update_ssa when in SSA form.
5159 (expand_omp_atomic_store): Likewise.
5160 (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
5161 form.
5162 (expand_omp_atomic_pipeline): Likewise.
5163 (expand_omp_atomic_mutex): Likewise.
5164 * tree-parloops.cc (gen_parallel_loop): Use
5165 TODO_update_ssa_no_phi after loop_version.
5166
5167 2022-08-09 Richard Biener <rguenther@suse.de>
5168
5169 * doc/invoke.texi (max-fsm-thread-length): Remove.
5170 * params.opt (max-fsm-thread-length): Likewise.
5171 * tree-ssa-threadbackward.cc
5172 (back_threader_profitability::profitable_path_p): Do not
5173 check max-fsm-thread-length.
5174
5175 2022-08-09 Richard Biener <rguenther@suse.de>
5176
5177 PR tree-optimization/106514
5178 * params.opt (max-jump-thread-paths): New.
5179 * doc/invoke.texi (max-jump-thread-paths): Document.
5180 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
5181 Honor max-jump-thread-paths, take overall_path argument.
5182 (back_threader::find_paths): Pass 1 as initial overall_path.
5183
5184 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
5185
5186 PR middle-end/106492
5187 * omp-low.cc (lower_rec_input_clauses): Add missing folding
5188 to data type of linear-clause list item.
5189
5190 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
5191
5192 PR tree-optimization/106556
5193 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
5194 type of the cond_expr operands being evaluted.
5195
5196 2022-08-08 Tom Honermann <tom@honermann.net>
5197
5198 * ginclude/stdatomic.h (atomic_char8_t,
5199 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
5200
5201 2022-08-08 Andrew Pinski <apinski@marvell.com>
5202
5203 PR middle-end/103645
5204 * gimplify.cc (gimplify_init_constructor): Don't build/add
5205 gimple assignment of an empty type.
5206
5207 2022-08-08 Richard Biener <rguenther@suse.de>
5208
5209 PR lto/106540
5210 PR lto/106334
5211 * dwarf2out.cc (dwarf2out_register_external_die): Restore
5212 original assert.
5213 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
5214 to input DECL_INITIAL, avoiding to commit drefs.
5215
5216 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
5217
5218 * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
5219 for x86_64_hilo_general_operand to general operand. Call
5220 force_reg on parts that are not x86_64_immediate_operand.
5221
5222 2022-08-05 David Malcolm <dmalcolm@redhat.com>
5223
5224 PR analyzer/105947
5225 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
5226
5227 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
5228
5229 * expmed.cc (emit_store_flag_1): Move code to expand double word
5230 equality and inequality against zero or -1, using word operations,
5231 to after trying to use the backend's cstore<mode>4 optab/expander.
5232
5233 2022-08-05 Tamar Christina <tamar.christina@arm.com>
5234
5235 PR middle-end/106534
5236 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
5237 value_replacement and store_elim from diamonds.
5238
5239 2022-08-05 Richard Biener <rguenther@suse.de>
5240
5241 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
5242 Check whether the registry register_path rejected the path.
5243 (back_threader_registry::register_path): Return whether
5244 register_jump_thread succeeded.
5245
5246 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
5247
5248 PR tree-optimization/106514
5249 * value-range.cc (unsupported_range::unsupported_range): Move...
5250 * value-range.h (unsupported_range::unsupported_range): ...here.
5251 (unsupported_range::set_undefined): New.
5252
5253 2022-08-05 Richard Biener <rguenther@suse.de>
5254
5255 PR tree-optimization/106533
5256 * tree-loop-distribution.cc (loop_distribution::execute): Continue
5257 analyzing the inner loops when find_seed_stmts_for_distribution
5258 fails.
5259
5260 2022-08-05 Andrew Pinski <apinski@marvell.com>
5261
5262 * config/riscv/predicates.md (splittable_const_int_operand):
5263 Remove the check for TARGET_64BIT for single bit const values.
5264
5265 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
5266
5267 PR tree-optimization/106514
5268 * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
5269 Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
5270
5271 2022-08-04 Tamar Christina <tamar.christina@arm.com>
5272
5273 * match.pd: New bit_not rule.
5274
5275 2022-08-04 Tamar Christina <tamar.christina@arm.com>
5276
5277 PR middle-end/106519
5278 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
5279 diamond shapes.
5280
5281 2022-08-04 Sam Feifer <sfeifer@redhat.com>
5282
5283 PR tree-optimization/106243
5284 * match.pd (-x & 1): New simplification.
5285
5286 2022-08-04 Richard Biener <rguenther@suse.de>
5287
5288 PR tree-optimization/106521
5289 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
5290 CFG cleanup manually before rewriting into LC SSA.
5291
5292 2022-08-04 Richard Biener <rguenther@suse.de>
5293
5294 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
5295 (back_threader::resolve_phi): Likewise.
5296 (back_threader::find_paths_to_names): Rewrite greedy search.
5297
5298 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
5299
5300 * config/s390/vector.md (V_HW_FT): New iterator.
5301 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
5302 of V_HW.
5303
5304 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
5305
5306 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
5307 setting -mblock-ops-vector-pair.
5308
5309 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
5310
5311 PR tree-optimization/106514
5312 * value-relation.cc (path_oracle::killing_def) Do not walk the
5313 equivalence set clearing bits.
5314
5315 2022-08-03 Tamar Christina <tamar.christina@arm.com>
5316
5317 * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
5318 sequence of a three-way conditional.
5319 (replace_phi_edge_with_variable): Support diamonds.
5320 (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
5321 min/max.
5322 (strip_bit_not, invert_minmax_code): New.
5323
5324 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
5325
5326 PR rtl-optimization/106187
5327 * alias.h (mems_same_for_tbaa_p): Declare.
5328 * alias.cc (mems_same_for_tbaa_p): New function.
5329 * dse.cc (record_store): Use it instead of open-coding
5330 alias check.
5331 * cselib.h (cselib_redundant_set_p): Declare.
5332 * cselib.cc: Include alias.h
5333 (cselib_redundant_set_p): New function.
5334 * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
5335 of rtx_equal_for_cselib_p.
5336 * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
5337 (reload_cse_noop_set_p): Delete.
5338
5339 2022-08-03 Martin Liska <mliska@suse.cz>
5340
5341 * doc/gcov-dump.texi: Document the new option.
5342 * gcov-dump.cc (main): Parse the new option.
5343 (print_usage): Show the option.
5344 (tag_counters): Sort key:value pairs of TOP N counter.
5345
5346 2022-08-03 Martin Liska <mliska@suse.cz>
5347
5348 * profile.cc (compute_branch_probabilities): Do not collect
5349 stats unless TDF_DETAILS.
5350
5351 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
5352 Uroš Bizjak <ubizjak@gmail.com>
5353
5354 PR target/47949
5355 * config/i386/i386.md (peephole2): New peephole2 to convert
5356 SWI48 moves to/from %rax/%eax where the src is dead to xchg,
5357 when optimizing for minimal size with -Oz.
5358
5359 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
5360
5361 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
5362 to split comparisons against -1 using AND and CMP -1 instructions.
5363
5364 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
5365
5366 * config/i386/i386-features.cc (compute_convert_gain): Add gain
5367 for converting suitable TImode shift to a V1TImode shift.
5368 (timode_scalar_chain::convert_insn): Add support for converting
5369 suitable ASHIFT and LSHIFTRT.
5370 (timode_scalar_to_vector_candidate_p): Consider logical shifts
5371 by integer constants that are multiples of 8 to be candidates.
5372
5373 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
5374 Segher Boessenkool <segher@kernel.crashing.org>
5375 Richard Sandiford <richard.sandiford@arm.com>
5376
5377 * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
5378 optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
5379 that are all positive to complement the existing FFS and
5380 idempotent ABS simplifications.
5381 <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
5382 val_signbit_known_clear_p is true of the operand.
5383 Simplify sign extensions of SUBREG truncations of operands
5384 that are already suitably (zero) extended.
5385 <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
5386 of operands that are already suitably zero extended.
5387
5388 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
5389
5390 PR tree-optimization/106510
5391 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
5392 Check for unsupported statements early.
5393
5394 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
5395
5396 PR tree-optimization/106474
5397 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
5398 range of equivalences that may contribute to the range.
5399
5400 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
5401
5402 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
5403 encoding bit in BTF.
5404
5405 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
5406
5407 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
5408 irange check.
5409 (tree_lower_bound): New.
5410 (tree_upper_bound): New.
5411 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
5412 vrange.
5413 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
5414 argument to vrange.
5415
5416 2022-08-02 Richard Biener <rguenther@suse.de>
5417
5418 * tree-ssa-threadbackward.cc
5419 (back_threader_profitability::profitable_path_p): Apply
5420 size constraints to all paths again.
5421
5422 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
5423
5424 * range-op-float.cc (finite_operands_p): New.
5425 (frelop_early_resolve): New.
5426 (default_frelop_fold_range): New.
5427 (class foperator_equal): New.
5428 (class foperator_not_equal): New.
5429 (class foperator_lt): New.
5430 (class foperator_le): New.
5431 (class foperator_gt): New.
5432 (class foperator_ge): New.
5433 (class foperator_unordered): New.
5434 (class foperator_ordered): New.
5435 (class foperator_relop_unknown): New.
5436 (floating_op_table::floating_op_table): Add above classes to
5437 floating op table.
5438 * value-range.h (frange::supports_p): Enable.
5439
5440 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
5441
5442 * tree-core.h (struct tree_ssa_name): Add frange_info and
5443 reshuffle the rest.
5444 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
5445 for frange.
5446 (vrange_storage::set_vrange): Same.
5447 (vrange_storage::get_vrange): Same.
5448 (vrange_storage::fits_p): Same.
5449 (frange_storage_slot::alloc_slot): New.
5450 (frange_storage_slot::set_frange): New.
5451 (frange_storage_slot::get_frange): New.
5452 (frange_storage_slot::fits_p): New.
5453 * value-range-storage.h (class frange_storage_slot): New.
5454
5455 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
5456
5457 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
5458 query to integrals.
5459
5460 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
5461
5462 * value-range.cc (frange::set): Initialize m_props and cleanup.
5463
5464 2022-08-02 Richard Biener <rguenther@suse.de>
5465
5466 PR tree-optimization/106497
5467 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
5468 Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
5469
5470 2022-08-02 Martin Liska <mliska@suse.cz>
5471
5472 * profile.cc (compute_branch_probabilities): Dump details only
5473 if TDF_DETAILS.
5474 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
5475 TDF_ADDRESS is used, it makes comparison harder.
5476
5477 2022-08-02 Richard Biener <rguenther@suse.de>
5478
5479 PR tree-optimization/106498
5480 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
5481 SSA update here.
5482 (expand_omp_for): Or here.
5483 (execute_expand_omp): Instead schedule it here together
5484 with CFG cleanup via TODO.
5485
5486 2022-08-02 Richard Biener <rguenther@suse.de>
5487
5488 PR lto/106334
5489 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
5490 assert.
5491
5492 2022-08-02 Richard Biener <rguenther@suse.de>
5493
5494 PR tree-optimization/106495
5495 * tree-ssa-threadbackward.cc
5496 (back_threader_profitability::profitable_path_p): If known_edge
5497 is probably never executed avoid threading.
5498
5499 2022-08-01 David Malcolm <dmalcolm@redhat.com>
5500
5501 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
5502 error.
5503
5504 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
5505 Uroš Bizjak <ubizjak@gmail.com>
5506
5507 PR target/106481
5508 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
5509 Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
5510 CONST_VECTOR.
5511
5512 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
5513
5514 PR target/83782
5515 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
5516 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
5517
5518 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
5519
5520 PR debug/106263
5521 * ctfc.h (struct ctf_dtdef): Add field linkage.
5522 * ctfc.cc (ctf_add_function): Set ctti_linkage.
5523 * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
5524 function types and subprograms.
5525 * btfout.cc (btf_asm_func_type): Emit linkage information for the
5526 function.
5527 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
5528 for functions.
5529
5530 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
5531 Jakub Jelinek <jakub@redhat.com>
5532
5533 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
5534 the mask type.
5535
5536 2022-08-01 Sam Feifer <sfeifer@redhat.com>
5537
5538 PR tree-optimization/104992
5539 * match.pd (x / y * y == x): New simplification.
5540
5541 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
5542
5543 * value-range.cc (tree_compare): New.
5544 (frange::set): Make more general.
5545 (frange::normalize_kind): Cleanup and return bool.
5546 (frange::union_): Use normalize_kind return value.
5547 (frange::intersect): Same.
5548 (frange::verify_range): Remove unnecessary else.
5549 * value-range.h (vrp_val_max): Move before frange class.
5550 (vrp_val_min): Same.
5551 (frange::frange): Remove set to m_type.
5552
5553 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
5554
5555 * value-range.cc (vrange::supports_type_p): Use const_tree.
5556 (irange::supports_type_p): Same.
5557 (frange::supports_type_p): Same.
5558 * value-range.h (Value_Range::supports_type_p): Same.
5559 (irange::supports_p): Same.
5560
5561 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
5562
5563 * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
5564 query SCEV for integers.
5565 (fold_using_range::range_of_ssa_name_with_loop_info): Remove
5566 irange check.
5567
5568 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
5569
5570 * config/i386/i386.md (define_expand <any_rotate>ti3): For
5571 rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
5572 (rot[lr]64ti2_doubleword): New post-reload splitter.
5573
5574 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
5575 H.J. Lu <hjl.tools@gmail.com>
5576
5577 PR target/106450
5578 * config/i386/i386-features.cc (timode_check_non_convertible_regs):
5579 Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
5580 (timode_remove_non_convertible_regs): Update comment.
5581 Call timode_check_non_convertible_reg on all TImode register
5582 DEFs and USEs in each instruction.
5583
5584 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5585
5586 * config/xtensa/xtensa.md: Change hard register number used in
5587 the split patterns for indirect sibling call fixups from 10 to 11,
5588 the last free one for the CALL0 ABI.
5589
5590 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5591
5592 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
5593 Add new case for IF_THEN_ELSE.
5594
5595 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
5596
5597 * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
5598 (<expander><mode>3<exec>): Use V_INT_noHI.
5599 (v<expander><mode>3<exec>): Likewise.
5600
5601 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
5602
5603 * config/gcn/gcn.md (one_cmpldi2): New.
5604
5605 2022-07-29 Richard Biener <rguenther@suse.de>
5606
5607 PR tree-optimization/105679
5608 * tree-ssa-threadbackward.cc
5609 (back_threader_profitability::profitable_path_p): Avoid threading
5610 when the entry edge is probably never executed.
5611
5612 2022-07-29 Richard Biener <rguenther@suse.de>
5613
5614 PR tree-optimization/106422
5615 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
5616 Check whether we can copy thread blocks and cancel the thread if not.
5617
5618 2022-07-29 Jakub Jelinek <jakub@redhat.com>
5619
5620 PR middle-end/106449
5621 * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
5622 iterators in non-rectangular simd loops. Unshare fd->loops[i].n2
5623 or n2 before regimplifying it inside of a condition.
5624
5625 2022-07-29 Jakub Jelinek <jakub@redhat.com>
5626
5627 * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
5628 extract_omp_for_update_vars, expand_omp_for_ordered_loops,
5629 expand_omp_simd): Don't fold_convert second argument to
5630 fold_build_pointer_plus to sizetype.
5631
5632 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
5633
5634 * config.in: Regenerate.
5635 * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
5636 Select the value of the macro definition according to whether
5637 HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
5638 * configure: Regenerate.
5639 * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
5640
5641 2022-07-29 Richard Biener <rguenther@suse.de>
5642
5643 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
5644 Use CONVERT_EXPR_CODE_P.
5645
5646 2022-07-29 Richard Biener <rguenther@suse.de>
5647
5648 * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
5649 get_vectype_for_scalar_type instead of
5650 vect_get_vector_types_for_stmt.
5651
5652 2022-07-28 David Malcolm <dmalcolm@redhat.com>
5653
5654 PR analyzer/105893
5655 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
5656
5657 2022-07-28 David Malcolm <dmalcolm@redhat.com>
5658
5659 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
5660 url.
5661 (Static Analyzer Options): Likewise. Add urefs for all of the
5662 warnings that have associated CWE identifiers.
5663
5664 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
5665
5666 * doc/implement-c.texi (Floating point implementation): Mention
5667 `-fno-trapping-math' in the context of FENV_ACCESS pragma.
5668 * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
5669 implication in the descriptions of `-fno-trapping-math' and
5670 `-frounding-math'.
5671
5672 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
5673
5674 * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
5675 (QUIET_PATTERN): New int attribute.
5676 (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
5677 RTL insns entirely within the preparation statements.
5678 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
5679 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
5680 insns.
5681 (*riscv_fsnvsnan<mode>2): New insn.
5682
5683 2022-07-28 Richard Biener <rguenther@suse.de>
5684
5685 PR middle-end/106457
5686 * tree.cc (array_at_struct_end_p): Handle array objects
5687 specially.
5688
5689 2022-07-28 Jakub Jelinek <jakub@redhat.com>
5690
5691 PR tree-optimization/106099
5692 * internal-fn.def (TRAP): New internal fn.
5693 * internal-fn.h (expand_TRAP): Declare.
5694 * internal-fn.cc (expand_TRAP): Define.
5695 * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
5696 use internal fn rather than builtin.
5697
5698 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
5699
5700 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
5701
5702 2022-07-27 WANG Xuerui <i@xen0n.name>
5703
5704 * doc/invoke.texi: Document -m[no-]explicit-relocs for
5705 LoongArch.
5706
5707 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
5708
5709 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
5710 duplicate backslashes.
5711
5712 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
5713
5714 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
5715 case.
5716
5717 2022-07-27 Jakub Jelinek <jakub@redhat.com>
5718
5719 PR debug/106261
5720 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
5721 output asm thunks for -dx.
5722
5723 2022-07-27 Jakub Jelinek <jakub@redhat.com>
5724
5725 PR middle-end/106332
5726 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
5727 that candidates is not an empty vector.
5728
5729 2022-07-27 Xi Ruoyao <xry111@xry111.site>
5730
5731 * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
5732 assembler supports explicit relocation for LoongArch.
5733 * configure: Regenerate.
5734 * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
5735 Define to 0 if not defined.
5736 * config/loongarch/genopts/loongarch.opt.in
5737 (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
5738 * config/loongarch/loongarch.opt: Regenerate.
5739
5740 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
5741
5742 PR c/106016
5743 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
5744
5745 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
5746
5747 * config/loongarch/loongarch-opts.cc: Modify the output message string
5748 of the warning.
5749
5750 2022-07-26 Martin Liska <mliska@suse.cz>
5751
5752 * doc/tm.texi.in: Fix placement of defmac.
5753 * doc/tm.texi: Copy.
5754
5755 2022-07-26 Martin Liska <mliska@suse.cz>
5756
5757 * doc/tm.texi.in: Fix cross @defmac and @hook.
5758 * doc/tm.texi: Copy.
5759
5760 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
5761
5762 PR tree-optimization/106444
5763 * value-range-pretty-print.cc (vrange_printer::visit): Handle
5764 legacy ranges.
5765 (vrange_printer::print_irange_bound): Work on wide_int's.
5766 * value-range-pretty-print.h (print_irange_bound): Same.
5767 * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
5768
5769 2022-07-26 Richard Biener <rguenther@suse.de>
5770
5771 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
5772 points to a constant continue checking ptr2.
5773
5774 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
5775
5776 * config/aarch64/aarch64-builtins.cc
5777 (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
5778 (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
5779 (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
5780 (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
5781 (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
5782 (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
5783 (MODE_q_p128): Define macro to map to corresponding mode name.
5784 (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
5785 (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
5786 (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
5787 corresponding qualifier name.
5788 (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
5789 (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
5790 functions for the above mappings
5791 (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
5792 (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
5793 (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
5794 (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
5795 for all vreinterpret intrinsics
5796 (enum aarch64_builtins): Add vreinterpret function codes
5797 (aarch64_init_simd_intrinsics): New
5798 (handle_arm_neon_h): Improved comment.
5799 (aarch64_general_fold_builtin): Fold vreinterpret calls
5800 * config/aarch64/arm_neon.h
5801 (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
5802 (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
5803 (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
5804 (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
5805 (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
5806 (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
5807 (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
5808 (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
5809 (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
5810 (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
5811 (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
5812 (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
5813 (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
5814 (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
5815 (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
5816 (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
5817 (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
5818 (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
5819 (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
5820 (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
5821 (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
5822 (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
5823 (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
5824 (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
5825 (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
5826 (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
5827 (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
5828 (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
5829 (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
5830 (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
5831 (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
5832 (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
5833 (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
5834 (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
5835 (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
5836 (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
5837 (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
5838 (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
5839 (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
5840 (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
5841 (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
5842 (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
5843 (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
5844 (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
5845 (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
5846 (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
5847 (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
5848 (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
5849 (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
5850 (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
5851 (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
5852 (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
5853 (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
5854 (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
5855 (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
5856 (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
5857 (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
5858 (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
5859 (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
5860 (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
5861 (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
5862 (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
5863 (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
5864 (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
5865 (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
5866 (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
5867 (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
5868 (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
5869 (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
5870 (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
5871 (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
5872 (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
5873 (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
5874 (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
5875 (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
5876 (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
5877 (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
5878 (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
5879 (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
5880 (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
5881 (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
5882 (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
5883 (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
5884 (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
5885 (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
5886 (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
5887 (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
5888 (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
5889 (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
5890 (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
5891 (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
5892 (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
5893 (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
5894 (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
5895 (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
5896 (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
5897 (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
5898 (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
5899 (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
5900 (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
5901 (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
5902 (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
5903 (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
5904 (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
5905 (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
5906 (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
5907 (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
5908 (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
5909 (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
5910 (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
5911 (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
5912 (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
5913 (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
5914 (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
5915 (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
5916 (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
5917 (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
5918 (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
5919 (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
5920 (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
5921 (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
5922 (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
5923 (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
5924 (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
5925 (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
5926 (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
5927 (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
5928 (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
5929 (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
5930 (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
5931 (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
5932 (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
5933 (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
5934 (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
5935 (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
5936 (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
5937 (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
5938 (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
5939 (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
5940 (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
5941 (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
5942 (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
5943 (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
5944 (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
5945 (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
5946 (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
5947 (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
5948 (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
5949 (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
5950 (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
5951 (vreinterpretq_p128_bf16): Delete
5952
5953 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
5954
5955 * config/aarch64/aarch64-builtins.cc
5956 (aarch64_simd_builtin_std_type): Rename to...
5957 (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
5958 (aarch64_lookup_simd_builtin_type): Rename to...
5959 (aarch64_simd_builtin_type): ...this. Add const/pointer
5960 support, and extract table lookup to...
5961 (aarch64_lookup_simd_type_in_table): ...this function.
5962 (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
5963 (aarch64_init_fcmla_laneq_builtins): Ditto.
5964 (aarch64_init_simd_builtin_functions): Ditto.
5965
5966 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
5967
5968 * config/aarch64/aarch64-builtins.cc
5969 (aarch64_general_gimple_fold_builtin): Add combine.
5970
5971 2022-07-26 Richard Biener <rguenther@suse.de>
5972
5973 PR tree-optimization/106189
5974 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
5975 Divide using offset_ints.
5976
5977 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
5978
5979 * common/config/loongarch/loongarch-common.cc:
5980 Enable '-fsection-anchors' when O1 and more advanced optimization.
5981 * config/loongarch/genopts/loongarch.opt.in: Add new option
5982 '-mexplicit-relocs', and enable by default.
5983 * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
5984 Delete function declaration.
5985 (loongarch_split_move_insn): Delete function declaration.
5986 (loongarch_split_symbol_type): Add function declaration.
5987 * config/loongarch/loongarch.cc (enum loongarch_address_type):
5988 Add new address type 'ADDRESS_LO_SUM'.
5989 (loongarch_classify_symbolic_expression): New function definitions.
5990 Classify the base of symbolic expression X, given that X appears in
5991 context CONTEXT.
5992 (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
5993 (loongarch_split_symbol_type): New function definitions.
5994 Determines whether the symbol load should be split into two instructions.
5995 (loongarch_valid_lo_sum_p): New function definitions.
5996 Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
5997 symbol has type SYMBOL_TYPE.
5998 (loongarch_classify_address): Add handling of 'LO_SUM'.
5999 (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
6000 (loongarch_signed_immediate_p): Sort code.
6001 (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
6002 (loongarch_const_insns): Add handling of 'HIGH'.
6003 (loongarch_split_move_insn_p): Add the static attribute to the function.
6004 (loongarch_emit_set): New function definitions.
6005 (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
6006 (loongarch_legitimize_tls_address): Add symbol handling when defining the
6007 TARGET_EXPLICIT_RELOCS macro.
6008 (loongarch_split_symbol): New function definitions. Split symbol.
6009 (loongarch_legitimize_address): Add codes see if the address can split into a high part
6010 and a LO_SUM.
6011 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
6012 high and low.
6013 (loongarch_split_move_insn): Delete function definitions.
6014 (loongarch_output_move): Add support for HIGH and LO_SUM.
6015 (loongarch_print_operand_reloc): New function definitions.
6016 Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
6017 (loongarch_memmodel_needs_release_fence): Sort code.
6018 (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
6019 and LOW output.
6020 (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
6021 (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
6022 (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
6023 * config/loongarch/loongarch.md (movti): Delete the template.
6024 (*movti): Delete the template.
6025 (movtf): Delete the template.
6026 (*movtf): Delete the template.
6027 (*low<mode>): New template of normal symbol low address.
6028 (@tls_low<mode>): New template of tls symbol low address.
6029 (@ld_from_got<mode>): New template load address from got table.
6030 (@ori_l_lo12<mode>): New template.
6031 * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
6032 * config/loongarch/predicates.md: Add support for symbol_type HIGH.
6033
6034 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
6035
6036 * config/loongarch/constraints.md (a): Delete the constraint.
6037 (b): A constant call not local address.
6038 (h): Delete the constraint.
6039 (t): Delete the constraint.
6040 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
6041 Remove cModel type support other than normal.
6042 * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
6043 Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
6044 (loongarch_split_symbol): Delete useless function declarations.
6045 (loongarch_split_symbol_type): Delete useless function declarations.
6046 * config/loongarch/loongarch.cc (enum loongarch_address_type):
6047 Delete unnecessary comment information.
6048 (loongarch_symbol_binds_local_p): Modified the judgment order of label
6049 and symbol.
6050 (loongarch_classify_symbol): Return symbol type. If symbol is a label,
6051 or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
6052 return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
6053 (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
6054 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
6055 (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
6056 and 'SYMBOL_PCREL'.
6057 (loongarch_address_insns): Sort code.
6058 (loongarch_12bit_offset_address_p): Sort code.
6059 (loongarch_14bit_shifted_offset_address_p): Sort code.
6060 (loongarch_call_tls_get_addr): Sort code.
6061 (loongarch_legitimize_tls_address): Sort code.
6062 (loongarch_output_move): Remove schema support for cmodel other than normal.
6063 (loongarch_memmodel_needs_release_fence): Sort code.
6064 (loongarch_print_operand): Sort code.
6065 * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
6066 Rename to LARCH_12BIT_OFFSET_P.
6067 (LARCH_12BIT_OFFSET_P): New macro.
6068 * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
6069 support for cmodel other than normal.
6070 * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
6071 (is_const_call_plt_symbol): Delete this predicate.
6072 (is_const_call_global_noplt_symbol): Delete this predicate.
6073 (is_const_call_no_local_symbol): New predicate, determines whether it is a local
6074 symbol or label.
6075
6076 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
6077
6078 PR target/106091
6079 * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
6080 REG_EH_REGION when replacing one store insn having it.
6081 (replace_swapped_aligned_load): Likewise.
6082
6083 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
6084
6085 * Makefile.in (OBJS): Add range-op-float.o.
6086 * range-op.cc (get_float_handler): New.
6087 (range_op_handler::range_op_handler): Save code and type for
6088 delayed querying.
6089 (range_op_handler::oeprator bool): Move from header file, and
6090 add support for floats.
6091 (range_op_handler::fold_range): Add support for floats.
6092 (range_op_handler::op1_range): Same.
6093 (range_op_handler::op2_range): Same.
6094 (range_op_handler::lhs_op1_relation): Same.
6095 (range_op_handler::lhs_op2_relation): Same.
6096 (range_op_handler::op1_op2_relation): Same.
6097 * range-op.h (class range_operator_float): New.
6098 (class floating_op_table): New.
6099 * value-query.cc (range_query::get_tree_range): Add case for
6100 REAL_CST.
6101 * range-op-float.cc: New file.
6102
6103 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
6104 Uroš Bizjak <ubizjak@gmail.com>
6105
6106 PR target/91681
6107 * config/i386/i386-expand.cc (split_double_concat): A new helper
6108 function for setting a double word value from two word values.
6109 * config/i386/i386-protos.h (split_double_concat): Prototype here.
6110 * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
6111 (*add<dwi>3_doubleword_zext): New define_insn_and_split.
6112 (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
6113 (*concat<mode><dwi>3_1): New define_insn_and_split replacing
6114 previous define_split for implementing DST = (HI<<32)|LO as
6115 pair of move instructions, setting lopart and hipart.
6116 (*concat<mode><dwi>3_2): Likewise.
6117 (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
6118 (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
6119
6120 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
6121
6122 PR middle-end/106432
6123 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
6124 when the result range type is unsupported.
6125
6126 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
6127
6128 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
6129
6130 2022-07-25 Richard Biener <rguenther@suse.de>
6131
6132 PR middle-end/106414
6133 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
6134 precision types.
6135
6136 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
6137
6138 * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
6139 (@aarch64_rbit<mode>): ... to this and change it in...
6140 (ffs<mode>2,ctz<mode>2): ... here.
6141 (@aarch64_rev16<mode>): New.
6142 * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
6143 Define the following enum AARCH64_REV16, AARCH64_REV16L,
6144 AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
6145 (aarch64_init_data_intrinsics): New.
6146 (aarch64_general_init_builtins): Add call to
6147 aarch64_init_data_intrinsics.
6148 (aarch64_expand_builtin_data_intrinsic): New.
6149 (aarch64_general_expand_builtin): Add call to
6150 aarch64_expand_builtin_data_intrinsic.
6151 * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
6152 __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
6153 __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
6154
6155 2022-07-25 Martin Liska <mliska@suse.cz>
6156
6157 * doc/extend.texi: Remove trailing whitespaces.
6158 * doc/invoke.texi: Likewise.
6159
6160 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
6161
6162 * value-range-pretty-print.cc (vrange_printer::visit): New.
6163 (vrange_printer::print_frange_prop): New.
6164 * value-range-pretty-print.h (class vrange_printer): Add visit and
6165 print_frange_prop.
6166 * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
6167 (vrange_allocator::alloc_frange): New.
6168 * value-range.cc (vrange::operator=): Handle frange.
6169 (vrange::operator==): Same.
6170 (frange::accept): New.
6171 (frange::set): New.
6172 (frange::normalize_kind): New.
6173 (frange::union_): New.
6174 (frange::intersect): New.
6175 (frange::operator=): New.
6176 (frange::operator==): New.
6177 (frange::supports_type_p): New.
6178 (frange::verify_range): New.
6179 * value-range.h (enum value_range_discriminator): Handle frange.
6180 (class fp_prop): New.
6181 (FP_PROP_ACCESSOR): New.
6182 (class frange_props): New.
6183 (FRANGE_PROP_ACCESSOR): New.
6184 (class frange): New.
6185 (Value_Range::init): Handle frange.
6186 (Value_Range::operator=): Same.
6187 (Value_Range::supports_type_p): Same.
6188 (frange_props::operator==): New.
6189 (frange_props::union_): New.
6190 (frange_props::intersect): New
6191 (frange::frange): New.
6192 (frange::type): New.
6193 (frange::set_varying): New.
6194 (frange::set_undefined): New.
6195
6196 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
6197 Kewen Lin <linkw@linux.ibm.com>
6198
6199 PR testsuite/106345
6200 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
6201 to filter out all -mtune options.
6202
6203 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
6204
6205 * value-query.cc (range_query::get_value_range): Add assert.
6206 * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
6207 on unsupported types in vr_values.
6208 (simplify_using_ranges::simplify): Same.
6209
6210 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
6211
6212 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
6213 types.
6214 * value-query.cc (get_ssa_name_range_info): Remove precision check.
6215
6216 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
6217
6218 * value-relation.cc (value_relation::set_relation): Remove assert.
6219 (path_oracle::register_relation): Exit when trying to register
6220 same SSA name relations.
6221
6222 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
6223
6224 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
6225 (ranger_cache::range_from_dom): Same.
6226 * tree-ssa-dom.cc
6227 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
6228
6229 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
6230 H.J. Lu <hjl.tools@gmail.com>
6231
6232 PR target/106303
6233 PR target/106347
6234 * config/i386/i386-features.cc (make_vector_copies): Move from
6235 general_scalar_chain to scalar_chain.
6236 (convert_reg): Likewise.
6237 (convert_insn_common): New scalar_chain method split out from
6238 general_scalar_chain convert_insn.
6239 (convert_registers): Move from general_scalar_chain to
6240 scalar_chain.
6241 (scalar_chain::convert): Call convert_insn_common before calling
6242 convert_insn.
6243 (timode_remove_non_convertible_regs): Iterate until there are
6244 no further changes to the candidates.
6245 * config/i386/i386-features.h (scalar_chain::hash_map): Move
6246 from general_scalar_chain.
6247 (scalar_chain::convert_reg): Likewise.
6248 (scalar_chain::convert_insn_common): New shared method.
6249 (scalar_chain::make_vector_copies): Move from general_scalar_chain.
6250 (scalar_chain::convert_registers): Likewise. No longer virtual.
6251 (general_scalar_chain::hash_map): Delete. Moved to scalar_chain.
6252 (general_scalar_chain::convert_reg): Likewise.
6253 (general_scalar_chain::make_vector_copies): Likewise.
6254 (general_scalar_chain::convert_registers): Delete virtual method.
6255 (timode_scalar_chain::convert_registers): Likewise.
6256
6257 2022-07-23 Immad Mir <mirimmad@outlook.com>
6258
6259 * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
6260 "Common Function Attributes" section.
6261 * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
6262 -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
6263 warnings may be emitted through usage of three function attributes used
6264 for static analysis of file descriptors namely fd_arg, fd_arg_read and
6265 fd_arg_write.
6266
6267 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6268
6269 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
6270 Add a new insn_and_split pattern, and a few split patterns for
6271 spacial cases.
6272
6273 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
6274
6275 * graphds.cc (graphds_scc): Fix algorithm attribution.
6276
6277 2022-07-22 Richard Biener <rguenther@suse.de>
6278
6279 PR tree-optimization/106403
6280 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
6281 value valueization after check for IFN_MASKED_STORE or
6282 IFN_LEN_STORE.
6283
6284 2022-07-22 Richard Biener <rguenther@suse.de>
6285
6286 PR tree-optimization/106397
6287 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
6288 not update SSA form here.
6289 (mark_nontemporal_stores): Return whether we marked any
6290 non-temporal stores and inserted mfence.
6291 (loop_prefetch_arrays): Note when we need to update SSA.
6292 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
6293 at the end of the pass.
6294
6295 2022-07-22 Richard Biener <rguenther@suse.de>
6296
6297 PR tree-optimization/106387
6298 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
6299 if ptr is not an SSA name.
6300
6301 2022-07-22 liuhongt <hongtao.liu@intel.com>
6302
6303 PR target/106038
6304 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
6305 original "<code><mode>3".
6306 (*<code><mode>3): New define_insn, it's original
6307 "<code><mode>3" be extended to handle memory and immediate
6308 operand with ix86_binary_operator_ok. Also adjust define_split
6309 after it.
6310 (mmxinsnmode): New mode attribute.
6311 (*mov<mode>_imm): Refactor with mmxinsnmode.
6312 * config/i386/predicates.md
6313 (register_or_x86_64_const_vector_operand): New predicate.
6314
6315 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
6316
6317 * config/rs6000/altivec.md:
6318 (vstrir_code_<mode>): Rename to...
6319 (vstrir_direct_<mode>): ... this.
6320 (vstrir_p_code_<mode>): Rename to...
6321 (vstrir_p_direct_<mode>): ... this.
6322 (vstril_code_<mode>): Rename to...
6323 (vstril_direct_<mode>): ... this.
6324 (vstril_p_code_<mode>): Rename to...
6325 (vstril_p_direct_<mode>): ... this.
6326
6327 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
6328
6329 * config/rs6000/rs6000-c.cc: Update comments.
6330 (rs6000_target_modify_macros): Remove bu_mask references.
6331 (rs6000_define_or_undefine_macro): Replace bu_mask reference
6332 with a rs6000_cpu value check.
6333 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
6334 parameter from call to rs6000_target_modify_macros.
6335 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
6336 rs6000_target_modify_macros_ptr): Remove parameter from extern
6337 for the prototype.
6338 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
6339 parameter from prototype, update calls to this function.
6340 (rs6000_print_builtin_options): Remove prototype, call and function.
6341 (rs6000_builtin_mask_calculate): Remove function.
6342 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
6343 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
6344 and builtin_mask debug output.
6345 (rs6000_builtin_mask_names): Remove.
6346 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
6347 diff_bumask references; Update calls to rs6000_target_modify_ptr.
6348 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
6349
6350 2022-07-21 Sam Feifer <sfeifer@redhat.com>
6351
6352 PR tree-optimization/94920
6353 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
6354 (x <= 0 ? -x : 0): New simplification.
6355
6356 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6357
6358 Revert:
6359 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6360
6361 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
6362 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
6363
6364 2022-07-21 Richard Biener <rguenther@suse.de>
6365
6366 PR tree-optimization/106379
6367 * match.pd (~(a ^ b) -> a == b): New pattern.
6368
6369 2022-07-21 Richard Biener <rguenther@suse.de>
6370
6371 PR tree-optimization/106378
6372 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
6373 LEN_STORE, add mode to initialize a may-def and handle
6374 MASK_STORE that way.
6375 (dse_optimize_stmt): Query may-defs. Handle internal
6376 functions LEN_STORE and MASK_STORE similar to how
6377 we handle memory builtins but without byte tracking.
6378
6379 2022-07-21 Richard Biener <rguenther@suse.de>
6380
6381 PR tree-optimization/106365
6382 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
6383 the offset to start encoding of RHS from.
6384 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
6385 (vn_walk_cb_data::push_partial_def): Allow the first partial
6386 definition to be fully providing the def. Offset RHS
6387 before encoding if requested.
6388 (vn_reference_lookup_3): Initialize def_rhs everywhere.
6389 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
6390
6391 2022-07-21 Richard Biener <rguenther@suse.de>
6392
6393 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
6394 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
6395 and IFN_MASK_LOAD_LANES.
6396 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
6397 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
6398
6399 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
6400
6401 PR rtl-optimization/101347
6402 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
6403 population of nonlocal_goto_handler_labels from here ...
6404 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
6405 * rtlanal.cc (remove_node_from_insn_list): Verify that a
6406 duplicate is not present in the remainder of the list.
6407
6408 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
6409
6410 * rtl.h (remove_node_from_expr_list): Remove declaration.
6411 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
6412
6413 2022-07-20 Richard Biener <rguenther@suse.de>
6414
6415 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
6416 invariant updated address when the input was invariant.
6417
6418 2022-07-20 liuhongt <hongtao.liu@intel.com>
6419
6420 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
6421 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
6422 * timevar.def (TV_TREE_POWCABS): New timevar.
6423 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
6424 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
6425 (class pass_expand_powcabs): Ditto.
6426 (pass_expand_powcabs::execute): Ditto.
6427 (make_pass_expand_powcabs): Ditto.
6428 (pass_cse_sincos::execute): Remove pow/cabs expand part.
6429 (make_pass_cse_sincos): Ditto.
6430
6431 2022-07-20 Richard Biener <richard.guenther@gmail.com>
6432 Hongtao Liu <hongtao.liu@intel.com>
6433
6434 PR tree-optimization/106010
6435 * tree-complex.cc (init_dont_simulate_again): Lower complex
6436 type move.
6437 (expand_complex_move): Also expand COMPLEX_CST for rhs.
6438
6439 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
6440
6441 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
6442 for incoming ranges on join nodes and add to worklist.
6443
6444 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
6445
6446 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
6447 (ranger_cache::range_from_dom): Put all nodes to be calculated
6448 in the worklist and resolve after the dom walk.
6449 * gimple-range-cache.h (resolve_dom): New prototype.
6450
6451 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
6452
6453 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
6454 returns_twice calls.
6455
6456 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
6457
6458 * cfghooks.cc (duplicate_block): Expand comment.
6459 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
6460 calls that may return twice.
6461
6462 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
6463
6464 * tree-ssa-sink.cc (select_best_block): Punt if selected block
6465 has incoming abnormal edges.
6466
6467 2022-07-19 Martin Liska <mliska@suse.cz>
6468
6469 * doc/extend.texi: Remove trailing :.
6470
6471 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6472
6473 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
6474 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
6475
6476 2022-07-19 Richard Biener <rguenther@suse.de>
6477
6478 PR middle-end/106331
6479 * builtins.cc (get_memory_rtx): Compute alignment from
6480 the original address and set MEM_OFFSET to unknown when
6481 we create a MEM_EXPR from the base object of the address.
6482
6483 2022-07-19 Richard Biener <rguenther@suse.de>
6484
6485 PR lto/106334
6486 * dwarf2out.cc (dwarf2out_register_external_die): Allow
6487 map entry re-use during WPA.
6488
6489 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
6490 Richard Biener <rguenther@suse.de>
6491
6492 PR c/106264
6493 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
6494 COMPOUND_EXPR to silence spurious warning if result isn't used.
6495 (fold_builtin_modf): Likewise.
6496 (do_mpfr_remquo): Likewise.
6497
6498 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6499
6500 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
6501 Change the relative cost of '(set (reg) (const_int N))' where
6502 N fits into signed 12-bit from 4 to 0 if optimizing for size.
6503 And use the appropriate macro instead of the bare number 4.
6504
6505 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
6506
6507 PR tree-optimization/106280
6508 * value-relation.cc (dom_oracle::register_relation): Register
6509 transitives only when it is possible for there to be one.
6510 (dom_oracle::set_one_relation): Return NULL if this is an
6511 existing relation.
6512
6513 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
6514
6515 * doc/invoke.texi (RISC-V Options): Add index references for
6516 `mrelax' and `mriscv-attribute'.
6517
6518 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
6519
6520 * doc/invoke.texi (Option Summary): Add missing second space
6521 around `-mstack-protector-guard-reg='.
6522
6523 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
6524
6525 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
6526 (RISC-V Options): Likewise, and `-mriscv-attribute'.
6527
6528 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
6529
6530 * config/arc/arc-arch.h (arc_tune_attr): Add
6531 ARC_TUNE_ARCHS4X_REL31A variant.
6532 * config/arc/arc.cc (arc_override_options): Tune options for
6533 release 310a.
6534 (arc_sched_issue_rate): Use correct enum.
6535 (arc600_corereg_hazard): Textual change.
6536 (arc_hazard): Add release 310a tunning.
6537 * config/arc/arc.md (tune): Update and take into consideration new
6538 tune option.
6539 (tune_dspmpy): Likewise.
6540 (tune_store): New attribute.
6541 * config/arc/arc.opt (mtune): New tune option.
6542 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
6543 (hs4x_brcc_op): New instruction rezervation.
6544 (hs4x_data_store_1_op): Likewise.
6545 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
6546 * config/arc/arc-tables.opt: Regenerate.
6547 * config/arc/t-multilib: Likewise.
6548 * doc/invoke.texi (ARC): Update mcpu and tune sections.
6549
6550 2022-07-18 Richard Biener <rguenther@suse.de>
6551
6552 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
6553 When computing cost-based merging do not disregard builtin
6554 classified partitions in some cases.
6555
6556 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
6557
6558 PR target/106253
6559 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
6560 Delete.
6561 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
6562 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6563 Delete.
6564 * config/arm/arm_neon_builtins.def (copysignf): Delete.
6565 * config/arm/iterators.md (nvrint_pattern): New attribute.
6566 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
6567 New pattern.
6568 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
6569 Likewise.
6570 (neon_copysignf<mode>): Rename to...
6571 (copysign<mode>3): ...this.
6572
6573 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
6574
6575 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
6576 pointer first when in interrupts.
6577
6578 2022-07-18 Richard Biener <rguenther@suse.de>
6579
6580 * tree-loop-distribution.cc (copy_loop_before): Add
6581 the ability to replace the original LC PHI defs.
6582 (generate_loops_for_partition): Pass through a flag
6583 whether to redirect original LC PHI defs.
6584 (generate_code_for_partition): Likewise.
6585 (loop_distribution::distribute_loop): Compute the partition
6586 that should provide the LC PHI defs for common reductions
6587 and pass that down.
6588
6589 2022-07-18 Richard Ball <richard.ball@arm.com>
6590
6591 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
6592 (aarch64_evpc_uzp): Likewise.
6593 (aarch64_evpc_zip): Likewise.
6594
6595 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
6596
6597 PR target/106231
6598 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
6599 to recognize any_extend:DI of ctz:SI which is implicitly extended.
6600 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
6601 extended ctz:SI that has preceding xor to break false dependency.
6602
6603 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
6604
6605 * config/i386/predicates.md (x86_64_const_vector_operand):
6606 Check the operand's mode matches the specified mode argument.
6607
6608 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
6609
6610 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
6611 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
6612 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
6613 (vec_pack_trunc_qi): Update to specify the now required
6614 UNSPEC_MASKOP unspec.
6615 (vec_pack_trunc_<mode>): Likewise.
6616
6617 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6618
6619 * config/xtensa/xtensa.md
6620 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
6621 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
6622 represented as '-(1 << N)', decrease the lower bound of N from 12
6623 to 1. And the other immediate for conditional branch is now no
6624 longer limited to zero, but also one of some positive integers.
6625 Finally, remove the checks of some conditions, because the comparison
6626 expressions that don't satisfy such checks are determined as
6627 compile-time constants and thus will be optimized away before
6628 RTL expansion.
6629
6630 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6631
6632 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
6633 (xtensa_constantsynth_2insn): Change to try all three synthetic
6634 methods and to use the one that fits the immediate value of
6635 the seed into a Narrow Move Immediate instruction "MOVI.N"
6636 when the Code Density Option is configured.
6637
6638 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
6639
6640 PR target/85620
6641 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
6642 false if callee has indirect_return attribute and caller
6643 doesn't.
6644
6645 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
6646
6647 PR target/106273
6648 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
6649 constraints to reflect the output is earlyclobber, unless it is
6650 the same register (pair) as one of the operands.
6651
6652 2022-07-15 David Malcolm <dmalcolm@redhat.com>
6653
6654 * doc/invoke.texi (Static Analyzer Options): Add the new fd
6655 warnings to the initial gccoptlist, and to the list of those
6656 disabled by -fanalyzer-checker=taint.
6657
6658 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
6659
6660 * config/aarch64/aarch64-builtins.cc
6661 (enum aarch64_type_qualifiers): Remove qualifier_internal.
6662 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
6663
6664 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
6665
6666 * config/aarch64/aarch64-builtins.cc
6667 (v1di_UP): Add V1DI mode to _UP macros.
6668 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
6669 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
6670 * config/aarch64/aarch64-simd.md
6671 (vec_extractv2dfv1df): Replace with...
6672 (vec_extract<mode><V1half>): ...this.
6673 * config/aarch64/aarch64.cc
6674 (aarch64_classify_vector_mode): Add V1DI mode.
6675 * config/aarch64/iterators.md
6676 (VQ_2E, V1HALF, V1half): New.
6677 (nunits): Add V1DI mode.
6678
6679 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
6680
6681 PR target/106278
6682 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
6683 Fix indentation whitespace.
6684 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
6685 (timode_scalar_chain::convert_insn): Delete dead code.
6686 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
6687 Fix indentation whitespace.
6688 (convertible_comparison_p): Likewise.
6689 (timode_scalar_to_vector_candidate_p): Likewise.
6690
6691 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
6692
6693 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
6694
6695 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
6696
6697 * Makefile.in (OBJS): Add value-range-pretty-print.o.
6698 * pretty-print.h (pp_vrange): New.
6699 * value-range.cc (vrange::dump): Call pp version.
6700 (unsupported_range::dump): Move to its own file.
6701 (dump_bound_with_infinite_markers): Same.
6702 (irange::dump): Same.
6703 (irange::dump_bitmasks): Same.
6704 (vrange::debug): Remove.
6705 * value-range.h: Remove virtual designation for dump methods.
6706 Remove dump_bitmasks method.
6707 * value-range-pretty-print.cc: New file.
6708 * value-range-pretty-print.h: New file.
6709
6710 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
6711
6712 * value-range.cc (irange::accept): New.
6713 (unsupported_range::accept): New.
6714 * value-range.h (class vrange_visitor): New.
6715 (class vrange): Add accept method.
6716 (class unsupported_range): Same.
6717 (class Value_Range): Same.
6718
6719 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
6720
6721 * diagnostic-format-json.cc (json_from_location_range): Adjust
6722 to new label_text API.
6723 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
6724 Likewise.
6725 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
6726 (layout::print_any_labels): Likewise.
6727 * tree-diagnostic-path.cc (class path_label): Likewise.
6728 (struct event_range): Likewise.
6729 (default_tree_diagnostic_path_printer): Likewise.
6730 (default_tree_make_json_for_path): Likewise.
6731
6732 2022-07-15 konglin1 <lingling.kong@intel.com>
6733
6734 PR target/106113
6735 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
6736 comparison due to intrinsics changed over time.
6737 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
6738 Add unordered check and mode for sse comi codegen.
6739 (ix86_expand_sse_comi): Add unordered check and check a different
6740 CCmode.
6741 (ix86_expand_sse_comi_round):Extract unordered check and mode part
6742 in ix86_ssecom_setcc.
6743
6744 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6745
6746 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
6747 op_mode instead of vmode in calls to force_reg for op0 and op1.
6748
6749 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
6750
6751 PR tree-optimization/103798
6752 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
6753 (simplify_builtin_call): Inline memchr with constant strings of
6754 no more than the bytes of a word.
6755 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
6756 * tree-ssa-strlen.h (use_in_zero_equality): New.
6757
6758 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
6759
6760 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
6761 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
6762 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
6763 pass it in the call to lookup_tmp_var.
6764 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
6765 (get_initialized_tmp_var): Likewise.
6766 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
6767 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
6768
6769 2022-07-14 Martin Liska <mliska@suse.cz>
6770
6771 * doc/gimple.texi: Close properly a deftypefn.
6772
6773 2022-07-14 Martin Liska <mliska@suse.cz>
6774
6775 * doc/gimple.texi: Close properly a deftypefn.
6776
6777 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6778
6779 * config/xtensa/xtensa.md:
6780 In FP constant synthesis split pattern, subcontract to
6781 avoid_constant_pool_reference() as in the case of integer,
6782 because it can handle well too. And cast to int32_t before
6783 calling xtensa_constantsynth() in order to ignore upper 32-bit.
6784
6785 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
6786
6787 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
6788
6789 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
6790
6791 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
6792 (irange::legacy_intersect): Clear nonzero mask.
6793 (irange::legacy_union): Same.
6794 (irange::invert): Same.
6795
6796 2022-07-13 Richard Biener <rguenther@suse.de>
6797
6798 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
6799 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
6800 (dom_jt_state::get_blocks_on_stack): Likewise.
6801 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
6802 (back_propagate_equivalences): Remove dominator bitmap
6803 compute and instead use passed in m_blocks_on_stack.
6804 (record_temporary_equivalences): Likewise.
6805 (record_equivalences_from_incoming_edge): Likewise.
6806 (dom_opt_dom_walker::before_dom_children): Maintain and
6807 pass down blocks on stack.
6808 (dom_opt_dom_walker::after_dom_children): Likewise.
6809
6810 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
6811
6812 * config/aarch64/aarch64-builtins.cc
6813 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
6814
6815 2022-07-13 Richard Biener <rguenther@suse.de>
6816
6817 PR tree-optimization/106249
6818 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
6819 Only verify LC SSA of the new_loop if we created it.
6820 Use TODO_update_ssa_nophi for the SSA update after versioning
6821 the loop.
6822
6823 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
6824
6825 * range-op.cc (unsigned_singleton_p): Remove.
6826 (operator_bitwise_and::remove_impossible_ranges): Remove.
6827 (operator_bitwise_and::fold_range): Set nonzero bits. *
6828 * value-range.cc (irange::get_nonzero_bits): Remove
6829 legacy_mode_p assert.
6830 (irange::dump_bitmasks): Remove legacy_mode_p check.
6831
6832 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
6833
6834 PR target/106253
6835 * predict.h (insn_optimization_type): Declare.
6836 * predict.cc (insn_optimization_type): New function.
6837 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
6838 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
6839 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
6840 * internal-fn.cc (unary_convert_direct): New macro.
6841 (expand_convert_optab_fn): New function.
6842 (expand_unary_convert_optab_fn): New macro.
6843 (direct_unary_convert_optab_supported_p): Likewise.
6844 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
6845 convert_optab_handler.
6846 * config/aarch64/aarch64-protos.h
6847 (aarch64_builtin_vectorized_function): Delete.
6848 * config/aarch64/aarch64-builtins.cc
6849 (aarch64_builtin_vectorized_function): Delete.
6850 * config/aarch64/aarch64.cc
6851 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
6852 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
6853 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
6854 optimize_insn_for_size_p test.
6855
6856 2022-07-12 Richard Biener <rguenther@suse.de>
6857
6858 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
6859 Remove.
6860 (vect_do_peeling): Do not call it, adjust comment.
6861
6862 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
6863
6864 * config/aarch64/aarch64-builtins.cc
6865 (aarch64_builtin_vectorized_function): Remove handling of
6866 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
6867
6868 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
6869
6870 PR tree-optimization/106234
6871 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
6872 cache value before recursively resolving it.
6873
6874 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
6875
6876 * config/i386/i386-features.h (scalar_chain): Add fields
6877 insns_conv, n_sse_to_integer and n_integer_to_sse to this
6878 parent class, moved from general_scalar_chain.
6879 (scalar_chain::convert_compare): Protected method moved
6880 from general_scalar_chain.
6881 (mark_dual_mode_def): Make protected, not private virtual.
6882 (scalar_chain:convert_op): New private virtual method.
6883 (general_scalar_chain::general_scalar_chain): Simplify constructor.
6884 (general_scalar_chain::~general_scalar_chain): Delete destructor.
6885 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
6886 n_integer_to_sse fields to parent class, scalar_chain.
6887 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
6888 (general_scalar_chain::convert_compare): Delete prototype.
6889 (timode_scalar_chain::compute_convert_gain): Remove simplistic
6890 implementation, convert to a method prototype.
6891 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
6892 (timode_scalar_chain::convert_op): Prototype new virtual method.
6893 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
6894 Allocate insns_conv and initialize n_sse_to_integer and
6895 n_integer_to_sse fields in constructor.
6896 (scalar_chain::scalar_chain): Free insns_conv in destructor.
6897 (general_scalar_chain::general_scalar_chain): Delete
6898 constructor, now defined in the class declaration.
6899 (general_scalar_chain::~general_scalar_chain): Delete destructor.
6900 (scalar_chain::mark_dual_mode_def): Renamed from
6901 general_scalar_chain::mark_dual_mode_def.
6902 (timode_scalar_chain::mark_dual_mode_def): Delete.
6903 (scalar_chain::convert_compare): Renamed from
6904 general_scalar_chain::convert_compare.
6905 (timode_scalar_chain::compute_convert_gain): New method to
6906 determine the gain from converting a TImode chain to V1TImode.
6907 (timode_scalar_chain::convert_op): New method to convert an
6908 operand from TImode to V1TImode.
6909 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
6910 on REG_EQUAL notes that were originally TImode (not CONST_INT).
6911 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
6912 (timode_mem_p): Helper predicate to check where operand is
6913 memory reference with sufficient alignment for TImode STV.
6914 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
6915 to check whether COMPARE is convertible. Handle SET_DESTs that
6916 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
6917 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
6918
6919 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
6920
6921 PR tree-optimization/106250
6922 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
6923 argument to directly_supported_p.
6924
6925 2022-07-11 Richard Biener <rguenther@suse.de>
6926
6927 * tree-into-ssa.cc (update_ssa): Do not forcefully
6928 re-compute dominance fast queries for TODO_update_ssa_no_phi.
6929
6930 2022-07-11 Richard Biener <rguenther@suse.de>
6931
6932 PR tree-optimization/106228
6933 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
6934 VUSE compute for the non-loop case.
6935
6936 2022-07-11 Richard Biener <rguenther@suse.de>
6937
6938 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
6939 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
6940 (rewrite_update_dom_walker::m_in_region_flag): New.
6941 (rewrite_update_dom_walker::before_dom_children): If the region
6942 to update is marked, STOP at exits.
6943 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
6944 to be updated.
6945 (dump_update_ssa): Use bitmap_empty_p.
6946 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
6947 TODO_update_ssa_no_phi.
6948 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
6949 pending update_ssa to the caller.
6950
6951 2022-07-11 Richard Biener <rguenthert@suse.de>
6952
6953 PR target/105459
6954 * config/i386/i386-options.cc (ix86_set_current_function):
6955 Rebuild the target optimization node whenever necessary,
6956 not only when the optimization node didn't change.
6957
6958 2022-07-11 Richard Biener <rguenther@suse.de>
6959
6960 PR tree-optimization/106228
6961 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
6962 set a VUSE operand on the emitted load.
6963
6964 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
6965
6966 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
6967 verification against legacy value_range.
6968 (gimple_ranger::register_inferred_ranges): Same.
6969 (gimple_ranger::export_global_ranges): Rename update_global_range
6970 to set_range_info.
6971 * tree-core.h (struct range_info_def): Remove.
6972 (struct irange_storage_slot): New.
6973 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
6974 (struct tree_ssa_name): Add vrange_storage support.
6975 * tree-ssanames.cc (range_info_p): New.
6976 (range_info_fits_p): New.
6977 (range_info_alloc): New.
6978 (range_info_free): New.
6979 (range_info_get_range): New.
6980 (range_info_set_range): New.
6981 (set_range_info_raw): Remove.
6982 (set_range_info): Adjust to use vrange_storage.
6983 (set_nonzero_bits): Same.
6984 (get_nonzero_bits): Same.
6985 (duplicate_ssa_name_range_info): Remove overload taking
6986 value_range_kind.
6987 Rewrite tree overload to use vrange_storage.
6988 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
6989 * tree-ssanames.h (struct range_info_def): Remove.
6990 (set_range_info): Adjust prototype to take vrange.
6991 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
6992 duplicate_ssa_name_range_info.
6993 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
6994 (SSA_NAME_RANGE_TYPE): Remove.
6995 * value-query.cc (get_ssa_name_range_info): Adjust to use
6996 vrange_storage.
6997 (update_global_range): Remove.
6998 (get_range_global): Remove as_a<irange>.
6999 * value-query.h (update_global_range): Remove.
7000 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
7001 Rename update_global_range to set_range_info.
7002 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
7003 gcc_unreachable.
7004
7005 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
7006
7007 * value-range.cc (irange::operator=): Call verify_range.
7008 (irange::irange_set): Normalize kind after everything else has
7009 been set.
7010 (irange::irange_set_anti_range): Same.
7011 (irange::set): Same.
7012 (irange::verify_range): Disallow nonzero masks for VARYING.
7013 (irange::irange_union): Call verify_range.
7014 Handle nonzero masks better.
7015 (irange::irange_intersect): Same.
7016 (irange::set_nonzero_bits): Calculate mask if either range has an
7017 explicit mask.
7018 (irange::intersect_nonzero_bits): Same.
7019 (irange::union_nonzero_bits): Same.
7020 (range_tests_nonzero_bits): New.
7021 (range_tests): Call range_tests_nonzero_bits.
7022 * value-range.h (class irange): Remove set_nonzero_bits method
7023 with trees.
7024 (irange::varying_compatible_p): Set nonzero mask.
7025
7026 2022-07-10 Xi Ruoyao <xry111@xry111.site>
7027
7028 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
7029 the sign-extend of result in the RTL template.
7030 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
7031
7032 2022-07-10 Xi Ruoyao <xry111@xry111.site>
7033
7034 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
7035 Remove static, for use in the machine description file.
7036 * config/loongarch/loongarch-protos.h:
7037 (loongarch_check_zero_div_p): Add prototype.
7038 * config/loongarch/loongarch.md (enabled): New attr.
7039 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
7040 idiv. Conditionally enable the alternatives using
7041 loongarch_check_zero_div_p.
7042 (<optab>di3_fake): Likewise.
7043
7044 2022-07-10 Xi Ruoyao <xry111@xry111.site>
7045
7046 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
7047 instead of mul.d.
7048
7049 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
7050
7051 * value-range.cc (irange::irange_single_pair_union): Set
7052 VR_VARYING when appropriate.
7053
7054 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
7055
7056 * stor-layout.cc (finalize_record_size): Extend warning message.
7057
7058 2022-07-09 Sam Feifer <sfeifer@redhat.com>
7059
7060 PR tree-optimization/98304
7061 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
7062
7063 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
7064
7065 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
7066 initializer and use clear_storage rather than copying the
7067 NULs to the destination array.
7068
7069 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
7070
7071 * config/i386/i386.md (define_peephole2): Use match_operand of
7072 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
7073 (define_peephole2): Likewise.
7074 (define_peephole2): Likewise...
7075
7076 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
7077
7078 * config/i386/i386-features.cc (convert_compare): Add support
7079 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
7080 by generating a pandn followed by ptest.
7081 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
7082 recent *testdi_not_doubleword comparison patterns.
7083
7084 2022-07-09 Tamar Christina <tamar.christina@arm.com>
7085
7086 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
7087 indicate that the value is not undefined.
7088
7089 2022-07-09 Andrew Pinski <apinski@marvell.com>
7090
7091 PR tree-optimization/106087
7092 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
7093 to make sure the statement is only defining one operand.
7094
7095 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
7096
7097 PR preprocessor/91733
7098 * input.cc (find_end_of_line): New helper function.
7099 (file_cache_slot::get_next_line): Recognize \r as a line ending.
7100 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
7101 since \r will now be interpreted as a line-ending.
7102
7103 2022-07-08 Martin Liska <mliska@suse.cz>
7104
7105 PR sanitizer/106132
7106 * opts.cc (finish_options): Use 2 calls to
7107 report_conflicting_sanitizer_options.
7108
7109 2022-07-08 Richard Biener <rguenther@suse.de>
7110
7111 PR tree-optimization/106226
7112 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
7113 no SSA update is needed. Move virtual SSA update ...
7114 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
7115 via forced virtual renaming when TODO_update_ssa_only_virtuals
7116 is queued.
7117 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
7118 when virtual SSA update is required.
7119 (try_vectorize_loop_1): Adjust.
7120 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
7121 virtual renaming if the ABI forces an aggregate return
7122 but the original call did not have a virtual definition.
7123
7124 2022-07-08 Martin Liska <mliska@suse.cz>
7125
7126 * toplev.cc (init_asm_output): Do not init asm_out_file.
7127
7128 2022-07-08 Tamar Christina <tamar.christina@arm.com>
7129
7130 PR tree-optimization/106063
7131 * match.pd: Do not apply pattern after veclower is not supported.
7132
7133 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
7134
7135 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
7136 'fn2' computation.
7137
7138 2022-07-08 Tamar Christina <tamar.christina@arm.com>
7139
7140 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
7141 still undefined and if so emit a subreg move instead.
7142 (store_integral_bit_field): Likewise.
7143 (store_bit_field): Likewise.
7144 * expr.h (write_complex_part): Likewise.
7145 * expmed.h (store_bit_field): Add new parameter.
7146 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
7147 parameter.
7148 (expand_ifn_atomic_compare_exchange): Likewise.
7149 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
7150 * emit-rtl.cc (validate_subreg): Likewise.
7151 * expr.cc (emit_group_store): Likewise.
7152 (copy_blkmode_from_reg): Likewise.
7153 (copy_blkmode_to_reg): Likewise.
7154 (clear_storage_hints): Likewise.
7155 (write_complex_part): Likewise.
7156 (emit_move_complex_parts): Likewise.
7157 (expand_assignment): Likewise.
7158 (store_expr): Likewise.
7159 (store_field): Likewise.
7160 (expand_expr_real_2): Likewise.
7161 * ifcvt.cc (noce_emit_move_insn): Likewise.
7162 * internal-fn.cc (expand_arith_set_overflow): Likewise.
7163 (expand_arith_overflow_result_store): Likewise.
7164 (expand_addsub_overflow): Likewise.
7165 (expand_neg_overflow): Likewise.
7166 (expand_mul_overflow): Likewise.
7167 (expand_arith_overflow): Likewise.
7168
7169 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
7170
7171 PR target/106180
7172 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
7173 Rename from *sse2_cvtps2pd<mask_name>_1.
7174 (vec_unpacks_lo_v4sf): Add handler for memory operand.
7175
7176 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
7177
7178 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
7179 Modify fp_sp_offset and gp_sp_offset's calculation method,
7180 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
7181 or UNITS_PER_FP_REG.
7182
7183 2022-07-07 David Malcolm <dmalcolm@redhat.com>
7184
7185 * diagnostic-format-json.cc (json_from_location_range): Update for
7186 removal of label_text::maybe_free in favor of automatic memory
7187 management.
7188 * diagnostic-format-sarif.cc
7189 (sarif_builder::make_location_object): Likewise.
7190 * diagnostic-show-locus.cc (struct pod_label_text): New.
7191 (class line_label): Convert m_text from label_text to pod_label_text.
7192 (layout::print_any_labels): Move "text" to the line_label.
7193 * tree-diagnostic-path.cc (path_label::get_text): Update for
7194 removal of label_text::maybe_free in favor of automatic memory
7195 management.
7196 (event_range::print): Likewise.
7197 (default_tree_diagnostic_path_printer): Likewise.
7198 (default_tree_make_json_for_path): Likewise.
7199
7200 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7201
7202 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
7203
7204 2022-07-07 Richard Biener <rguenther@suse.de>
7205
7206 * tree-into-ssa.cc (iterating_old_ssa_names): New.
7207 (add_new_name_mapping): Grow {new,old}_ssa_names separately
7208 and only when actually needed. Assert we are not growing
7209 the old_ssa_names set when iterating over it.
7210 (update_ssa): Remove old_ssa_names copying and empty_p
7211 query, note we are iterating over it and expect no set changes.
7212
7213 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
7214
7215 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
7216 (prepare_target_image, main): Handle OpenMP 'requires'.
7217 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
7218 'GOMP_offload_unregister_ver'.
7219
7220 2022-07-07 Richard Biener <rguenther@suse.de>
7221
7222 PR target/106219
7223 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
7224 set DECL_PURE_P.
7225
7226 2022-07-07 Richard Biener <rguenther@suse.de>
7227
7228 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
7229 number of LC PHIs inserted.
7230 (add_exit_phis): Return whether any variable required
7231 multiple LC PHI nodes.
7232 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
7233 when possible.
7234
7235 2022-07-07 Richard Biener <rguenther@suse.de>
7236
7237 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
7238 the def loop exit block bitmap as argument instead of
7239 re-computing it here.
7240 (add_exit_phis_var): Adjust.
7241 (loop_name_cmp): New function.
7242 (add_exit_phis): Sort variables to insert LC PHI nodes
7243 after definition loop, for each definition loop compute
7244 the exit block bitmap once.
7245 (get_loops_exit): Remove.
7246 (rewrite_into_loop_closed_ssa_1): Do not pre-record
7247 all loop exit blocks into bitmaps. Record loop exits
7248 if required.
7249
7250 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
7251
7252 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
7253 to handle the N32 ABI.
7254 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
7255 the macro, as it is not needed anymore.
7256
7257 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
7258
7259 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
7260 '[...]_data'.
7261 * config/nvptx/mkoffload.cc (process): Likewise.
7262
7263 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
7264
7265 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
7266
7267 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
7268
7269 * value-relation.cc (relation_to_code): New vector.
7270 (relation_oracle::validate_relation): New.
7271 (set_relation): Allow ssa1 == ssa2 to be registered.
7272 * value-relation.h (validate_relation): New prototype.
7273 (query_relation): Make internal variant protected.
7274
7275 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
7276
7277 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
7278 for double word comparisons and tests (comparisons against zero).
7279 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
7280 and;cmp into andn;cmp $0 as a pre-reload splitter.
7281 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
7282 (*<any_or><dwi>3_doubleword): Likewise.
7283
7284 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
7285 Hongtao Liu <hongtao.liu@intel.com>
7286
7287 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
7288 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
7289 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
7290 and gen_ssse3_palignv1ti instead of TImode.
7291 * config/i386/sse.md (SSESCALARMODE): Delete.
7292 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
7293 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
7294 iterator instead of SSESCALARMODE.
7295 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
7296 using a single move instruction (if required).
7297
7298 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
7299 Uroš Bizjak <ubizjak@gmail.com>
7300
7301 PR rtl-optimization/96692
7302 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
7303 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
7304
7305 2022-07-05 Richard Biener <rguenther@suse.de>
7306
7307 PR tree-optimization/106198
7308 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
7309 full LC SSA rewrite but only if any blocks changed loop
7310 depth.
7311
7312 2022-07-05 Richard Biener <rguenther@suse.de>
7313
7314 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
7315 (find_uses_to_rename_in_loop): Likewise.
7316 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
7317 uses.
7318 (rewrite_into_loop_closed_ssa): Adjust.
7319
7320 2022-07-05 Richard Biener <rguenther@suse.de>
7321
7322 PR tree-optimization/106186
7323 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
7324 Properly handle virtual PHI nodes.
7325
7326 2022-07-05 Richard Biener <rguenther@suse.de>
7327
7328 PR tree-optimization/106196
7329 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
7330 handle aggregate returns of calls for VDEF updates.
7331
7332 2022-07-05 Richard Biener <rguenther@suse.de>
7333
7334 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
7335 Maintain LC SSA.
7336
7337 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
7338
7339 * tree-vect-patterns.cc (vect_convert_input): Expect the input
7340 type to be signed for optab_vector_mixed_sign. Update the vectype
7341 at the same time as type.
7342 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
7343 available, try sdot instead.
7344 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
7345 (vect_model_reduction_cost): Model the cost of implementing usdot
7346 using sdot.
7347 (vectorizable_reduction): Likewise. Skip target support test
7348 for lane reductions.
7349 (vect_emulate_mixed_dot_prod): New function.
7350 (vect_transform_reduction): Use it to emulate usdot via sdot.
7351
7352 2022-07-05 Richard Biener <rguenther@suse.de>
7353
7354 PR tree-optimization/106182
7355 * loop-init.cc (fix_loop_structure): Return the number
7356 of newly discovered plus the number of deleted loops.
7357 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
7358 variable name.
7359
7360 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
7361
7362 * gimple-range-fold.cc
7363 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
7364 call to SCEV for irange supported types.
7365 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
7366 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
7367 * tree-ssa-dom.cc (cprop_operand): Same.
7368
7369 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
7370
7371 PR target/104489
7372 * calls.cc (precompute_register_parameters): Allow promotion
7373 of floating point values to be passed in wider integer modes
7374 by calling new convert_float_to_wider_int.
7375 (expand_call): Allow floating point results to be returned in
7376 wider integer modes by calling new convert wider_int_to_float.
7377 * cfgexpand.cc (expand_value_return): Allow backends to promote
7378 a scalar floating point return value to a wider integer mode
7379 by calling new convert_float_to_wider_int.
7380 * expr.cc (convert_float_to_wider_int): New function.
7381 (convert_wider_int_to_float): Likewise.
7382 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
7383 scalar FP PARM_DECLs to wider integer modes, by calling new
7384 convert_wider_int_to_float.
7385 * expr.h (convert_modes): Name arguments for improved documentation.
7386 (convert_float_to_wider_int): Prototype new function here.
7387 (convert_wider_int_to_float): Likewise.
7388 * function.cc (assign_parm_setup_stack): Allow floating point
7389 values to be passed on the stack as wider integer modes by
7390 calling new convert_wider_int_to_float.
7391
7392 2022-07-04 Martin Jambor <mjambor@suse.cz>
7393
7394 PR tree-optimization/105860
7395 * tree-sra.cc (build_reconstructed_reference): Start expr
7396 traversal only just below the outermost union.
7397
7398 2022-07-04 Richard Biener <rguenther@suse.de>
7399
7400 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
7401 and update virtual SSA form again. Assert we do so for
7402 a known set of transforms only.
7403 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
7404 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
7405 using load-lanes allow virtual SSA update.
7406
7407 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
7408 Chung-Lin Tang <cltang@codesourcery.com>
7409 Thomas Schwinge <thomas@codesourcery.com>
7410
7411 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
7412 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
7413 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
7414 * config/nvptx/mkoffload.cc (process, main): Likewise.
7415 * lto-cgraph.cc (omp_requires_to_name): New.
7416 (input_offload_tables): Save omp_requires_mask.
7417 (output_offload_tables): Read it, check for consistency,
7418 save value for mkoffload.
7419 * omp-low.cc (lower_omp_target): Force output_offloadtables
7420 call for OMP_REQUIRES_TARGET_USED.
7421
7422 2022-07-04 Richard Biener <rguenther@suse.de>
7423
7424 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
7425 no SSA update is needed instead of updating virtual SSA
7426 form.
7427 * tree-vect-stmts.cc (vectorizable_load): For hoisted
7428 invariant load use the loop entry virtual use.
7429 For emulated gather loads use the virtual use of the
7430 original stmt like vect_finish_stmt_generation would do.
7431
7432 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
7433
7434 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
7435 for direct circularity.
7436
7437 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
7438
7439 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
7440 the language for vector types.
7441
7442 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
7443
7444 * value-range-storage.cc (irange_storage_slot::set_irange): Set
7445 nonzero bits in irange.
7446 (irange_storage_slot::get_irange): Get nonzero bits from irange.
7447 * value-range.cc (irange::operator=): Set nonzero bits.
7448 (irange::irange_set): Same.
7449 (irange::irange_set_anti_range): Same.
7450 (irange::set): Same.
7451 (irange::verify_range): Same.
7452 (irange::legacy_equal_p): Check nonzero bits.
7453 (irange::equal_p): Same.
7454 (irange::contains_p): Handle nonzero bits.
7455 (irange::irange_union): Same.
7456 (irange::irange_intersect): Same.
7457 (irange::dump): Same.
7458 (irange::set_nonzero_bits): New.
7459 (irange::get_nonzero_bits): New.
7460 (irange::intersect_nonzero_bits): New.
7461 (irange::union_nonzero_bits): New.
7462 (irange::dump_bitmasks): New.
7463 * value-range.h (class irange): Add m_nonzero_mask.
7464 (gt_ggc_mx): Handle nonzero bits.
7465 (gt_pch_nx): Same.
7466 (irange::set_undefined): Set nonzero bits.
7467 (irange::set_varying): Same.
7468 (irange::normalize_kind): Call set_undefined.
7469
7470 2022-07-04 Richard Biener <rguenther@suse.de>
7471
7472 * tree-ssa-loop-manip.h
7473 (rewrite_virtuals_into_loop_closed_ssa): Remove.
7474 (rewrite_into_loop_closed_ssa_1): Likewise.
7475 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
7476 Make static.
7477 (rewrite_into_loop_closed_ssa): Remove loop overload,
7478 always rewrite virtuals into LC SSA.
7479 (check_loop_closed_ssa_bb): Also check virtuals.
7480 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
7481 LC PHIs when in LC SSA.
7482 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
7483 loop-closed SSA here, but ...
7484 (tree_loop_unroll_and_jam): ... here once.
7485 * tree-if-conv.cc (version_loop_for_if_conversion): Use
7486 the cheaper TODO_update_ssa_no_phi.
7487 * tree-loop-distribution.cc (version_loop_by_alias_check):
7488 Likewise.
7489 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
7490 Likewise.
7491 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
7492 (tree_unswitch_outer_loop): Do not rewrite virtuals into
7493 LC ssa.
7494 * tree-parloops.cc (transform_to_exit_first_loop_alt):
7495 Likewise.
7496 (pass_parallelize_loops::execute): After finishing rewrite
7497 into LC SSA again because we do not maintain it properly.
7498
7499 2022-07-04 Richard Biener <rguenther@suse.de>
7500
7501 PR tree-optimization/106055
7502 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
7503 we can propagate.
7504
7505 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
7506
7507 PR target/43618
7508 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
7509 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
7510 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
7511
7512 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
7513
7514 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
7515 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
7516 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
7517 with two arguments.
7518 (find_unswitching_predicates_for_bb): Same.
7519 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
7520 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
7521 * value-range.cc (irange::equal_p): Rename to...
7522 (irange::operator==): ...this.
7523 * value-range.h (irange::set): Remove.
7524 (irange::operator==): Remove.
7525 (irange::set_zero): Use set with two arguments.
7526 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
7527 (vr_values::extract_range_from_unary_expr): Same.
7528 (check_for_binary_op_overflow): Same.
7529 (bounds_of_var_in_loop): Same.
7530
7531 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
7532
7533 PR target/106022
7534 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
7535 New.
7536 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
7537 New.
7538 * config/i386/mmx.md (V_16_32_64): New.
7539 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
7540 and 64-bit constant vector.
7541 * config/i386/predicates.md (x86_64_const_vector_operand): New.
7542
7543 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
7544
7545 * gimple-range-cache.cc: Include value-range-storage.h.
7546 * gimple-range-cache.h (class block_range_cache): Add "class" to
7547 m_range_allocator.
7548 * gimple-range-edge.cc
7549 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
7550 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
7551 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
7552 * gimple-range-edge.h: Add "class" to m_range_allocator.
7553 * gimple-range-infer.cc
7554 (infer_range_manager::infer_range_manager): Allocate allocator.
7555 (infer_range_manager::~infer_range_manager): Free allocator.
7556 (infer_range_manager::get_nonzero): Dereference allocator.
7557 (infer_range_manager::add_range): Same.
7558 * gimple-range-infer.h (class vrange_allocator): Add "class" to
7559 m_range_allocator.
7560 * value-range-storage.h (class vrange_allocator): Move from
7561 value-range.h.
7562 (class obstack_vrange_allocator): Same.
7563 (class ggc_vrange_allocator): Same.
7564 (vrange_allocator::alloc_vrange): Same.
7565 (vrange_allocator::alloc_irange): Same.
7566 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
7567 (class obstack_vrange_allocator): Same.
7568 (class ggc_vrange_allocator): Same.
7569
7570 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
7571
7572 * Makefile.in (OBJS): Add value-range-storage.o.
7573 (GTFILES): Add value-range-storage.h.
7574 * gengtype.cc (open_base_files): Add value-range-storage.h.
7575 * value-range-storage.cc: New file.
7576 * value-range-storage.h: New file.
7577
7578 2022-07-03 Xi Ruoyao <xry111@xry111.site>
7579 Lulu Cheng <chenglulu@loongson.cn>
7580
7581 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
7582 New static function.
7583 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
7584 of TARGET_CHECK_ZERO_DIV.
7585 (loongarch_output_division): Likewise.
7586 * common/config/loongarch/loongarch-common.cc
7587 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
7588 * doc/invoke.texi: Update to match the new behavior.
7589
7590 2022-07-03 Ian Lance Taylor <iant@golang.org>
7591
7592 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
7593 statement if -fdelete-dead-exceptions.
7594
7595 2022-07-02 Tim Lange <mail@tim-lange.me>
7596
7597 PR analyzer/105900
7598 * doc/invoke.texi: Added Wanalyzer-allocation-size.
7599
7600 2022-07-02 Immad Mir <mirimmad17@gmail.com>
7601
7602 PR analyzer/106003
7603 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
7604 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
7605 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
7606 -Wanalyzer-fd-use-after-close.
7607
7608 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
7609
7610 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
7611 (trailing_wide_ints::set_precision): Add num_elements argument.
7612 (trailing_wide_ints::extra_size): Same.
7613
7614 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
7615
7616 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
7617 Use "r" constraint for operand 1.
7618
7619 2022-07-01 Richard Biener <rguenther@suse.de>
7620
7621 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
7622 Do not look at interesting_blocks which is a copy of
7623 blocks_to_update.
7624 (update_ssa): Do not initialize it.
7625 (pass_build_ssa::execute): Set interesting_blocks to NULL
7626 after releasing it.
7627
7628 2022-07-01 Richard Biener <rguenther@suse.de>
7629
7630 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
7631 back to using maybe_ne (off, -1).
7632
7633 2022-07-01 Richard Biener <rguenther@suse.de>
7634
7635 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
7636 checking dominance check conditional on flag_checking.
7637
7638 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
7639
7640 * config/gcn/gcn-protos.h (print_operand_address): Remove register
7641 keyword on 'rtx addr' argument.
7642
7643 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
7644 Uroš Bizjak <ubizjak@gmail.com>
7645
7646 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
7647 to post-reload define_insn_and_split.
7648
7649 2022-07-01 Jakub Jelinek <jakub@redhat.com>
7650
7651 PR middle-end/106144
7652 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
7653 emitting element for shift or if shift is 0 first element after start.
7654 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
7655 wi::shifted_mask with 0 start.
7656
7657 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
7658
7659 PR target/106122
7660 * config/i386/i386.md (peephole2): Avoid generating pop %esp
7661 when optimizing for size.
7662
7663 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
7664 Uroš Bizjak <ubizjak@gmail.com>
7665
7666 * config/i386/i386.md (general_szext_operand): Add TImode
7667 support using x86_64_hilo_general_operand predicate.
7668 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
7669 (*add<dwi>3_doubleword): Improved optimization of zero addition.
7670 (and<mode>3): Use SDWIM mode iterator to add support for double
7671 word bit-wise AND in TImode. Use force_reg when double word
7672 immediate operand isn't x86_64_hilo_general_operand.
7673 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
7674 converted into a post-reload splitter.
7675 (*andndi3_doubleword): Previous define_insn deleted.
7676 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
7677 TARGET_BMI that splits post-reload.
7678 (*andn<mode>3_doubleword): New define_insn_and_split for
7679 !TARGET_BMI, that lowers/splits before reload.
7680 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
7681 double word bit-wise XOR and bit-wise IOR in TImode. Use
7682 force_reg when double word immediate operand isn't
7683 x86_64_hilo_general_operand.
7684 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
7685 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
7686 double word bit-wise NOT in TImode.
7687 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
7688 and converted into a post-reload splitter.
7689
7690 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
7691
7692 PR middle-end/105874
7693 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
7694 EXPAND_MEMORY for the expansion of the inner reference only
7695 in the usual cases where a memory reference is required.
7696
7697 2022-07-01 Richard Biener <rguenther@suse.de>
7698
7699 PR tree-optimization/106131
7700 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
7701 zero when offsetting the read looking through an aggregate
7702 copy.
7703
7704 2022-07-01 Martin Liska <mliska@suse.cz>
7705
7706 PR tree-optimization/106126
7707 * gimple-if-to-switch.cc (struct condition_info): Save
7708 has_side_effect.
7709 (find_conditions): Parse all BBs.
7710 (pass_if_to_switch::execute): Allow only side effects for first
7711 BB.
7712
7713 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
7714
7715 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
7716 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
7717 OPTION_MASK_ISA2_AVX512BF16_UNSET and
7718 OPTION_MASK_ISA2_AVX512FP16_UNSET.
7719
7720 2022-06-30 Joseph Myers <joseph@codesourcery.com>
7721
7722 PR lto/106129
7723 * lto-wrapper.cc (find_option): Add argument start.
7724 (merge_and_complain): Loop over existing_opt_index and
7725 existing_opt2_index for Xassembler check. Update calls to
7726 find_option.
7727 (find_and_merge_options): Add argument first to determine whether
7728 to merge options with those passed in *opts.
7729 (run_gcc): Update calls to find_and_merge_options.
7730
7731 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
7732
7733 * gimple-range-cache.cc (block_range_cache::block_range_cache):
7734 Rename vrange_allocator to obstack_vrange_allocator.
7735 (ssa_global_cache::ssa_global_cache): Same.
7736 * gimple-range-edge.h (class gimple_outgoing_range): Same.
7737 * gimple-range-infer.h (class infer_range_manager): Same.
7738 * value-range.h (class vrange_allocator): Make abstract.
7739 (class obstack_vrange_allocator): Inherit from vrange_allocator.
7740 (class ggc_vrange_allocator): New.
7741
7742 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
7743 Uroš Bizjak <ubizjak@gmail.com>
7744
7745 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
7746 provide gen_swapsi.
7747 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
7748 via new gen_<insn>32di2_doubleword below.
7749 (<anyrotate>32di2_doubleword): New define_insn_and_split
7750 that splits after reload as either a pair of move instructions
7751 or an xchgl (using gen_swapsi).
7752
7753 2022-06-30 Richard Biener <rguenther@suse.de>
7754
7755 * domwalk.h (dom_walker::dom_walker): Update comment to
7756 reflect reality and new special argument value for
7757 bb_index_to_rpo.
7758 * domwalk.cc (dom_walker::dom_walker): Recognize -1
7759 bb_index_to_rpo.
7760 * tree-into-ssa.cc
7761 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
7762 dom_walker to not use RPO.
7763
7764 2022-06-30 Martin Liska <mliska@suse.cz>
7765
7766 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
7767 it is unused.
7768
7769 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
7770
7771 PR tree-optimization/106114
7772 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
7773 statement operands instead of GORI cache.
7774
7775 2022-06-30 Antoni Boucher <bouanto@zoho.com>
7776
7777 PR target/106095
7778 * config/i386/sse.md: Fix asm generation.
7779
7780 2022-06-29 Sergei Trofimovich <siarheit@google.com>
7781
7782 PR c++/106102
7783 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
7784
7785 2022-06-29 Joseph Myers <joseph@codesourcery.com>
7786
7787 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
7788 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
7789
7790 2022-06-29 Richard Biener <rguenther@suse.de>
7791
7792 PR rtl-optimization/106082
7793 * combine.cc (distribute_notes): Preserve notes when
7794 they indicate a call doesn't perform a non-local goto.
7795
7796 2022-06-29 Richard Biener <rguenther@suse.de>
7797
7798 PR tree-optimization/106112
7799 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
7800 a constant operand according to its type.
7801
7802 2022-06-29 Martin Liska <mliska@suse.cz>
7803
7804 * doc/invoke.texi: Remove removed evrp-mode.
7805
7806 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
7807
7808 PR target/106097
7809 * config/loongarch/loongarch.cc (loongarch_build_integer):
7810 Remove undefined behavior from code.
7811
7812 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
7813
7814 * doc/sourcebuild.texi: Document new no_alignment_constraints
7815 effective target check.
7816
7817 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
7818
7819 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
7820 * flag-types.h (enum evrp_mode): Remove.
7821 * params.opt: Remove --param=evrp-mode.
7822 * tree-vrp.cc (make_pass_early_vrp): New.
7823 (pass_vrp::execute): Call early VRP instance.
7824 * gimple-ssa-evrp-analyze.cc: Removed.
7825 * gimple-ssa-evrp-analyze.h: Removed.
7826 * gimple-ssa-evrp.cc: Removed.
7827
7828 2022-06-28 Alexandre Oliva <oliva@adacore.com>
7829
7830 * Makefile.in (TFLAGS): New.
7831 (GCC_FOR_TARGET): Add TFLAGS.
7832 (FLAGS_TO_PASS): Pass TFLAGS down.
7833
7834 2022-06-28 Richard Biener <rguenther@suse.de>
7835
7836 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
7837 call update_ssa.
7838
7839 2022-06-28 Richard Biener <rguenther@suse.de>
7840
7841 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
7842 mark_block_for_update.
7843 (update_ssa): Adjust.
7844
7845 2022-06-28 Xi Ruoyao <xry111@xry111.site>
7846
7847 PR target/106096
7848 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
7849 $r13 from SIBCALL_REGS.
7850 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
7851 Change $r13 to JIRL_REGS.
7852
7853 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
7854
7855 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
7856 irange::supports_p.
7857
7858 2022-06-28 Richard Biener <rguenther@suse.de>
7859
7860 PR middle-end/106053
7861 * match.pd ((T)a == (T)b): Avoid folding away sign
7862 changes in a comparison if we'd truncate to a boolean.
7863
7864 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
7865
7866 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
7867 iterator GPR with SImode, adjust the condition and output template,
7868 rename to ...
7869 (*rotlsi3_insert_4): ... this.
7870
7871 2022-06-27 David Malcolm <dmalcolm@redhat.com>
7872
7873 * genmatch.cc: Add "final" and "override" to various vfunc
7874 implementations, removing redundant "virtual" as appropriate.
7875 * gensupport.cc: Likewise.
7876 * gimple-range-cache.h: Likewise.
7877 * ipa-icf-gimple.h: Likewise.
7878 * ipa-icf.h: Likewise.
7879 * read-md.h: Likewise.
7880 * read-rtl-function.cc: Likewise.
7881 * tree-ssa-loop-ch.cc: Likewise.
7882 * tree-ssa-sccvn.cc: Likewise.
7883
7884 2022-06-27 David Malcolm <dmalcolm@redhat.com>
7885
7886 * config/i386/i386-features.h: Add "final" and "override" to
7887 scalar_chain vfunc implementations as appropriate.
7888
7889 2022-06-27 David Malcolm <dmalcolm@redhat.com>
7890
7891 * tree-switch-conversion.h: Add "final" and "override" to cluster
7892 vfunc implementations as appropriate.
7893
7894 2022-06-27 David Malcolm <dmalcolm@redhat.com>
7895
7896 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
7897 implementations as appropriate.
7898
7899 2022-06-27 David Malcolm <dmalcolm@redhat.com>
7900
7901 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
7902 implementations, removing redundant "virtual" as appropriate.
7903 * gimple-ssa-strength-reduction.cc: Likewise.
7904 * ipa-prop.cc: Likewise.
7905 * rtl-ssa/blocks.cc: Likewise.
7906 * tree-into-ssa.cc: Likewise.
7907 * tree-ssa-dom.cc: Likewise.
7908 * tree-ssa-math-opts.cc: Likewise.
7909 * tree-ssa-phiopt.cc: Likewise.
7910 * tree-ssa-propagate.cc: Likewise.
7911 * tree-ssa-sccvn.cc: Likewise.
7912 * tree-ssa-strlen.cc: Likewise.
7913 * tree-ssa-uncprop.cc: Likewise.
7914
7915 2022-06-27 David Malcolm <dmalcolm@redhat.com>
7916
7917 * adjust-alignment.cc: Add "final" and "override" to opt_pass
7918 vfunc implementations, removing redundant "virtual" as
7919 appropriate.
7920 * asan.cc: Likewise.
7921 * auto-inc-dec.cc: Likewise.
7922 * auto-profile.cc: Likewise.
7923 * bb-reorder.cc: Likewise.
7924 * cfgcleanup.cc: Likewise.
7925 * cfgexpand.cc: Likewise.
7926 * cfgrtl.cc: Likewise.
7927 * cgraphbuild.cc: Likewise.
7928 * combine-stack-adj.cc: Likewise.
7929 * combine.cc: Likewise.
7930 * compare-elim.cc: Likewise.
7931 * config/i386/i386-features.cc: Likewise.
7932 * coroutine-passes.cc: Likewise.
7933 * cprop.cc: Likewise.
7934 * cse.cc: Likewise.
7935 * dce.cc: Likewise.
7936 * df-core.cc: Likewise.
7937 * dse.cc: Likewise.
7938 * dwarf2cfi.cc: Likewise.
7939 * early-remat.cc: Likewise.
7940 * except.cc: Likewise.
7941 * final.cc: Likewise.
7942 * function.cc: Likewise.
7943 * fwprop.cc: Likewise.
7944 * gcse.cc: Likewise.
7945 * gimple-harden-conditionals.cc: Likewise.
7946 * gimple-if-to-switch.cc: Likewise.
7947 * gimple-isel.cc: Likewise.
7948 * gimple-laddress.cc: Likewise.
7949 * gimple-loop-interchange.cc: Likewise.
7950 * gimple-loop-jam.cc: Likewise.
7951 * gimple-loop-versioning.cc: Likewise.
7952 * gimple-low.cc: Likewise.
7953 * gimple-ssa-backprop.cc: Likewise.
7954 * gimple-ssa-evrp.cc: Likewise.
7955 * gimple-ssa-isolate-paths.cc: Likewise.
7956 * gimple-ssa-nonnull-compare.cc: Likewise.
7957 * gimple-ssa-split-paths.cc: Likewise.
7958 * gimple-ssa-store-merging.cc: Likewise.
7959 * gimple-ssa-strength-reduction.cc: Likewise.
7960 * gimple-ssa-warn-access.cc: Likewise.
7961 * gimple-ssa-warn-alloca.cc: Likewise.
7962 * gimple-ssa-warn-restrict.cc: Likewise.
7963 * gimple-warn-recursion.cc: Likewise.
7964 * graphite.cc: Likewise.
7965 * ifcvt.cc: Likewise.
7966 * init-regs.cc: Likewise.
7967 * ipa-comdats.cc: Likewise.
7968 * ipa-cp.cc: Likewise.
7969 * ipa-devirt.cc: Likewise.
7970 * ipa-fnsummary.cc: Likewise.
7971 * ipa-free-lang-data.cc: Likewise.
7972 * ipa-icf.cc: Likewise.
7973 * ipa-inline.cc: Likewise.
7974 * ipa-modref.cc: Likewise.
7975 * ipa-profile.cc: Likewise.
7976 * ipa-pure-const.cc: Likewise.
7977 * ipa-reference.cc: Likewise.
7978 * ipa-split.cc: Likewise.
7979 * ipa-sra.cc: Likewise.
7980 * ipa-visibility.cc: Likewise.
7981 * ipa.cc: Likewise.
7982 * ira.cc: Likewise.
7983 * jump.cc: Likewise.
7984 * loop-init.cc: Likewise.
7985 * lower-subreg.cc: Likewise.
7986 * mode-switching.cc: Likewise.
7987 * modulo-sched.cc: Likewise.
7988 * multiple_target.cc: Likewise.
7989 * omp-expand.cc: Likewise.
7990 * omp-low.cc: Likewise.
7991 * omp-oacc-kernels-decompose.cc: Likewise.
7992 * omp-oacc-neuter-broadcast.cc: Likewise.
7993 * omp-offload.cc: Likewise.
7994 * omp-simd-clone.cc: Likewise.
7995 * passes.cc: Likewise.
7996 * postreload-gcse.cc: Likewise.
7997 * postreload.cc: Likewise.
7998 * predict.cc: Likewise.
7999 * recog.cc: Likewise.
8000 * ree.cc: Likewise.
8001 * reg-stack.cc: Likewise.
8002 * regcprop.cc: Likewise.
8003 * reginfo.cc: Likewise.
8004 * regrename.cc: Likewise.
8005 * reorg.cc: Likewise.
8006 * sancov.cc: Likewise.
8007 * sanopt.cc: Likewise.
8008 * sched-rgn.cc: Likewise.
8009 * stack-ptr-mod.cc: Likewise.
8010 * store-motion.cc: Likewise.
8011 * tracer.cc: Likewise.
8012 * trans-mem.cc: Likewise.
8013 * tree-call-cdce.cc: Likewise.
8014 * tree-cfg.cc: Likewise.
8015 * tree-cfgcleanup.cc: Likewise.
8016 * tree-complex.cc: Likewise.
8017 * tree-eh.cc: Likewise.
8018 * tree-emutls.cc: Likewise.
8019 * tree-if-conv.cc: Likewise.
8020 * tree-into-ssa.cc: Likewise.
8021 * tree-loop-distribution.cc: Likewise.
8022 * tree-nrv.cc: Likewise.
8023 * tree-object-size.cc: Likewise.
8024 * tree-parloops.cc: Likewise.
8025 * tree-predcom.cc: Likewise.
8026 * tree-profile.cc: Likewise.
8027 * tree-sra.cc: Likewise.
8028 * tree-ssa-ccp.cc: Likewise.
8029 * tree-ssa-copy.cc: Likewise.
8030 * tree-ssa-dce.cc: Likewise.
8031 * tree-ssa-dom.cc: Likewise.
8032 * tree-ssa-dse.cc: Likewise.
8033 * tree-ssa-forwprop.cc: Likewise.
8034 * tree-ssa-ifcombine.cc: Likewise.
8035 * tree-ssa-loop-ch.cc: Likewise.
8036 * tree-ssa-loop-im.cc: Likewise.
8037 * tree-ssa-loop-ivcanon.cc: Likewise.
8038 * tree-ssa-loop-prefetch.cc: Likewise.
8039 * tree-ssa-loop-split.cc: Likewise.
8040 * tree-ssa-loop-unswitch.cc: Likewise.
8041 * tree-ssa-loop.cc: Likewise.
8042 * tree-ssa-math-opts.cc: Likewise.
8043 * tree-ssa-phiopt.cc: Likewise.
8044 * tree-ssa-phiprop.cc: Likewise.
8045 * tree-ssa-pre.cc: Likewise.
8046 * tree-ssa-reassoc.cc: Likewise.
8047 * tree-ssa-sccvn.cc: Likewise.
8048 * tree-ssa-sink.cc: Likewise.
8049 * tree-ssa-strlen.cc: Likewise.
8050 * tree-ssa-structalias.cc: Likewise.
8051 * tree-ssa-uncprop.cc: Likewise.
8052 * tree-ssa-uninit.cc: Likewise.
8053 * tree-ssanames.cc: Likewise.
8054 * tree-stdarg.cc: Likewise.
8055 * tree-switch-conversion.cc: Likewise.
8056 * tree-tailcall.cc: Likewise.
8057 * tree-vect-generic.cc: Likewise.
8058 * tree-vectorizer.cc: Likewise.
8059 * tree-vrp.cc: Likewise.
8060 * tsan.cc: Likewise.
8061 * ubsan.cc: Likewise.
8062 * var-tracking.cc: Likewise.
8063 * vtable-verify.cc: Likewise.
8064 * web.cc: Likewise.
8065
8066 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
8067
8068 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
8069 (jump): Likewise.
8070 (movdi_symbol_save_scc): Likewise.
8071
8072 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
8073
8074 PR rtl-optimization/7061
8075 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
8076
8077 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
8078
8079 PR tree-optimization/94026
8080 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
8081 (((X >> C1) & C2) eq/ne C3): Likewise.
8082
8083 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8084
8085 * statistics.cc: Include tree.h.
8086 (get_function_name): New function.
8087 (statistics_fini_pass_2): Call get_function_name instead of
8088 current_function_name.
8089 (statistics_counter_event): Call get_function_name instead of
8090 function_name.
8091 (statistics_histogram_event): Likewise.
8092
8093 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8094
8095 * config/xtensa/xtensa.md:
8096 Suppress unnecessary emitting nop insn in the split patterns for
8097 integer/FP constant synthesis, and add new peephole2 pattern that
8098 folds such synthesized additions.
8099
8100 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
8101
8102 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
8103 instead of evrp.
8104 (dom_jt_state::push): Remove m_evrp.
8105 (dom_jt_state::pop): Same.
8106 (dom_jt_state::record_ranges_from_stmt): Remove.
8107 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
8108 (class dom_jt_simplifier): Pass ranger to constructor.
8109 Inherit from hybrid_jt_simplifier.
8110 (dom_jt_simplifier::simplify): Convert to ranger.
8111 (pass_dominator::execute): Same.
8112 (all_uses_feed_or_dominated_by_stmt): New.
8113 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
8114 (dom_opt_dom_walker::before_dom_children): Call
8115 set_global_ranges_from_unreachable_edges.
8116 Do not call record_ranges_from_stmt.
8117 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
8118 (cprop_operand): Use int_range<> instead of value_range.
8119 (dom_opt_dom_walker::fold_cond): New.
8120 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
8121 cprop_into_stmt.
8122 Use fold_cond() instead of vrp_visit_cond_stmt().
8123 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
8124 pass state to simplifier.
8125 * vr-values.h (class vr_values): Make fold_cond public.
8126
8127 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
8128
8129 * common/config/tilegx/tilegx-common.cc: Removed.
8130 * common/config/tilepro/tilepro-common.cc: Removed.
8131 * config.gcc: Remove tilegx and tilepro entries.
8132 * config/tilegx/constraints.md: Removed.
8133 * config/tilegx/feedback.h: Removed.
8134 * config/tilegx/linux.h: Removed.
8135 * config/tilegx/mul-tables.cc: Removed.
8136 * config/tilegx/predicates.md: Removed.
8137 * config/tilegx/sync.md: Removed.
8138 * config/tilegx/t-tilegx: Removed.
8139 * config/tilegx/tilegx-builtins.h: Removed.
8140 * config/tilegx/tilegx-c.cc: Removed.
8141 * config/tilegx/tilegx-generic.md: Removed.
8142 * config/tilegx/tilegx-modes.def: Removed.
8143 * config/tilegx/tilegx-multiply.h: Removed.
8144 * config/tilegx/tilegx-opts.h: Removed.
8145 * config/tilegx/tilegx-protos.h: Removed.
8146 * config/tilegx/tilegx.cc: Removed.
8147 * config/tilegx/tilegx.h: Removed.
8148 * config/tilegx/tilegx.md: Removed.
8149 * config/tilegx/tilegx.opt: Removed.
8150 * config/tilepro/constraints.md: Removed.
8151 * config/tilepro/feedback.h: Removed.
8152 * config/tilepro/gen-mul-tables.cc: Removed.
8153 * config/tilepro/linux.h: Removed.
8154 * config/tilepro/mul-tables.cc: Removed.
8155 * config/tilepro/predicates.md: Removed.
8156 * config/tilepro/t-tilepro: Removed.
8157 * config/tilepro/tilepro-builtins.h: Removed.
8158 * config/tilepro/tilepro-c.cc: Removed.
8159 * config/tilepro/tilepro-generic.md: Removed.
8160 * config/tilepro/tilepro-modes.def: Removed.
8161 * config/tilepro/tilepro-multiply.h: Removed.
8162 * config/tilepro/tilepro-protos.h: Removed.
8163 * config/tilepro/tilepro.cc: Removed.
8164 * config/tilepro/tilepro.h: Removed.
8165 * config/tilepro/tilepro.md: Removed.
8166 * config/tilepro/tilepro.opt: Removed.
8167 * configure.ac: Remove tilegx and tilepro entries.
8168 * configure: Rebuilt.
8169 * doc/extend.texi: Remove tilegx and tilepro entries.
8170 * doc/install.texi: Remove tilegx and tilepro entries.
8171 * doc/invoke.texi: Remove tilegx and tilepro entries.
8172 * doc/md.texi: Remove tilegx and tilepro entries.
8173
8174 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
8175 Richard Biener <rguenther@suse.de>
8176
8177 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
8178 iteration over each basic block that was updated by the second
8179 iteration.
8180
8181 2022-06-24 Jason Merrill <jason@redhat.com>
8182
8183 PR c++/87729
8184 PR c++/20423
8185 * doc/invoke.texi: Document changes.
8186
8187 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
8188
8189 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
8190 condition to avoid overflow.
8191
8192 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
8193
8194 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
8195 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
8196 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
8197 OPTION_MASK_PPC_GFXOPT.
8198 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
8199 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
8200 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
8201 * config/rs6000/rs6000-c.cc: Update comment.
8202 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
8203 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
8204 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
8205 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
8206 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
8207 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
8208 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
8209 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
8210 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
8211
8212 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
8213
8214 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
8215 OPTION_MASK_MFCRF.
8216 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
8217 OPTION_MASK_MULTIPLE.
8218 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
8219 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
8220 OPTION_MASK_MFCRF.
8221 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
8222 OPTION_MASK_EABI.
8223 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
8224 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
8225 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
8226 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
8227 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
8228 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
8229 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
8230 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
8231 Replace with
8232 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
8233 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
8234 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
8235 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
8236 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
8237 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
8238 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
8239 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
8240 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
8241 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
8242 with OPTION_MASK_MULTIPLE.
8243 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
8244 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
8245 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
8246 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
8247 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
8248 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
8249 with OPTION_MASK_EABI.
8250
8251 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
8252
8253 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
8254 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
8255 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
8256 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
8257 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
8258 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
8259 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
8260 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
8261 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
8262 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
8263 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
8264
8265 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
8266
8267 * config/rs6000/rs6000-c.cc: Update comments.
8268 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
8269 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
8270 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
8271 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
8272 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
8273 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
8274 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
8275 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
8276 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
8277 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
8278 OPTION_MASK_MMA, OPTION_MASK_POWER10.
8279 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
8280 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
8281 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
8282 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
8283 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
8284
8285 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
8286
8287 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
8288 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
8289 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
8290
8291 2022-06-24 Richard Biener <rguenther@suse.de>
8292
8293 PR middle-end/106070
8294 * match.pd (a != b ? a : b): Fix translation of
8295 operand_equal_for_comparison_p.
8296
8297 2022-06-24 Jan Hubicka <jh@suse.cz>
8298
8299 PR ipa/106057
8300 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
8301
8302 2022-06-24 Martin Liska <mliska@suse.cz>
8303
8304 PR middle-end/106059
8305 * profile-count.h: *= and /= operators need to modify this
8306 object.
8307
8308 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
8309 Uroš Bizjak <ubizjak@gmail.com>
8310
8311 PR target/105930
8312 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
8313 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
8314 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
8315
8316 2022-06-24 Alexandre Oliva <oliva@adacore.com>
8317
8318 * common.opt (nostdlib++): New.
8319 * doc/invoke.texi (-nostdlib++): Document it.
8320
8321 2022-06-24 Alexandre Oliva <oliva@adacore.com>
8322
8323 * doc/sourcebuild.texi (Environment attributes): Document
8324 two_plus_gigs.
8325
8326 2022-06-23 David Malcolm <dmalcolm@redhat.com>
8327
8328 * common.opt (fdiagnostics-show-rules): New option.
8329 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
8330 Fix up context->show_rules.
8331 * diagnostic-format-sarif.cc
8332 (diagnostic_output_format_init_sarif): Likewise.
8333 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
8334 (diagnostic_metadata::precanned_rule): New class.
8335 (diagnostic_metadata::add_rule): New.
8336 (diagnostic_metadata::get_num_rules): New.
8337 (diagnostic_metadata::get_rule): New.
8338 (diagnostic_metadata::m_rules): New field.
8339 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
8340 (print_any_rules): New.
8341 (diagnostic_report_diagnostic): Call it.
8342 * diagnostic.h (diagnostic_context::show_rules): New field.
8343 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
8344 * opts.cc (common_handle_option): Handle
8345 OPT_fdiagnostics_show_rules.
8346 * toplev.cc (general_init): Set up global_dc->show_rules.
8347
8348 2022-06-23 Martin Liska <mliska@suse.cz>
8349
8350 PR c++/106062
8351 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
8352 in order to initialize UBSAN built-ins.
8353
8354 2022-06-23 Martin Liska <mliska@suse.cz>
8355
8356 PR ipa/105600
8357 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
8358 Skip variables with body_removed.
8359
8360 2022-06-23 liuhongt <hongtao.liu@intel.com>
8361
8362 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
8363 reg_or_subregno.
8364 (sse4_2_pcmpistr): Ditto.
8365
8366 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
8367
8368 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
8369 typo.
8370 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
8371 * tree-switch-conversion.h: Likewise.
8372
8373 2022-06-22 Jason Merrill <jason@redhat.com>
8374
8375 PR c++/104642
8376 * common.opt: Add -funreachable-traps.
8377 * doc/invoke.texi (-funreachable-traps): Document it.
8378 * opts.cc (finish_options): Enable at -O0 or -Og.
8379 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
8380 (builtin_decl_unreachable, build_builtin_unreachable): New.
8381 * tree.h: Declare them.
8382 * ubsan.cc (sanitize_unreachable_fn): Factor out.
8383 (ubsan_instrument_unreachable): Use
8384 gimple_build_builtin_unreachable.
8385 * ubsan.h (sanitize_unreachable_fn): Declare.
8386 * gimple.cc (gimple_build_builtin_unreachable): New.
8387 * gimple.h: Declare it.
8388 * builtins.cc (expand_builtin_unreachable): Add assert.
8389 (fold_builtin_0): Call build_builtin_unreachable.
8390 * sanopt.cc: Don't run for just SANITIZE_RETURN
8391 or SANITIZE_UNREACHABLE when trapping.
8392 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
8393 unreachable functions.
8394 * gimple-fold.cc (gimple_fold_call)
8395 (gimple_get_virt_method_for_vtable)
8396 * ipa-fnsummary.cc (redirect_to_unreachable)
8397 * ipa-prop.cc (ipa_make_edge_direct_to_target)
8398 (ipa_impossible_devirt_target)
8399 * ipa.cc (walk_polymorphic_call_targets)
8400 * tree-cfg.cc (pass_warn_function_return::execute)
8401 (execute_fixup_cfg)
8402 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
8403 (unloop_loops)
8404 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
8405 Likewise.
8406
8407 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
8408
8409 PR tree-optimization/106019
8410 * tree-data-ref.cc (dr_may_alias_p): Try using the
8411 innermost_loop_behavior to disambiguate non-loop queries.
8412
8413 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
8414
8415 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
8416
8417 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8418
8419 * config/xtensa/xtensa.md (bswapsi2_internal):
8420 Enlarge the buffer that is obviously smaller than the template
8421 string given to sprintf().
8422
8423 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
8424 Marek Polacek <polacek@redhat.com>
8425 Segher Boessenkool <segher@kernel.crashing.org>
8426 Kewen Lin <linkw@linux.ibm.com>
8427
8428 PR target/105991
8429 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
8430 exact_log2 doesn't return -1 (or zero).
8431 (plus_xor): New code iterator.
8432 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
8433
8434 2022-06-21 Nathan Sidwell <nathan@acm.org>
8435
8436 * doc/invoke.texi (C++ Modules): Remove language-linkage
8437 as missing feature.
8438
8439 2022-06-21 Arjun Shankar <arjun@redhat.com>
8440
8441 PR tree-optimization/94899
8442 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
8443 0x80000000): New simplification.
8444
8445 2022-06-21 Jakub Jelinek <jakub@redhat.com>
8446
8447 PR rtl-optimization/106032
8448 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
8449 t may_trap_or_fault_p, even if it is cheap.
8450
8451 2022-06-21 Jakub Jelinek <jakub@redhat.com>
8452
8453 PR middle-end/106030
8454 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
8455 temp to expand_operands if mode has been promoted.
8456
8457 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
8458
8459 PR target/105740
8460 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
8461 condition bb.
8462
8463 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
8464
8465 PR tree-optimization/105736
8466 * tree-object-size.cc (addr_object_size): Return size_unknown
8467 when object offset computation returns an error.
8468
8469 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
8470
8471 PR target/105960
8472 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
8473 false if PIC register is used when calling ifunc functions.
8474
8475 2022-06-20 Richard Biener <rguenther@suse.de>
8476
8477 PR middle-end/106027
8478 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
8479 type of the prevailing comparison for the new comparison type.
8480 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
8481 to A < X && A >= Y folding.
8482
8483 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
8484
8485 PR tree-optimization/105940
8486 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
8487 slp_done_for_suggested_uf and adjust with it accordingly.
8488 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
8489 pass it down to vect_analyze_loop_2 for the initial analysis and
8490 applying suggested unroll factor.
8491 (vect_is_simple_reduction): Add parameter slp and adjust with it.
8492 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
8493 (vect_analyze_scalar_cycles): Likewise.
8494
8495 2022-06-20 Martin Liska <mliska@suse.cz>
8496
8497 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
8498 use them.
8499 (better_edge_p): Likewise.
8500 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
8501 * cfgloopmanip.cc (scale_loop_profile): Likewise.
8502 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
8503 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
8504 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
8505 * dojump.cc (do_compare_rtx_and_jump): Likewise.
8506 * final.cc (compute_alignments): Likewise.
8507 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
8508 (decide_about_value): Likewise.
8509 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
8510 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
8511 * modulo-sched.cc (sms_schedule): Likewise.
8512 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
8513 (expand_omp_ordered_sink): Likewise.
8514 (expand_omp_for_ordered_loops): Likewise.
8515 (expand_omp_for_static_nochunk): Likewise.
8516 * predict.cc (maybe_hot_count_p): Likewise.
8517 (probably_never_executed): Likewise.
8518 (set_even_probabilities): Likewise.
8519 (handle_missing_profiles): Likewise.
8520 (expensive_function_p): Likewise.
8521 * profile-count.h: Likewise.
8522 * profile.cc (compute_branch_probabilities): Likewise.
8523 * stmt.cc (emit_case_dispatch_table): Likewise.
8524 * symtab-thunks.cc (expand_thunk): Likewise.
8525 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
8526 * tree-ssa-sink.cc (select_best_block): Likewise.
8527 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
8528 (switch_decision_tree::balance_case_nodes): Likewise.
8529 (switch_decision_tree::emit_case_nodes): Likewise.
8530 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
8531
8532 2022-06-20 yulong <shiyulong@iscas.ac.cn>
8533
8534 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
8535 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
8536 of RISCV_BUILTIN.
8537 * config/riscv/riscv-ftypes.def (0): Remove unused.
8538 (1): New.
8539
8540 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8541
8542 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
8543 Consider relaxed MOVI instructions as L32R.
8544
8545 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8546
8547 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
8548 Use can_create_pseudo_p(), instead of using individual
8549 reload_in_progress and reload_completed.
8550 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
8551 the existing predicate function.
8552 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
8553 Use the standard RTX code predicate macros such as MEM_P,
8554 SYMBOL_REF_P and/or CONST_INT_P.
8555 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
8556 if callee-saved register, at the split patterns for indirect sibcall
8557 fixups.
8558
8559 2022-06-18 Jakub Jelinek <jakub@redhat.com>
8560
8561 * common.opt (flag_sanitize_trap): New variable.
8562 (fsanitize-trap=, fsanitize-trap): New options.
8563 (fsanitize-undefined-trap-on-error): Change into deprecated alias
8564 for -fsanitize-trap=all.
8565 * opts.h (struct sanitizer_opts_s): Add can_trap member.
8566 * opts.cc (finish_options): Complain about unsupported
8567 -fsanitize-trap= options.
8568 (sanitizer_opts): Add can_trap values to all entries.
8569 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
8570 options which have can_trap false.
8571 (parse_sanitizer_options): Add support for -fsanitize-trap=.
8572 For -fsanitize-trap=all, enable
8573 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
8574 -fsanitize-trap=vptr here.
8575 (common_handle_option): Handle OPT_fsanitize_trap_ and
8576 OPT_fsanitize_trap.
8577 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
8578 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
8579 flag_sanitize_undefined_trap_on_error.
8580 * gcc.cc (sanitize_spec_function): Use
8581 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
8582 and drop use of flag_sanitize_undefined_trap_on_error in
8583 "undefined" handling.
8584 * ubsan.cc (ubsan_instrument_unreachable): Use
8585 flag_sanitize_trap & SANITIZE_??? instead of
8586 flag_sanitize_undefined_trap_on_error.
8587 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
8588 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
8589 ubsan_build_overflow_builtin, instrument_bool_enum_load,
8590 ubsan_instrument_float_cast, instrument_nonnull_arg,
8591 instrument_nonnull_return, instrument_builtin): Likewise.
8592 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
8593 (-fsanitize-undefined-trap-on-error): Document as deprecated
8594 alias of -fsanitize-trap.
8595
8596 2022-06-18 Jakub Jelinek <jakub@redhat.com>
8597
8598 PR middle-end/105998
8599 * varasm.cc (narrowing_initializer_constant_valid_p): Check
8600 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
8601 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
8602
8603 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
8604
8605 PR tree-optimization/105835
8606 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
8607 Narrow integer multiplication by a zero_one_valued_p operand.
8608 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
8609 conversions inside COND_EXPR where both data operands are
8610 integer constants.
8611
8612 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8613
8614 * config/xtensa/constraints.md (Y):
8615 Change to include integer constants until reload begins.
8616 * config/xtensa/predicates.md (move_operand): Ditto.
8617 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
8618 Change to allow storing integer constants into litpool only after
8619 reload begins.
8620
8621 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
8622
8623 PR target/105209
8624 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
8625 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
8626 (alpha_store_data_bypass_p_1): Ditto.
8627 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
8628 of generic store_data_bypass_p.
8629 (ev4_ist_c): Remove insn reservation.
8630
8631 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
8632
8633 PR target/105970
8634 * config/i386/i386.cc (ix86_function_arg): Assert that
8635 the mode of pointer argumet is equal to ptr_mode, not Pmode.
8636
8637 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
8638
8639 PR target/105993
8640 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
8641 instead of REGNO comparisons in combine splitter.
8642
8643 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
8644
8645 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
8646 types.
8647
8648 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
8649
8650 * config/riscv/bitmanip.md: Supress warning.
8651
8652 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
8653
8654 PR target/106004
8655 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
8656 Clear bits in the mask above bit 31.
8657
8658 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
8659
8660 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
8661 to avoid spilling trivial literals to the constant pool.
8662
8663 2022-06-16 David Malcolm <dmalcolm@redhat.com>
8664
8665 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
8666 auto_diagnostic_group to group any warning with its note.
8667 (maybe_warn_for_bound): Likewise.
8668 (check_access): Likewise.
8669 (warn_dealloc_offset): Likewise.
8670 (pass_waccess::maybe_warn_memmodel): Likewise.
8671 (pass_waccess::maybe_check_dealloc_call): Likewise.
8672 (pass_waccess::warn_invalid_pointer): Likewise.
8673 (pass_waccess::check_dangling_stores): Likewise.
8674
8675 2022-06-16 Jason Merrill <jason@redhat.com>
8676
8677 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
8678 opts_set->x_flag_sanitize.
8679
8680 2022-06-16 Jason Merrill <jason@redhat.com>
8681
8682 * flags.h (issue_strict_overflow_warning): Comment #endif.
8683
8684 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
8685
8686 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
8687 was invaraint before, clear the invariant bit.
8688 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
8689 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
8690
8691 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
8692
8693 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
8694
8695 2022-06-16 Jakub Jelinek <jakub@redhat.com>
8696
8697 PR tree-optimization/105983
8698 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
8699 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
8700 on non-equality comparisons.
8701
8702 2022-06-16 Jakub Jelinek <jakub@redhat.com>
8703
8704 PR tree-optimization/105984
8705 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
8706 x > stype_max / cst || x < stype_min / cst): fold_convert @1
8707 to TREE_TYPE (@0) just once and test for negative divisor
8708 also on that folded constant instead of on @1.
8709
8710 2022-06-16 Jakub Jelinek <jakub@redhat.com>
8711
8712 PR middle-end/105951
8713 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
8714 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
8715 as last argument to the internal functions.
8716 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
8717 extra call argument to ifns. If expand_atomic_fetch_op fails for the
8718 lhs == NULL_TREE case, fall through into the optab code with
8719 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
8720 fails, construct a CALL_EXPR and expand that.
8721 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
8722 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
8723 expand that.
8724
8725 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
8726
8727 PR target/103316
8728 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
8729 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
8730 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
8731 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
8732 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
8733 for new Power10 V1TI instructions.
8734 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
8735 (vec_cmpu<mode><mode>): Likewise.
8736 (vector_nlt<mode>): Set mode iterator to VEC_IC.
8737 (vector_nltv1ti): Remove.
8738 (vector_gtu<mode>): Set mode iterator to VEC_IC.
8739 (vector_gtuv1ti): Remove.
8740 (vector_nltu<mode>): Set mode iterator to VEC_IC.
8741 (vector_nltuv1ti): Remove.
8742 (vector_geu<mode>): Set mode iterator to VEC_IC.
8743 (vector_ngt<mode>): Likewise.
8744 (vector_ngtv1ti): Remove.
8745 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
8746 (vector_ngtuv1ti): Remove.
8747 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
8748 (vector_gtu_v1ti_p): Remove.
8749 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
8750 (vrotlv1ti3): Remove.
8751 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
8752 (vashrv1ti3): Remove.
8753
8754 2022-06-16 Martin Liska <mliska@suse.cz>
8755
8756 * gengtype-state.cc (read_a_state_token): Do not skip extra
8757 character after escaped sequence.
8758
8759 2022-06-16 Martin Liska <mliska@suse.cz>
8760
8761 PR driver/105564
8762 * spellcheck.cc (test_find_closest_string): Add new test.
8763 * spellcheck.h (class best_match): Prefer a difference in
8764 trailing sign symbol.
8765
8766 2022-06-16 liuhongt <hongtao.liu@intel.com>
8767
8768 PR tree-optimization/53533
8769 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
8770 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
8771 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
8772
8773 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8774
8775 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
8776
8777 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8778
8779 * config/xtensa/predicates.md (reload_operand):
8780 New predicate.
8781 * config/xtensa/xtensa.md: New peephole2 pattern.
8782
8783 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8784
8785 * config/xtensa/xtensa.md (*round_up_to_even):
8786 New insn-and-split pattern.
8787 (*signed_ge_zero): Ditto.
8788
8789 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8790
8791 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
8792 xtensa_emit_sibcall): New prototypes.
8793 (xtensa_expand_epilogue): Add new argument that specifies whether
8794 or not sibling call.
8795 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
8796 New macro definition.
8797 (xtensa_prepare_expand_call): New function in order to share
8798 the common code.
8799 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
8800 New functions.
8801 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
8802 for sibling call handling.
8803 * config/xtensa/xtensa.md (call, call_value):
8804 Use xtensa_prepare_expand_call.
8805 (call_internal, call_value_internal):
8806 Add the condition in order to be disabled if sibling call.
8807 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
8808 (sibcall_internal, sibcall_value_internal): New insn patterns,
8809 and split ones in order to take care of the indirect sibcalls.
8810
8811 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8812
8813 * doc/invoke.texi: Document -mextra-l32r-costs= option.
8814
8815 2022-06-15 David Malcolm <dmalcolm@redhat.com>
8816
8817 PR analyzer/105962
8818 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
8819 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
8820 Extend -fdiagnostics-path-format=separate-events so that with
8821 -fdiagnostics-show-path-depths it prints fndecls as well as stack
8822 depths.
8823
8824 2022-06-15 David Malcolm <dmalcolm@redhat.com>
8825
8826 * value-relation.h: Add "final" and "override" to relation_oracle
8827 vfunc implementations as appropriate.
8828
8829 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
8830
8831 PR middle-end/105975
8832 Revert everything apart from the expand_fn_using_insn and
8833 expand_direct_optab_fn changes from:
8834 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
8835 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
8836 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
8837 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
8838 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
8839 member variable.
8840 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
8841 (direct_internal_fn_p): Also return true for internal functions
8842 that map directly to instructions defined target-insns.def.
8843 (direct_internal_fn): Adjust comment accordingly.
8844 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
8845 (vectorizable_optab2): New local macros.
8846 (not_direct): Initialize directly_mapped.
8847 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
8848 (gather_load_direct, len_load_direct, mask_store_direct)
8849 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
8850 (vec_cond_direct, scatter_store_direct, len_store_direct)
8851 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
8852 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
8853 (while_direct, fold_extract_direct, fold_left_direct)
8854 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
8855 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
8856 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
8857 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
8858 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
8859 (direct_internal_fn_types): Handle functions that map to instructions
8860 defined in target-insns.def.
8861 (direct_internal_fn_types): Likewise.
8862 (direct_internal_fn_supported_p): Likewise.
8863 (internal_fn_expanders): Likewise.
8864 (expand_fn_using_insn): New function,
8865 split out and adapted from...
8866 (expand_direct_optab_fn): ...here.
8867 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
8868 (expand_GOMP_SIMT_EXIT): Likewise.
8869 (expand_GOMP_SIMT_LANE): Likewise.
8870 (expand_GOMP_SIMT_LAST_LANE): Likewise.
8871 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
8872 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
8873 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
8874 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
8875
8876 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
8877
8878 PR target/105981
8879 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
8880 to first_reg and second_reg respectively. Initialize them correctly
8881 when generating big-endian code.
8882
8883 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
8884
8885 PR target/105974
8886 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
8887
8888 2022-06-15 Richard Biener <rguenther@suse.de>
8889
8890 PR tree-optimization/105971
8891 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
8892 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
8893 to leak less surprising alias results.
8894
8895 2022-06-15 Richard Biener <rguenther@suse.de>
8896
8897 PR tree-optimization/105969
8898 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
8899 by zero in overflow check.
8900
8901 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
8902
8903 PR tree-optimization/105254
8904 PR tree-optimization/105940
8905 Revert:
8906 * config/aarch64/aarch64.cc
8907 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
8908 loop_vec_info as argument. Restrict the unroll factor to values
8909 that divide the VF.
8910 (aarch64_vector_costs::finish_cost): Update call accordingly.
8911
8912 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
8913
8914 * read-rtl.cc (find_int): Substitute symbolic constants
8915 before converting the string to an integer.
8916
8917 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
8918 Richard Biener <rguenther@suse.de>
8919
8920 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
8921 left shifts by a constant when the result is truncated, and the
8922 shift constant is well-defined.
8923 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
8924 support for rotations of signed integer types, by lowering
8925 using unsigned vector shifts.
8926
8927 2022-06-15 liuhongt <hongtao.liu@intel.com>
8928
8929 PR target/105953
8930 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
8931 operands[3].
8932
8933 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
8934
8935 PR rtl-optimization/105041
8936 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
8937
8938 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
8939
8940 * config/rs6000/vsx.md (VS_scalar): Delete.
8941 (rest of file): Adjust.
8942
8943 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
8944
8945 PR ipa/105739
8946 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
8947
8948 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
8949
8950 * config/riscv/bitmanip.md: Add split to handle opportunities
8951 for slli + sh[123]add.uw
8952
8953 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
8954
8955 * config/riscv/predicates.md (consecutive_bits_operand):
8956 Implement new predicate.
8957
8958 2022-06-14 Richard Biener <rguenther@suse.de>
8959
8960 PR tree-optimization/105946
8961 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
8962 Do not look at arguments not specified in the function call.
8963
8964 2022-06-14 Richard Biener <rguenther@suse.de>
8965
8966 PR middle-end/105965
8967 * match.pd (view_convert CONSTRUCTOR): Handle single-element
8968 CTOR case.
8969
8970 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
8971
8972 * warning-control.cc (copy_warning) [generic version]: Do not erase
8973 the warning data of the destination location when the no-warning
8974 bit is not set on the source.
8975 (copy_warning) [tree version]: Return early if TO is equal to FROM.
8976 (copy_warning) [gimple version]: Likewise.
8977
8978 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
8979
8980 PR tree-optimization/105940
8981 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
8982 applying suggested_unroll_factor after start_over.
8983
8984 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8985
8986 * config/xtensa/predicates.md (shifted_mask_operand):
8987 New predicate.
8988 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
8989 New insn-and-split pattern.
8990 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
8991 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
8992 *masktrue_const_shifted_mask): Ditto.
8993
8994 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8995
8996 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
8997
8998 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8999
9000 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
9001 Remove the first argument.
9002 (xtensa_emit_bit_branch): Remove it because now called only from the
9003 output statement of *bittrue insn pattern.
9004 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
9005 argument 'p_invert', and make so that the condition is reversed by
9006 itself as needed.
9007 (xtensa_expand_conditional_branch): Share the common path, and remove
9008 condition inversion code.
9009 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
9010 "false side" pattern.
9011 (xtensa_emit_bit_branch): Remove it because of the abovementioned
9012 reason, and move the function body to *bittrue insn pattern.
9013 * config/xtensa/xtensa.md (*bittrue): Transplant the output
9014 statement from removed xtensa_emit_bit_branch().
9015 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
9016 insn patterns.
9017
9018 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9019
9020 * config/xtensa/predicates.md (logical_shift_operator,
9021 xtensa_shift_per_byte_operator): New predicates.
9022 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
9023 New prototype.
9024 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
9025 New helper function for funnel shift patterns.
9026 * config/xtensa/xtensa.md (ior_op): New code iterator.
9027 (*ashlsi3_1): Replace with new split pattern.
9028 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
9029 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
9030 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
9031 in order to omit unnecessary bitwise AND operation.
9032 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
9033 *shlrd_per_byte_<code>_omit_AND):
9034 New insn patterns for funnel shifts.
9035
9036 2022-06-13 Jason Merrill <jason@redhat.com>
9037
9038 * tree-cfg.cc (pass_warn_function_return::execute): Also check
9039 BUILT_IN_TRAP.
9040
9041 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
9042
9043 * config/riscv/riscv.md (length): Remove the explicit setting
9044 for "fcmp".
9045
9046 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
9047
9048 * common/config/i386/cpuinfo.h (get_available_features): Require
9049 AVX for F16C and VAES.
9050
9051 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
9052
9053 PR target/105927
9054 * config/i386/predicates.md (register_no_elim_operand):
9055 Return true for subreg of a memory operand.
9056
9057 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
9058
9059 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
9060 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
9061 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
9062 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
9063 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
9064 member variable.
9065 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
9066 (direct_internal_fn_p): Also return true for internal functions
9067 that map directly to instructions defined target-insns.def.
9068 (direct_internal_fn): Adjust comment accordingly.
9069 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
9070 (vectorizable_optab2): New local macros.
9071 (not_direct): Initialize directly_mapped.
9072 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
9073 (gather_load_direct, len_load_direct, mask_store_direct)
9074 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
9075 (vec_cond_direct, scatter_store_direct, len_store_direct)
9076 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
9077 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
9078 (while_direct, fold_extract_direct, fold_left_direct)
9079 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
9080 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
9081 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
9082 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
9083 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
9084 (direct_internal_fn_types): Handle functions that map to instructions
9085 defined in target-insns.def.
9086 (direct_internal_fn_types): Likewise.
9087 (direct_internal_fn_supported_p): Likewise.
9088 (internal_fn_expanders): Likewise.
9089
9090 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
9091
9092 * internal-fn.cc (expand_fn_using_insn): New function,
9093 split out and adapted from...
9094 (expand_direct_optab_fn): ...here.
9095 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
9096 (expand_GOMP_SIMT_EXIT): Likewise.
9097 (expand_GOMP_SIMT_LANE): Likewise.
9098 (expand_GOMP_SIMT_LAST_LANE): Likewise.
9099 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
9100 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
9101 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
9102 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
9103
9104 2022-06-13 Jakub Jelinek <jakub@redhat.com>
9105
9106 * omp-expand.cc (expand_omp_target): Remap user provided
9107 device clause arguments, -1 to -2 and -2 to -3, either
9108 at compile time if constant, or at runtime.
9109
9110 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
9111
9112 * common.opt (finstrument-functions): Set explicit value.
9113 (-finstrument-functions-once): New option.
9114 * doc/invoke.texi (Program Instrumentation Options): Document it.
9115 * gimplify.cc (build_instrumentation_call): New static function.
9116 (gimplify_function_tree): Call it to emit the instrumentation calls
9117 if -finstrument-functions[-once] is specified.
9118
9119 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
9120
9121 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
9122 * gimple.h (gimple_set_location): Do not copy warning data from
9123 the previous location when it is UNKNOWN_LOCATION.
9124 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
9125
9126 2022-06-13 Jakub Jelinek <jakub@redhat.com>
9127
9128 PR target/105911
9129 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
9130 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
9131 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
9132 operands[3] unmodified.
9133
9134 2022-06-12 Simon Wright <simon@pushface.org>
9135
9136 PR target/104871
9137 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
9138 version is darwin20 (macOS 11) or greater, truncate the version to the
9139 major number.
9140
9141 2022-06-12 Mark Mentovai <mark@mentovai.com>
9142
9143 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
9144
9145 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9146
9147 PR target/96463
9148 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
9149 (svld1rq_impl::fold): Define.
9150 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
9151 op_mode and op_vec_flags.
9152 (aarch64_evpc_reencode): Initialize newd.op_mode and
9153 newd.op_vec_flags.
9154 (aarch64_evpc_sve_dup): New function.
9155 (aarch64_expand_vec_perm_const_1): Gate existing calls to
9156 aarch64_evpc_* functions under d->vmode == d->op_mode,
9157 and call aarch64_evpc_sve_dup.
9158 (aarch64_vectorize_vec_perm_const): Remove assert
9159 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
9160 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
9161 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
9162 constant.
9163
9164 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9165
9166 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
9167 New prototype.
9168 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
9169 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
9170 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
9171 New backend functions that process the abovementioned logic.
9172 (xtensa_emit_move_sequence): Revert the previous changes.
9173 * config/xtensa/xtensa.md: New split patterns for integer
9174 and floating-point, as the frontend part.
9175
9176 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9177
9178 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
9179 for ABS and NEG, add missing case for BSWAP and CLRSB, and
9180 double the costs for integer divisions using libfuncs if
9181 optimizing for speed, in order to take advantage of fast constant
9182 division by multiplication.
9183 (TARGET_INSN_COST): New macro definition.
9184 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
9185 calculating relative costs of a RTL insns, for both of speed and
9186 size.
9187 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
9188 the attribute "length" that depends on TARGET_DENSITY.
9189 (define_asm_attributes, blockage, frame_blockage): Add missing
9190 attributes.
9191 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
9192 dependent option, however, preparatory work for now.
9193
9194 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9195
9196 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
9197 Pass through the block length / loop count conditions if
9198 zero-overhead looping is configured and active,
9199
9200 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9201
9202 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
9203 Split into individual signedness, in order to use libcall
9204 "__umulsidi3" but not the other.
9205 (<u>mulhisi3): Merge into one by using code iterator.
9206 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
9207
9208 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
9209
9210 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
9211 not generate block copies with vector pair instructions if we are
9212 tuning for power10.
9213
9214 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
9215
9216 PR rtl-optimization/7061
9217 * expr.cc (emit_group_store): For groups that consist of a single
9218 scalar integer register that hold a complex mode value, use
9219 gen_lowpart to generate a SUBREG to "view_convert" to the complex
9220 mode. For modes of different sizes, first convert to an integer
9221 mode of the appropriate size.
9222
9223 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9224
9225 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
9226
9227 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9228
9229 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
9230 New insn_and_split pattern.
9231
9232 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9233
9234 * config/xtensa/xtensa.md (one_cmplsi2):
9235 Rearrange as an insn_and_split pattern.
9236
9237 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9238
9239 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
9240
9241 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
9242
9243 * config/rs6000/rs6000.md (FP_ISA3): Delete.
9244 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
9245 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
9246 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
9247 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
9248 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
9249 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
9250 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
9251 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
9252
9253 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
9254
9255 * config/riscv/riscv.md
9256 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
9257 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
9258 rather than space with FSFLAGS.
9259
9260 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
9261
9262 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
9263 omp_discover_declare_target_fn_r): Don't walk reverse-offload
9264 target regions.
9265
9266 2022-06-09 Jakub Jelinek <jakub@redhat.com>
9267
9268 * doc/invoke.texi (-Waddress): Fix a typo in small example.
9269 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
9270
9271 2022-06-09 Cui,Lili <lili.cui@intel.com>
9272
9273 PR target/105493
9274 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
9275 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
9276 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
9277 (icelake_cost): Ditto.
9278 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
9279 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
9280 {8, 8, 8, 10, 15}.
9281
9282 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
9283
9284 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
9285 and ior insns to one rotate and mask insn.
9286 (define_split for bswapdi register): Likewise.
9287
9288 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
9289
9290 PR middle-end/105874
9291 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
9292 variable tem_modifier for calculating the expand_modifier enum to
9293 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
9294
9295 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
9296
9297 PR target/105879
9298 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
9299 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
9300 'gen_highpart' bitwise semantics and fix order of highpart and
9301 lowpart depending on target endianness.
9302
9303 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
9304
9305 * config/arm/arm-cpus.in (star-mc1): New cpu.
9306 * config/arm/arm-tables.opt: Regenerate.
9307 * config/arm/arm-tune.md: Regenerate.
9308 * doc/invoke.texi: Update docs.
9309
9310 2022-06-08 liuhongt <hongtao.liu@intel.com>
9311
9312 PR target/105513
9313 PR target/105504
9314 * config/i386/i386.md (*movsi_internal): Change alternative
9315 from *v to ?v.
9316 (*movdi_internal): Ditto.
9317 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
9318 to ?r.
9319 (*vec_extractv4sf_mem): Ditto.
9320 (*vec_extracthf): Ditto.
9321
9322 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
9323
9324 PR target/105090
9325 * config/arm/arm.cc (arm_bfi_1_p): New function.
9326 (arm_bfi_p): New function.
9327 (arm_rtx_costs_internal): Add costs for BFI idioms.
9328 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
9329 * config/arm/constraints.md (Dj): New constraint.
9330 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
9331 (insv_zero): Convert to an insn with a split.
9332 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
9333
9334 2022-06-07 liuhongt <hongtao.liu@intel.com>
9335
9336 PR target/105854
9337 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
9338 from Yv to Yw.
9339
9340 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
9341
9342 PR middle-end/105853
9343 PR target/105856
9344 * calls.cc (load_register_parameters): Call store_constructor
9345 and int_expr_size directly instead of expanding via expand_expr.
9346 * expr.cc (static void store_constructor): Don't prototype here.
9347 (static HOST_WIDE_INT int_expr_size): Likewise.
9348 (store_constructor): No longer static.
9349 (int_expr_size): Likewise, no longer static.
9350 * expr.h (store_constructor): Prototype here.
9351 (int_expr_size): Prototype here.
9352
9353 2022-06-07 Jan Beulich <jbeulich@suse.com>
9354
9355 Revert:
9356 2022-06-03 Jan Beulich <jbeulich@suse.com>
9357
9358 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
9359 * configure.ac: Check for objcopy, producing
9360 ORIGINAL_OBJCOPY_FOR_TARGET.
9361 * configure: Update accordingly.
9362 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
9363 Handle objcopy.
9364
9365 2022-06-07 Jakub Jelinek <jakub@redhat.com>
9366
9367 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
9368 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
9369 Adjust clause printing style depending on
9370 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
9371
9372 2022-06-07 Jan Beulich <jbeulich@suse.com>
9373
9374 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
9375 Change type.
9376 * config/i386/i386-builtin-types.def: New function type
9377 (V4DI, V32QI, V32QI).
9378 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
9379 V4DI_FTYPE_V32QI_V32QI.
9380
9381 2022-06-07 Jan Beulich <jbeulich@suse.com>
9382
9383 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
9384 into account for reg-only insns.
9385
9386 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
9387
9388 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
9389 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
9390 TARGET_CMOVE's (scalar integer) conditional moves.
9391 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
9392 from its equivalent (canonical) pxor;pand;pxor sequence.
9393
9394 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
9395
9396 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
9397 parameter ORDER.
9398
9399 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
9400
9401 * config.in: Regenerate.
9402 * configure: Regenerate.
9403 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
9404
9405 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
9406
9407 PR middle-end/95126
9408 * calls.cc (load_register_parameters): When loading a suitable
9409 immediate_const_ctor_p VAR_DECL into a single word_mode register,
9410 construct it directly in a pseudo rather than read it (by parts)
9411 from memory.
9412 * expr.cc (int_expr_size): Make tree argument a const_tree.
9413 (immediate_const_ctor_p): Helper predicate. Return true for
9414 simple constructors that may be materialized in a register.
9415 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
9416 VAR_DECL with a suitable immediate_const_ctor_p constructor
9417 use store_constructor to materialize it directly in a pseudo.
9418 * expr.h (immediate_const_ctor_p): Prototype here.
9419 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
9420 VALUE argument from tree to const_tree.
9421 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
9422 prototype.
9423
9424 2022-06-04 Jakub Jelinek <jakub@redhat.com>
9425
9426 PR target/105825
9427 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
9428 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
9429 bits of mask aren't all set, use operands[2] mode for the AND
9430 operation instead of always SImode.
9431
9432 2022-06-03 Jakub Jelinek <jakub@redhat.com>
9433
9434 PR middle-end/30314
9435 PR middle-end/105777
9436 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
9437 x > stype_max / cst || x < stype_min / cst): New simplification.
9438
9439 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
9440
9441 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
9442 Value_Range.
9443 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
9444 * value-range.h (Value_Range::Value_Range): Implement copy
9445 constructor for Value_Range.
9446
9447 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
9448
9449 * value-range.h (struct vrange_traits): Remove.
9450 (is_a): Rewrite without vrange_traits.
9451 (as_a): Same.
9452
9453 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
9454
9455 * value-range.cc (vrange::contains_p): Implement.
9456 (vrange::type): Return void.
9457 (vrange::supports_type_p): Implement.
9458 (irange::fits_p): Same.
9459 (vrange::set_undefined): Same.
9460 (irange::set_nonnegative): Same.
9461 (vrange::set_varying): Same.
9462 (vrange::union_): Same.
9463 (unsupported_range::set): Move to vrange.
9464 (unsupported_range::type): Move to vrange.
9465 (vrange::intersect): Implement for varying and undefined.
9466 (vrange::zero_p): Implement.
9467 (unsupported_range::supports_type_p): Move to vrange.
9468 (vrange::nonzero_p): Implement.
9469 (unsupported_range::set_undefined): Move to vrange.
9470 (unsupported_range::set_varying): Same.
9471 (unsupported_range::dump): Same.
9472 (unsupported_range::union_): Same. Implement for varying and
9473 undefined.
9474 (unsupported_range::intersect): Move to vrange.
9475 (unsupported_range::zero_p): Same.
9476 (unsupported_range::nonzero_p): Same.
9477 (unsupported_range::set_nonzero): Same.
9478 (unsupported_range::set_zero): Same.
9479 (unsupported_range::set_nonnegative): Same.
9480 (unsupported_range::fits_p): Same.
9481 * value-range.h (class vrange): Remove abstract markers for most
9482 methods.
9483 (class unsupported_range): Remove most methods as they will now be
9484 inherited from vrange.
9485
9486 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
9487
9488 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
9489 an object level supports_type_p for irange and a static
9490 Value_Range::supports_type_p.
9491 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
9492 (fold_using_range::range_of_address): Same.
9493 (fold_using_range::range_of_builtin_call): Same.
9494 * gimple-range-fold.h (gimple_range_type): Same.
9495 (gimple_range_ssa_p): Same.
9496 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
9497 Same.
9498 (path_range_query::range_of_stmt): Same.
9499 (path_range_query::add_to_imports): Same.
9500 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
9501 (gimple_ranger::export_global_ranges): Same.
9502 * gimple-ssa-evrp-analyze.cc
9503 (evrp_range_analyzer::record_ranges_from_phis): Same.
9504 * range-op.cc (range_operator::wi_fold): Same.
9505 (range_operator::fold_range): Same.
9506 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
9507 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
9508 (evaluate_control_stmt_using_entry_checks): Same.
9509 * tree-ssa-threadedge.cc
9510 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
9511 * tree-vrp.cc (supported_types_p): Same.
9512 * value-query.cc (range_query::value_of_expr): Same.
9513 (range_query::value_on_edge): Same.
9514 (range_query::value_of_stmt): Same.
9515 (range_query::get_tree_range): Same.
9516 (get_range_global): Same.
9517 (global_range_query::range_of_expr): Same.
9518 * value-range-equiv.h (class value_range_equiv): Same.
9519 * value-range.cc (irange::supports_type_p): Same.
9520 (unsupported_range::supports_type_p): Same.
9521 * value-range.h (enum value_range_discriminator): Same.
9522 (Value_Range::init): Same.
9523 (Value_Range::supports_type_p): Same.
9524 (irange::supports_type_p): Same.
9525 (irange::supports_p): Same.
9526 (vrange::supports_type_p): Same.
9527 (vrange_allocator::alloc_vrange): Same.
9528
9529 2022-06-03 Jan Beulich <jbeulich@suse.com>
9530
9531 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
9532 * configure.ac: Check for objcopy, producing
9533 ORIGINAL_OBJCOPY_FOR_TARGET.
9534 * configure: Update accordingly.
9535 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
9536 Handle objcopy.
9537
9538 2022-06-03 Jan Beulich <jbeulich@suse.com>
9539
9540 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
9541 (*mmx_psadbw): New. Mark as commutative.
9542 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
9543 (*<sse2_avx2>_psadbw): New. Mark as commutative.
9544
9545 2022-06-03 Alexandre Oliva <oliva@adacore.com>
9546
9547 PR tree-optimization/105665
9548 PR tree-optimization/100810
9549 * tree-ssa-loop-ivopts.cc
9550 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
9551 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
9552 (find_ssa_undef): Check precomputed flag and intervening uses.
9553 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
9554
9555 2022-06-02 David Malcolm <dmalcolm@redhat.com>
9556
9557 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
9558 tree-logical-location.o.
9559 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
9560 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
9561 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
9562 (sarif-stderr, sarif-file): New enum values.
9563 * diagnostic-client-data-hooks.h: New file.
9564 * diagnostic-format-sarif.cc: New file.
9565 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
9566 (enum diagnostic_event::noun): New enum.
9567 (enum diagnostic_event::property): New enum.
9568 (struct diagnostic_event::meaning): New struct.
9569 (diagnostic_event::get_logical_location): New vfunc.
9570 (diagnostic_event::get_meaning): New vfunc.
9571 (simple_diagnostic_event::get_logical_location): New vfunc impl.
9572 (simple_diagnostic_event::get_meaning): New vfunc impl.
9573 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
9574 (diagnostic_initialize): Initialize m_client_data_hooks.
9575 (diagnostic_finish): Clean up m_client_data_hooks.
9576 (diagnostic_event::meaning::dump_to_pp): New.
9577 (diagnostic_event::meaning::maybe_get_verb_str): New.
9578 (diagnostic_event::meaning::maybe_get_noun_str): New.
9579 (diagnostic_event::meaning::maybe_get_property_str): New.
9580 (get_cwe_url): Make non-static.
9581 (diagnostic_output_format_init): Handle
9582 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
9583 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
9584 * diagnostic.h (enum diagnostics_output_format): Add
9585 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
9586 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
9587 (class diagnostic_client_data_hooks): New forward decl.
9588 (class logical_location): New forward decl.
9589 (diagnostic_context::m_client_data_hooks): New field.
9590 (diagnostic_output_format_init_sarif_stderr): New decl.
9591 (diagnostic_output_format_init_sarif_file): New decl.
9592 (get_cwe_url): New decl.
9593 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
9594 sarif-file.
9595 * doc/sourcebuild.texi (Scan a particular file): Add
9596 scan-sarif-file and scan-sarif-file-not.
9597 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
9598 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
9599 (LANG_HOOKS_INITIALIZER): Add
9600 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
9601 * langhooks.cc (lhd_get_sarif_source_language): New.
9602 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
9603 * logical-location.h: New file.
9604 * plugin.cc (struct for_each_plugin_closure): New.
9605 (for_each_plugin_cb): New.
9606 (for_each_plugin): New.
9607 * plugin.h (for_each_plugin): New decl.
9608 * tree-diagnostic-client-data-hooks.cc: New file.
9609 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
9610 (tree_diagnostics_defaults): Populate m_client_data_hooks.
9611 * tree-logical-location.cc: New file.
9612 * tree-logical-location.h: New file.
9613
9614 2022-06-02 David Malcolm <dmalcolm@redhat.com>
9615
9616 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
9617 to description.
9618 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
9619 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
9620 (diagnostics_output_format): Add json-stderr and json-file.
9621 * diagnostic-format-json.cc (json_flush_to_file): New.
9622 (json_final_cb): Convert to...
9623 (json_flush_to_file): ...this, ...
9624 (json_stderr_final_cb): ...this, and...
9625 (json_file_final_cb): ...this.
9626 (diagnostic_output_format_init): Move to diagnostic.cc.
9627 (json_output_base_file_name): New.
9628 (diagnostic_output_format_init_json): New.
9629 (diagnostic_output_format_init_json_stderr): New.
9630 (diagnostic_output_format_init_json_file): New.
9631 * diagnostic.cc (diagnostic_output_format_init): Move here from
9632 diagnostic-format-json.cc; update for changes to enum.
9633 * diagnostic.h (enum diagnostics_output_format): Rename
9634 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
9635 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
9636 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
9637 (diagnostic_output_format_init): Add base_file_name param.
9638 (diagnostic_output_format_init_json_stderr): New decl.
9639 (diagnostic_output_format_init_json_file): New dec.
9640 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
9641 "json-file". Rewrite so that the existing "json" is a synonym of
9642 "json-stderr".
9643 * gcc.cc (driver_handle_option): Pass dump_base_name to
9644 diagnostic_output_format_init.
9645 * opts.cc (common_handle_option): Likewise.
9646
9647 2022-06-02 David Malcolm <dmalcolm@redhat.com>
9648
9649 * json.cc (string::print): Fix escaping of '\'.
9650
9651 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
9652
9653 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
9654 (-1 << 31) for the single-bit case, when operating on (1 << 31)
9655 in SImode.
9656 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
9657 any single-bit value, moving the special case for (1 << 31) to
9658 riscv_build_integer_1 (in riscv.c).
9659
9660 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
9661
9662 PR target/105791
9663 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
9664 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
9665
9666 2022-06-02 Jakub Jelinek <jakub@redhat.com>
9667
9668 PR target/105778
9669 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
9670 from AND and its operands and just verify operands[2] has HImode,
9671 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
9672 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
9673 just throw away the masking. Use force_reg before calling
9674 gen_lowpart.
9675 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
9676 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
9677 just throw away the masking.
9678 (*ashl<mode>3_doubleword): Rename to ...
9679 (ashl<mode>3_doubleword): ... this.
9680 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
9681 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
9682 Use force_reg before calling gen_lowpart.
9683 (*<insn><mode>3_mask): Likewise.
9684 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
9685 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
9686 case just throw away the masking. Use force_reg before calling
9687 gen_lowpart.
9688 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
9689 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
9690 throw away the masking.
9691 (*<insn><mode>3_doubleword): Rename to ...
9692 (<insn><mode>3_doubleword): ... this.
9693 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
9694 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
9695 Use force_reg before calling gen_lowpart.
9696 (splitter after it): Remove :SI from AND and its operands and just
9697 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
9698 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
9699 operands and just verify operands[1] has HImode, SImode or for
9700 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
9701 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
9702 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
9703 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
9704
9705 2022-06-02 Richard Biener <rguenther@suse.de>
9706
9707 PR tree-optimization/101668
9708 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
9709 for vector types with compatible lane types.
9710 (vect_build_slp_tree_2): Deal with this.
9711 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
9712 special cases without VEC_PERM.
9713 (vectorizable_slp_permutation): Select the operand vector
9714 type and relax requirements. Handle identity permutes
9715 with mismatching operand types.
9716 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
9717 permutes for op_mode == mode.
9718
9719 2022-06-02 Richard Biener <rguenther@suse.de>
9720
9721 PR tree-optimization/105802
9722 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
9723 Make sure to also compute the range in the type of the switch index.
9724
9725 2022-06-01 David Seifert <soap@gentoo.org>
9726
9727 PR plugins/95648
9728 * configure: Regenerate.
9729
9730 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
9731
9732 PR rtl-optimization/105638
9733 * df-core.cc (df_find_single_def_src): Moved and renamed from
9734 find_single_def_src in loop-iv.cc. Change the argument to rtx
9735 and use rtx_equal_p. Return null for partial or conditional
9736 defs.
9737 * df.h (df_find_single_def_src): New prototype.
9738 * dse.cc (record_store): Use the constant source if the source
9739 register is set only once.
9740 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
9741 (replace_single_def_regs): Replace find_single_def_src with
9742 df_find_single_def_src.
9743
9744 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
9745
9746 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
9747 selected_tune.
9748 (explicit_arch): Rename to selected_arch.
9749 (x_aarch64_override_tune_string): Remove.
9750 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
9751 (aarch64_override_tune_string): Add Save so it gets saved/restored.
9752 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
9753 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
9754 (processor): Remove archtecture_version field.
9755 (selected_arch): Remove global.
9756 (selected_cpu): Remove global.
9757 (selected_tune): Remove global.
9758 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
9759 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
9760 (aarch64_override_options): Further simplify code to only set
9761 selected_arch and selected_tune globals.
9762 (aarch64_option_save): Remove now that target options are saved.
9763 (aarch64_option_restore): Remove redundant target option restores.
9764 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
9765 AARCH64_ISA_V9.
9766 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
9767 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
9768 (aarch64_ra_sign_key): Remove.
9769
9770 2022-06-01 Jakub Jelinek <jakub@redhat.com>
9771
9772 PR middle-end/30314
9773 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
9774 x > ~(utype)0 / cst): New simplification.
9775
9776 2022-06-01 Richard Biener <rguenther@suse.de>
9777
9778 PR tree-optimization/105786
9779 * tree-loop-distribution.cc
9780 (loop_distribution::transform_reduction_loop): Only do strlen
9781 replacement for integer type reductions.
9782
9783 2022-06-01 Jakub Jelinek <jakub@redhat.com>
9784
9785 PR tree-optimization/105770
9786 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
9787 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
9788
9789 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
9790
9791 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
9792 (sbr_vector::sbr_vector): Same.
9793 (sbr_vector::grow): Same.
9794 (sbr_vector::set_bb_range): Same.
9795 (sbr_vector::get_bb_range): Same.
9796 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
9797 (sbr_sparse_bitmap::set_bb_range): Same.
9798 (sbr_sparse_bitmap::get_bb_range): Same.
9799 (block_range_cache::set_bb_range): Same.
9800 (block_range_cache::get_bb_range): Same.
9801 (block_range_cache::dump): Same.
9802 (ssa_global_cache::get_global_range): Same.
9803 (ssa_global_cache::set_global_range): Same.
9804 (ssa_global_cache::clear): Same.
9805 (ssa_global_cache::dump): Same.
9806 (ranger_cache::get_global_range): Same.
9807 (ranger_cache::set_global_range): Same.
9808 (ranger_cache::range_of_def): Same.
9809 (ranger_cache::entry_range): Same.
9810 (ranger_cache::exit_range): Same.
9811 (ranger_cache::edge_range): Same.
9812 (ranger_cache::range_of_expr): Same.
9813 (ranger_cache::range_on_edge): Same.
9814 (ranger_cache::block_range): Same.
9815 (ranger_cache::propagate_cache): Same.
9816 (ranger_cache::fill_block_cache): Same.
9817 (ranger_cache::range_from_dom): Same.
9818 * gimple-range-cache.h: Same.
9819 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
9820 Same.
9821 (gimple_outgoing_range::switch_edge_range): Same.
9822 (gimple_outgoing_range::edge_range_p): Same.
9823 * gimple-range-edge.h: Same.
9824 * gimple-range-fold.cc (fur_source::get_operand): Same.
9825 (fur_source::get_phi_operand): Same.
9826 (fur_edge::get_operand): Same.
9827 (fur_edge::get_phi_operand): Same.
9828 (fur_stmt::get_operand): Same.
9829 (fur_stmt::get_phi_operand): Same.
9830 (fur_list::fur_list): Same.
9831 (fur_list::get_operand): Same.
9832 (fur_list::get_phi_operand): Same.
9833 (fold_range): Same.
9834 (adjust_imagpart_expr): Same.
9835 (adjust_realpart_expr): Same.
9836 (gimple_range_adjustment): Same.
9837 (fold_using_range::fold_stmt): Same.
9838 (fold_using_range::range_of_range_op): Same.
9839 (fold_using_range::range_of_address): Same.
9840 (fold_using_range::range_of_phi): Same.
9841 (fold_using_range::range_of_call): Same.
9842 (fold_using_range::range_of_builtin_call): Same.
9843 (fold_using_range::range_of_builtin_int_call): Same.
9844 (fold_using_range::range_of_cond_expr): Same.
9845 (fur_source::register_outgoing_edges): Same.
9846 * gimple-range-fold.h (fold_range): Same.
9847 (gimple_range_type): Same.
9848 (gimple_range_ssa_p): Same.
9849 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
9850 (gimple_range_calc_op2): Same.
9851 (gori_compute::compute_operand_range_switch): Same.
9852 (gori_compute::compute_operand_range): Same.
9853 (gori_compute::logical_combine): Same.
9854 (gori_compute::compute_logical_operands): Same.
9855 (gori_compute::compute_operand1_range): Same.
9856 (gori_compute::compute_operand2_range): Same.
9857 (gori_compute::compute_operand1_and_operand2_range): Same.
9858 (gori_compute::outgoing_edge_range_p): Same.
9859 (gori_compute::condexpr_adjust): Same.
9860 * gimple-range-gori.h (gimple_range_calc_op1): Same.
9861 (gimple_range_calc_op2): Same.
9862 * gimple-range-path.cc (path_range_query::get_cache): Same.
9863 (path_range_query::set_cache): Same.
9864 (path_range_query::range_on_path_entry): Same.
9865 (path_range_query::internal_range_of_expr): Same.
9866 (path_range_query::range_of_expr): Same.
9867 (path_range_query::ssa_range_in_phi): Same.
9868 (path_range_query::range_defined_in_block): Same.
9869 (path_range_query::compute_ranges_in_phis): Same.
9870 (path_range_query::compute_ranges_in_block): Same.
9871 (path_range_query::add_to_imports): Same.
9872 (path_range_query::range_of_stmt): Same.
9873 * gimple-range-path.h: Same.
9874 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
9875 (gimple_infer_range::~side_effect_manager): Same.
9876 (gimple_infer_range::get_nonzero): Same.
9877 (gimple_infer_range::maybe_adjust_range): Same.
9878 (gimple_infer_range::add_range): Same.
9879 * gimple-range-infer.h: Same.
9880 * gimple-range-tests.cc: Same.
9881 * gimple-range-trace.cc (range_tracer::trailer): Same.
9882 (debug_seed_ranger): Same.
9883 * gimple-range-trace.h: Same.
9884 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
9885 (gimple_ranger::range_on_entry): Same.
9886 (gimple_ranger::range_on_exit): Same.
9887 (gimple_ranger::range_on_edge): Same.
9888 (gimple_ranger::fold_range_internal): Same.
9889 (gimple_ranger::range_of_stmt): Same.
9890 (gimple_ranger::prefill_name): Same.
9891 (gimple_ranger::prefill_stmt_dependencies): Same.
9892 (gimple_ranger::export_global_ranges): Same.
9893 (gimple_ranger::dump_bb): Same.
9894 * gimple-range.h: Same.
9895 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
9896 (memmodel_to_uhwi): Same.
9897 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
9898 (determine_value_range): Same.
9899 (record_nonwrapping_iv): Same.
9900 (infer_loop_bounds_from_signedness): Same.
9901 (scev_var_range_cant_overflow): Same.
9902 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
9903 * value-query.cc (range_query::range_on_edge): Same.
9904 (range_query::range_of_stmt): Same.
9905 (range_query::value_of_expr): Same.
9906 (range_query::value_on_edge): Same.
9907 (range_query::value_of_stmt): Same.
9908 (range_query::get_tree_range): Same.
9909 (update_global_range): Same.
9910 (get_range_global): Same.
9911 (gimple_range_global): Same.
9912 (global_range_query::range_of_expr): Same.
9913 (range_query::query_relation): Same.
9914 * value-query.h (gimple_range_global): Same.
9915 (update_global_range): Same.
9916 * vr-values.cc (vr_values::range_of_expr): Same.
9917 (bounds_of_var_in_loop): Same.
9918 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
9919 * vr-values.h (class vr_values): Same.
9920 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
9921
9922 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
9923
9924 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
9925 vrange allocator.
9926 (sbr_vector::grow): Same.
9927 (sbr_vector::set_bb_range): Same.
9928 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
9929 (sbr_sparse_bitmap::set_bb_range): Same.
9930 (block_range_cache::~block_range_cache): Same.
9931 (block_range_cache::set_bb_range): Same.
9932 (ssa_global_cache::ssa_global_cache): Same.
9933 (ssa_global_cache::~ssa_global_cache): Same.
9934 (ssa_global_cache::set_global_range): Same.
9935 * gimple-range-cache.h (block_range_cache): Same.
9936 (ssa_global_cache): Same.
9937 * gimple-range-edge.cc
9938 (gimple_outgoing_range::calc_switch_ranges): Same.
9939 * gimple-range-edge.h (gimple_outgoing_range): Same.
9940 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
9941 Same.
9942 (infer_range_manager::add_range): Same.
9943 * gimple-range-infer.h (class infer_range_manager): Same.
9944 * value-range.h (class irange_allocator): Rename to...
9945 (class vrange_allocator): ...this.
9946 (irange_allocator::irange_allocator): New.
9947 (vrange_allocator::vrange_allocator): New.
9948 (irange_allocator::~irange_allocator): New.
9949 (vrange_allocator::~vrange_allocator): New.
9950 (irange_allocator::get_memory): Rename to...
9951 (vrange_allocator::alloc): ...this.
9952 (vrange_allocator::alloc_vrange): Rename from...
9953 (irange_allocator::allocate): ...this.
9954 (vrange_allocator::alloc_irange): New.
9955
9956 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
9957
9958 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
9959 vrange and convert range_op_handler function calls to use the
9960 identically named object.
9961 * gimple-range-fold.cc (gimple_range_operand1): Same.
9962 (gimple_range_operand2): Same.
9963 (fold_using_range::fold_stmt): Same.
9964 (fold_using_range::range_of_range_op): Same.
9965 (fold_using_range::range_of_builtin_ubsan_call): Same.
9966 (fold_using_range::relation_fold_and_or): Same.
9967 (fur_source::register_outgoing_edges): Same.
9968 * gimple-range-fold.h (gimple_range_handler): Remove.
9969 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
9970 (gimple_range_calc_op2): Same.
9971 (range_def_chain::get_def_chain): Same.
9972 (gori_compute::compute_operand_range): Same.
9973 (gori_compute::condexpr_adjust): Same.
9974 * gimple-range.cc (gimple_ranger::prefill_name): Same.
9975 (gimple_ranger::prefill_stmt_dependencies): Same.
9976 * range-op.cc (get_bool_state): Same.
9977 (class operator_equal): Add using clause.
9978 (class operator_not_equal): Same.
9979 (class operator_lt): Same.
9980 (class operator_le): Same.
9981 (class operator_gt): Same.
9982 (class operator_ge): Same.
9983 (class operator_plus): Same.
9984 (class operator_minus): Same.
9985 (class operator_mult): Same.
9986 (class operator_exact_divide): Same.
9987 (class operator_lshift): Same.
9988 (class operator_rshift): Same.
9989 (class operator_cast): Same.
9990 (class operator_logical_and): Same.
9991 (class operator_bitwise_and): Same.
9992 (class operator_logical_or): Same.
9993 (class operator_bitwise_or): Same.
9994 (class operator_bitwise_xor): Same.
9995 (class operator_trunc_mod): Same.
9996 (class operator_logical_not): Same.
9997 (class operator_bitwise_not): Same.
9998 (class operator_cst): Same.
9999 (class operator_identity): Same.
10000 (class operator_unknown): Same.
10001 (class operator_abs): Same.
10002 (class operator_negate): Same.
10003 (class operator_addr_expr): Same.
10004 (class pointer_or_operator): Same.
10005 (operator_plus::op1_range): Adjust for vrange.
10006 (operator_minus::op1_range): Same.
10007 (operator_mult::op1_range): Same.
10008 (operator_cast::op1_range): Same.
10009 (operator_bitwise_not::fold_range): Same.
10010 (operator_negate::fold_range): Same.
10011 (range_op_handler): Rename to...
10012 (get_handler): ...this.
10013 (range_op_handler::range_op_handler): New.
10014 (range_op_handler::fold_range): New.
10015 (range_op_handler::op1_range): New.
10016 (range_op_handler::op2_range): New.
10017 (range_op_handler::lhs_op1_relation): New.
10018 (range_op_handler::lhs_op2_relation): New.
10019 (range_op_handler::op1_op2_relation): New.
10020 (range_cast): Adjust for vrange.
10021 * range-op.h (range_op_handler): Remove function.
10022 (range_cast): Adjust for vrange.
10023 (class range_op_handler): New.
10024 (get_bool_state): Adjust for vrange.
10025 (empty_range_varying): Same.
10026 (relop_early_resolve): Same.
10027 * tree-data-ref.cc (compute_distributive_range): Same.
10028 * tree-vrp.cc (get_range_op_handler): Remove.
10029 (range_fold_binary_symbolics_p): Use range_op_handler class
10030 instead of get_range_op_handler.
10031 (range_fold_unary_symbolics_p): Same.
10032 (range_fold_binary_expr): Same.
10033 (range_fold_unary_expr): Same.
10034 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
10035
10036 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
10037
10038 * gimple-range-fold.h (gimple_range_type): Check type before
10039 calling supports_type_p.
10040 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
10041 * value-query.cc (range_query::get_tree_range): Same.
10042 * value-range.cc (Value_Range::lower_bound): New.
10043 (Value_Range::upper_bound): New.
10044 (Value_Range::dump): New.
10045 * value-range.h (class Value_Range): New.
10046 (irange::supports_type_p): Do not check if type is non-zero.
10047
10048 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
10049
10050 * value-range-equiv.cc (value_range_equiv::set): New.
10051 * value-range-equiv.h (class value_range_equiv): Make set method
10052 virtual.
10053 Remove default bitmap argument from set method.
10054 * value-range.cc (vrange::contains_p): New.
10055 (vrange::singleton_p): New.
10056 (vrange::operator=): New.
10057 (vrange::operator==): New.
10058 (irange::fits_p): Move to .cc file.
10059 (irange::set_nonnegative): New.
10060 (unsupported_range::unsupported_range): New.
10061 (unsupported_range::set): New.
10062 (unsupported_range::type): New.
10063 (unsupported_range::set_undefined): New.
10064 (unsupported_range::set_varying): New.
10065 (unsupported_range::dump): New.
10066 (unsupported_range::union_): New.
10067 (unsupported_range::intersect): New.
10068 (unsupported_range::zero_p): New.
10069 (unsupported_range::nonzero_p): New.
10070 (unsupported_range::set_nonzero): New.
10071 (unsupported_range::set_zero): New.
10072 (unsupported_range::set_nonnegative): New.
10073 (unsupported_range::fits_p): New.
10074 (irange::set): Call irange::set_undefined.
10075 (irange::verify_range): Check discriminator field.
10076 (irange::dump): Dump [irange] marker.
10077 (irange::debug): Move to...
10078 (vrange::debug): ...here.
10079 (dump_value_range): Accept vrange.
10080 (debug): Same.
10081 * value-range.h (enum value_range_discriminator): New.
10082 (class vrange): New.
10083 (class unsupported_range): New.
10084 (struct vrange_traits): New.
10085 (is_a): New.
10086 (as_a): New.
10087 (class irange): Inherit from vrange.
10088 (dump_value_range): Adjust for vrange.
10089 (irange::kind): Rename to...
10090 (vrange::kind): ...this.
10091 (irange::varying_p): Rename to...
10092 (vrange::varying_p): ...this.
10093 (irange::undefined_p): Rename to...
10094 (vrange::undefined_p): ...this.
10095 (irange::irange): Set discriminator.
10096 (irange::union_): Convert to irange before passing to irange
10097 method.
10098 (irange::intersect): Same.
10099 (vrange::supports_type_p): New.
10100 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
10101 NULL bitmap argument to value_range_equiv::set.
10102 (vr_values::extract_range_basic): Same.
10103
10104 2022-06-01 Richard Biener <rguenther@suse.de>
10105
10106 PR tree-optimization/105763
10107 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
10108 Check gimple_range_ssa_p.
10109
10110 2022-05-31 Jason Merrill <jason@redhat.com>
10111
10112 * Makefile.in (TAGS): Look at libcpp/*.cc.
10113
10114 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
10115
10116 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
10117 Prefix mode names with E_.
10118
10119 2022-05-31 Alan Modra <amodra@gmail.com>
10120
10121 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
10122 spelling of DW_AT_namelist_item.
10123
10124 2022-05-31 Jakub Jelinek <jakub@redhat.com>
10125
10126 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
10127 allow var to be private in the outer context.
10128 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
10129 to build_outer_var_ref.
10130
10131 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
10132
10133 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
10134 tieable with DImode on TARGET_64BIT, and SCmode tieable with
10135 V2SFmode, and DCmode with V2DFmode.
10136
10137 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
10138
10139 PR rtl-optimization/101617
10140 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
10141 special case (indicated by negate_cc_compare_p) to generate a
10142 -1/0 mask using neg;sbb.
10143 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
10144 to generate an *x86_neg<mode>_ccc instruction.
10145 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
10146 generate a *x86_mov<mode>cc_0_m1_neg instruction.
10147
10148 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
10149
10150 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
10151 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
10152 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
10153
10154 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
10155
10156 PR target/70321
10157 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
10158 DI mode equality/inequality using XOR here. Instead generate a
10159 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
10160 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
10161 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
10162 (general_scalar_chain::convert_compare): New function to convert
10163 scalar equality/inequality comparison into vector operations.
10164 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
10165 new convert_compare helper method.
10166 (convertible_comparion_p): Update to match doubleword COMPARE
10167 of two register, memory or integer constant operands.
10168 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
10169 Prototype/declare member function here.
10170 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
10171 only allow new doubleword modes for EQ and NE operators.
10172 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
10173 doubleword comparison into a pair of XORs followed by an IOR to
10174 set the (zero) flags register, optimizing the XORs if possible.
10175 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
10176 iterator; V_AVX is (currently) only used by ptest.
10177 (sse4_1 mode attribute): Update to support V1TI and V2TI.
10178
10179 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
10180
10181 * config/i386/i386.md: Remove constraints when used with
10182 const_int_operand, const0_operand, const_1_operand, constm1_operand,
10183 const8_operand, const128_operand, const248_operand, const123_operand,
10184 const2367_operand, const1248_operand, const359_operand,
10185 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
10186 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
10187 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
10188 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
10189 const_0_to_255_mul_8_operand, const_1_to_31_operand,
10190 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
10191 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
10192 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
10193 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
10194 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
10195 const_24_to_27_operand and const_28_to_31_operand.
10196 * config/i386/mmx.md: Ditto.
10197 * config/i386/sse.md: Ditto.
10198 * config/i386/subst.md: Ditto.
10199 * config/i386/sync.md: Ditto.
10200
10201 2022-05-30 Jan Beulich <jbeulich@suse.com>
10202
10203 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
10204 arguments.
10205
10206 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10207
10208 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
10209
10210 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
10211
10212 PR target/105599
10213 * config/darwin.h: Move versions-specific handling of multiply_defined
10214 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
10215
10216 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
10217
10218 PR other/82383
10219 * doc/sourcebuild.texi: Add entries for the c++tools,
10220 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
10221 and libsanitizer directories. Remove entry for boehm-gc.
10222 Fix alphabetization for libquadmath.
10223
10224 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
10225
10226 * config/avr/avr-mcus.def: Add device definitions.
10227 * doc/avr-mmcu.texi: Corresponding changes.
10228 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
10229 device prefix.
10230 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
10231 from leaking into cc1.
10232
10233 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
10234
10235 PR target/103722
10236 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
10237 is special) for various scenarios.
10238
10239 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
10240
10241 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
10242 describing this macro.
10243
10244 2022-05-27 Richard Biener <rguenther@suse.de>
10245
10246 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
10247
10248 2022-05-27 Martin Jambor <mjambor@suse.cz>
10249
10250 PR ipa/105639
10251 * ipa-prop.cc (propagate_controlled_uses): Check type of the
10252 constant before adding a LOAD reference.
10253
10254 2022-05-27 Jakub Jelinek <jakub@redhat.com>
10255
10256 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
10257 to OMP_CLAUSE_ENTER.
10258 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
10259 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
10260 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
10261 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
10262 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
10263 "to" instead of "enter".
10264 * tree-nested.cc (convert_nonlocal_omp_clauses,
10265 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
10266 OMP_CLAUSE_TO_DECLARE.
10267
10268 2022-05-27 Richard Biener <rguenther@suse.de>
10269
10270 PR tree-optimization/105726
10271 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
10272 Constrain array-of-flexarray case more.
10273
10274 2022-05-27 Jakub Jelinek <jakub@redhat.com>
10275
10276 PR sanitizer/105729
10277 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
10278 to (X &) z + w if -fsanitize=null during GENERIC folding.
10279
10280 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
10281
10282 * match.pd (match_zero_one_valued_p): New predicate.
10283 (mult @0 @1): Use zero_one_valued_p for optimization to the
10284 expression "bit_and @0 @1".
10285 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
10286 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
10287 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
10288 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
10289 Remove three redundant transforms obsoleted by the three above.
10290
10291 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
10292
10293 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
10294 to split a combined "and;cmp" sequence into "not;test".
10295
10296 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10297
10298 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
10299 (bswapsi2_internal): Revise the template and condition, and add
10300 detection code for preceding the same insn in order to omit a
10301 "SSAI 8" instruction of the latter.
10302 (bswapdi2): Suppress built-in insn expansion with the corresponding
10303 library call when optimizing for size.
10304
10305 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10306
10307 * config/xtensa/xtensa-protos.h
10308 (xtensa_expand_block_set_unrolled_loop,
10309 xtensa_expand_block_set_small_loop): New prototypes.
10310 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
10311 xtensa_expand_block_set_unrolled_loop,
10312 xtensa_expand_block_set_small_loop): New functions.
10313 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
10314 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
10315
10316 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10317
10318 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
10319 Make instruction counting more accurate, and simplify emitting insns.
10320
10321 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10322
10323 * config/xtensa/constraints.md (M, O): Use the macro.
10324 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
10325 sext_fldsz_operand): Ditto.
10326 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
10327 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
10328 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
10329 xtensa_expand_prologue): Ditto.
10330 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
10331
10332 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10333
10334 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
10335 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
10336 Ditto.
10337
10338 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
10339
10340 * gimple-range-cache.cc: Adjust comments.
10341 * gimple-range-infer.cc: Adjust comments.
10342 * gimple-range-infer.h: Adjust comments.
10343 * gimple-range.cc: Adjust comments.
10344
10345 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
10346
10347 * Makefile.in (OBJS): Use gimple-range-infer.o.
10348 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
10349 (ranger_cache::range_from_dom): Rename var side_effect to infer.
10350 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
10351 * gimple-range-cache.h: Include gimple-range-infer.h.
10352 (class ranger_cache): Adjust prototypes, use infer_range_manager.
10353 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
10354 (gimple_infer_range::*): Rename from stmt_side_effects.
10355 (infer_range_manager::*): Rename from side_effect_manager.
10356 * gimple-range-side-effect.cc: Rename.
10357 * gimple-range-side-effect.h: Rename.
10358 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
10359 (class gimple_infer_range): Rename from stmt_side_effects.
10360 (class infer_range_manager): Rename from side_effect_manager.
10361 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
10362 from register_side_effects.
10363 * gimple-range.h (register_inferred_ranges): Adjust prototype.
10364 * range-op.h: Adjust comment.
10365 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
10366 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
10367
10368 2022-05-25 Simon Cook <simon.cook@embecosm.com>
10369
10370 * config/riscv/arch-canonicalize: Only add mafd extension if
10371 base was rv32/rv64g.
10372
10373 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
10374
10375 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
10376
10377 2022-05-25 Jakub Jelinek <jakub@redhat.com>
10378
10379 PR sanitizer/105714
10380 * asan.cc (has_stmt_been_instrumented_p): For assignments which
10381 are both stores and loads, return true only if both destination
10382 and source have been instrumented.
10383
10384 2022-05-25 Martin Liska <mliska@suse.cz>
10385 Richard Biener <rguenther@suse.de>
10386
10387 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
10388 * params.opt (max-unswitch-level): Remove.
10389 * doc/invoke.texi (max-unswitch-level): Likewise.
10390 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
10391 gimplified expressions.
10392 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
10393 (tree_may_unswitch_on): Rename to ...
10394 (find_unswitching_predicates_for_bb): ... this and handle
10395 switch statements.
10396 (get_predicates_for_bb): Likewise.
10397 (set_predicates_for_bb): Likewise.
10398 (init_loop_unswitch_info): Likewise.
10399 (tree_ssa_unswitch_loops): Prepare stuff before calling
10400 tree_unswitch_single_loop.
10401 (tree_unswitch_single_loop): Rework the function using
10402 pre-computed predicates and with a per original loop cost model.
10403 (merge_last): New.
10404 (add_predicate_to_path): Likewise.
10405 (find_range_for_lhs): Likewise.
10406 (simplify_using_entry_checks): Rename to ...
10407 (evaluate_control_stmt_using_entry_checks): ... this, handle
10408 switch statements and improve simplifications using ranger.
10409 (simplify_loop_version): Rework using
10410 evaluate_control_stmt_using_entry_checks.
10411 (evaluate_bbs): New.
10412 (evaluate_loop_insns_for_predicate): Likewise.
10413 (tree_unswitch_loop): Adjust to allow switch statements and
10414 pass in the edge to unswitch.
10415 (clean_up_after_unswitching): New.
10416 (pass_tree_unswitch::execute): Pass down fun.
10417
10418 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
10419
10420 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
10421 counts for the epilog loop.
10422
10423 2022-05-24 Martin Sebor <msebor@redhat.com>
10424 Richard Biener <rguenther@suse.de>
10425
10426 PR middle-end/105604
10427 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
10428 (get_origin_and_offset_r): Remove null handling. Handle variable array
10429 sizes.
10430 (get_origin_and_offset): Handle null argument here. Simplify.
10431 (alias_offset): Update comment.
10432 * pointer-query.cc (field_at_offset): Update comment. Handle members
10433 of variable-length types.
10434
10435 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10436
10437 * target.def (vec_perm_const): Define new parameter op_mode and
10438 update doc.
10439 * doc/tm.texi: Regenerate.
10440 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
10441 vec_perm_const hook to add new parameter op_mode and return false
10442 if result and operand modes do not match.
10443 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
10444 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
10445 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
10446 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
10447 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
10448 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
10449 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
10450 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
10451 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
10452 prototype.
10453 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
10454 (ashrv2di3): Likewise.
10455 * optabs.cc (expand_vec_perm_const): Likewise.
10456 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
10457 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
10458 op_mode and pass it to vec_perm_const hook.
10459 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
10460 * match.pd (vec_perm X Y CST): Likewise.
10461 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
10462 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
10463 (vect_grouped_load_supported): Likewise.
10464 (vect_shift_permute_load_chain): Likewise.
10465 * tree-vect-generic.cc (lower_vec_perm): Likewise.
10466 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
10467 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
10468 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
10469 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
10470 (vect_transform_slp_perm_load): Likewise.
10471 (vectorizable_slp_permutation): Likewise.
10472 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
10473 (vectorizable_bswap): Likewise.
10474 (scan_store_can_perm_p): Likewise.
10475 (vect_gen_perm_mask_checked): Likewise.
10476
10477 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
10478
10479 PR target/104816
10480 * config/i386/i386.opt: Remove Undocumented.
10481 * doc/invoke.texi: Document -mcet-switch.
10482
10483 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
10484
10485 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
10486 * config/gcn/gcn-opts.h (enum gcn_isa): New.
10487 (TARGET_GCN3): Use enum gcn_isa.
10488 (TARGET_GCN3_PLUS): Likewise.
10489 (TARGET_GCN5): Likewise.
10490 (TARGET_GCN5_PLUS): Likewise.
10491 (TARGET_CDNA1): New.
10492 (TARGET_CDNA1_PLUS): New.
10493 (TARGET_CDNA2): New.
10494 (TARGET_CDNA2_PLUS): New.
10495 (TARGET_M0_LDS_LIMIT): New.
10496 (TARGET_PACKED_WORK_ITEMS): New.
10497 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
10498 (gcn_option_override): Recognise CDNA ISA variants.
10499 (gcn_omp_device_kind_arch_isa): Support gfx90a.
10500 (gcn_expand_prologue): Make m0 init optional.
10501 Add support for packed work items.
10502 (output_file_start): Support gfx90a.
10503 (gcn_hsa_declare_function_name): Support gfx90a metadata.
10504 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
10505 __CDNA2__.
10506 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
10507 (<su>mulsi3_highpart_imm): Likewise.
10508 (<su>mulsidi3): Likewise.
10509 (<su>mulsidi3_imm): Likewise.
10510 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
10511 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
10512 (main): Support gfx90a.
10513 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
10514 * config/gcn/t-omp-device: Add gfx90a isa.
10515
10516 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
10517
10518 * config.in: Regenerate.
10519 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
10520 (X_900): Delete.
10521 (X_906): Delete.
10522 (X_908): Delete.
10523 (S_FIJI): Delete.
10524 (S_900): Delete.
10525 (S_906): Delete.
10526 (S_908): Delete.
10527 (NO_XNACK): New macro.
10528 (NO_SRAM_ECC): New macro.
10529 (SRAMOPT): Keep only v4 variant.
10530 (HSACO3_SELECT_OPT): Delete.
10531 (DRIVER_SELF_SPECS): Delete.
10532 (ASM_SPEC): Remove LLVM 9 support.
10533 * config/gcn/gcn-valu.md
10534 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
10535 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
10536 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
10537 (print_operand_address): Remove assembler bug workaround.
10538 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
10539 (EF_AMDGPU_SRAM_ECC_V3): Delete.
10540 (SET_XNACK_ON): Delete v3 variants.
10541 (SET_XNACK_OFF): Delete v3 variants.
10542 (TEST_XNACK): Delete v3 variants.
10543 (SET_SRAM_ECC_ON): Delete v3 variants.
10544 (SET_SRAM_ECC_ANY): Delete v3 variants.
10545 (SET_SRAM_ECC_OFF): Delete v3 variants.
10546 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
10547 (TEST_SRAM_ECC_ANY): Delete v3 variants.
10548 (TEST_SRAM_ECC_ON): Delete v3 variants.
10549 (copy_early_debug_info): Remove v3 support.
10550 (main): Remove v3 support.
10551 * configure: Regenerate.
10552 * configure.ac: Replace all GCN feature checks with a version check.
10553
10554 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
10555
10556 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
10557 i.e. a double word negation of a zero extended operand, to
10558 neg;sbb.
10559
10560 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
10561
10562 PR tree-optimization/105668
10563 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
10564 V1TImode, just like V2DImode.
10565 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
10566 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
10567 (vcond_mask_v2div2di): Delete.
10568 (vcond_mask_v1tiv1ti): New define_expand.
10569
10570 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
10571
10572 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
10573 to strncmp for strings of length one.
10574
10575 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
10576
10577 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
10578 prefetch instructions.
10579 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
10580 Extensions.
10581 (RISCV_ATYPE_SI): New.
10582 (RISCV_ATYPE_DI): New.
10583 * config/riscv/riscv-ftypes.def (0): New.
10584 (1): New.
10585 * config/riscv/riscv.md (riscv_clean_<mode>): New.
10586 (riscv_flush_<mode>): New.
10587 (riscv_inval_<mode>): New.
10588 (riscv_zero_<mode>): New.
10589 (prefetch): New.
10590 (riscv_prefetchi_<mode>): New.
10591 * config/riscv/riscv-cmo.def: New file.
10592
10593 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
10594
10595 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
10596 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
10597 (MASK_ZICBOM): New.
10598 (MASK_ZICBOP): New.
10599 (TARGET_ZICBOZ): New.
10600 (TARGET_ZICBOM): New.
10601 (TARGET_ZICBOP): New.
10602 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
10603
10604 2022-05-24 David Malcolm <dmalcolm@redhat.com>
10605
10606 * tree-vect-slp-patterns.cc: Add "final" and "override" to
10607 vect_pattern::build impls as appropriate.
10608
10609 2022-05-24 David Malcolm <dmalcolm@redhat.com>
10610
10611 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
10612 implementations, removing redundant "virtual" as appropriate.
10613 * ipa-fnsummary.h: Likewise.
10614 * ipa-modref.cc: Likewise.
10615 * ipa-param-manipulation.cc: Likewise.
10616 * ipa-profile.cc: Likewise.
10617 * ipa-prop.h: Likewise.
10618 * ipa-pure-const.cc: Likewise.
10619 * ipa-reference.cc: Likewise.
10620 * ipa-sra.cc: Likewise.
10621 * symbol-summary.h: Likewise.
10622 * symtab-thunks.cc: Likewise.
10623
10624 2022-05-24 Martin Liska <mliska@suse.cz>
10625
10626 Revert:
10627 2022-05-24 Martin Liska <mliska@suse.cz>
10628
10629 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
10630 warning.
10631
10632 2022-05-24 Martin Liska <mliska@suse.cz>
10633
10634 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
10635 warning.
10636
10637 2022-05-24 Bruno Haible <bruno@clisp.org>
10638
10639 PR other/105527
10640 * doc/install.texi (Configuration): Add more details about --with-zstd.
10641 Document --with-zstd-include and --with-zstd-lib
10642
10643 2022-05-24 Richard Biener <rguenther@suse.de>
10644
10645 PR middle-end/105711
10646 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
10647 and use it.
10648 (extract_bit_field_1): Pass down the mode of op0 to
10649 extract_bit_field_as_subreg.
10650
10651 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
10652
10653 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
10654 fmv_cost.
10655 (rocket_tune_info): Add default fmv_cost 8.
10656 (sifive_7_tune_info): Ditto.
10657 (thead_c906_tune_info): Ditto.
10658 (optimize_size_tune_info): Ditto.
10659 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
10660
10661 2022-05-24 Jakub Jelinek <jakub@redhat.com>
10662
10663 PR c/105378
10664 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
10665 builtin.
10666 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
10667 clause but no depend clauses.
10668 * omp-expand.cc (expand_taskwait_call): Use
10669 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
10670 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
10671
10672 2022-05-24 Richard Biener <rguenther@suse.de>
10673
10674 PR tree-optimization/100221
10675 * tree-ssa-dse.cc (contains_phi_arg): New function.
10676 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
10677
10678 2022-05-24 Richard Biener <rguenther@suse.de>
10679
10680 PR tree-optimization/105629
10681 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
10682 a sign-extending conversion.
10683
10684 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
10685
10686 PR target/105627
10687 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
10688 be a debug insn.
10689 (union_uses): Skip debug use_insn.
10690
10691 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
10692
10693 * config/riscv/predicates.md (const_0_operand): Remove
10694 const_double.
10695 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
10696 CONST_DOUBLE.
10697 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
10698
10699 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
10700
10701 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
10702 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
10703 (cpu_indicator_init): Handle Zhaoxin processors.
10704 * common/config/i386/i386-common.cc: Add lujiazui.
10705 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
10706 VENDOR_ZHAOXIN.
10707 (enum processor_types): Add ZHAOXIN_FAM7H.
10708 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
10709 * config.gcc: Add lujiazui.
10710 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
10711 Signatures for zhaoxin
10712 (signature_SHANGHAI_ecx): Ditto.
10713 (signature_SHANGHAI_edx): Ditto.
10714 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
10715 -march=native recognize lujiazui processors.
10716 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
10717 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
10718 * config/i386/i386.h (enum processor_type): Ditto.
10719 * config/i386/i386.md: Add lujiazui.
10720 * config/i386/x86-tune-costs.h (struct processor_costs): Add
10721 lujiazui costs.
10722 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
10723 (ix86_adjust_cost): Ditto.
10724 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
10725 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
10726 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
10727 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
10728 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
10729 (X86_TUNE_MOVX): Ditto.
10730 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
10731 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
10732 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
10733 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
10734 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
10735 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
10736 (X86_TUNE_USE_LEAVE): Ditto.
10737 (X86_TUNE_PUSH_MEMORY): Ditto.
10738 (X86_TUNE_LCP_STALL): Ditto.
10739 (X86_TUNE_USE_INCDEC): Ditto.
10740 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
10741 (X86_TUNE_OPT_AGU): Ditto.
10742 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
10743 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
10744 (X86_TUNE_USE_SAHF): Ditto.
10745 (X86_TUNE_USE_BT): Ditto.
10746 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
10747 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
10748 (X86_TUNE_AVOID_MFENCE): Ditto.
10749 (X86_TUNE_EXPAND_ABS): Ditto.
10750 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
10751 (X86_TUNE_USE_FFREEP): Ditto.
10752 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
10753 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
10754 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
10755 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
10756 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
10757 * doc/extend.texi: Add details about lujiazui.
10758 * doc/invoke.texi: Add details about lujiazui.
10759 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
10760
10761 2022-05-23 Martin Liska <mliska@suse.cz>
10762
10763 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
10764
10765 2022-05-23 Richard Biener <rguenther@suse.de>
10766
10767 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
10768 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
10769
10770 2022-05-23 Richard Biener <rguenther@suse.de>
10771
10772 * gimple-expr.cc (is_gimple_condexpr): Remove.
10773 * gimple-expr.h (is_gimple_condexpr): Likewise.
10774 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
10775 * tree-if-conv.cc (set_bb_predicate): Likewie.
10776 (add_to_predicate_list): Likewise.
10777 (gen_phi_arg_condition): Likewise.
10778 (predicate_scalar_phi): Likewise.
10779 (predicate_statements): Likewise.
10780
10781 2022-05-23 Richard Biener <rguenther@suse.de>
10782
10783 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
10784 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
10785 as is_gimple_val.
10786 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
10787 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
10788 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
10789 Build the condition of the COND_EXPR separately.
10790 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
10791 * tree-vect-generic.cc (expand_vector_condition): Likewise.
10792 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
10793 Likewise.
10794 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
10795 * tree-vect-patterns.cc: Add comment indicating we are
10796 building invalid COND_EXPRs and why.
10797 * omp-expand.cc (expand_omp_simd): Gimplify the condition
10798 to the COND_EXPR separately.
10799 (expand_omp_atomic_cas): Note part that should be unreachable
10800 now.
10801 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
10802 condition for valid replacements.
10803 * tree-if-conv.cc (predicate_bbs): Simulate previous
10804 re-folding of the condition in folded COND_EXPRs which
10805 is necessary because of unfolded GIMPLE_CONDs in the IL
10806 as in for example gcc.dg/fold-bopcond-1.c.
10807 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
10808 Handle that the comparison is now in the def stmt of
10809 the select operand. Required by gcc.dg/pr104526.c.
10810
10811 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
10812
10813 PR fortran/104949
10814 * langhooks-def.h (lhd_omp_array_size): New.
10815 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
10816 (LANG_HOOKS_DECLS): Add it.
10817 * langhooks.cc (lhd_omp_array_size): New.
10818 * langhooks.h (struct lang_hooks_for_decls): Add hook.
10819 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
10820 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
10821
10822 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
10823
10824 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
10825 XOR/IOR case. Account for two instructions for double-word
10826 operations. In case of vector pandn, account for single
10827 instruction. Likewise for integer andn with TARGET_BMI.
10828 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
10829 <case NEG>: Double-word negation requires 3 instructions.
10830
10831 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
10832
10833 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
10834 Fix "K" extension prefix to be placed before "J".
10835 * config/riscv/arch-canonicalize: Likewise.
10836
10837 2022-05-23 liuhongt <hongtao.liu@intel.com>
10838
10839 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
10840 <-> mask cost from 5 to 6.
10841 (icelake_cost): Ditto.
10842
10843 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
10844
10845 * config/aarch64/aarch64.md
10846 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
10847 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
10848 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
10849 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
10850 (one_cmpl_<optab><mode>2): Likewise.
10851 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
10852 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
10853 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
10854 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
10855 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
10856 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
10857 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
10858 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
10859 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
10860 (rolsi3_insn_uxtw): New pattern.
10861 * config/aarch64/iterators.md (SHIFT): Add rotate left.
10862 (SHIFT_no_rotate): Add new iterator.
10863 (SHIFT:shift): Print rotate left as ror.
10864 (is_rotl): Add test for left rotate.
10865
10866 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
10867
10868 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
10869 processing. Add support for architectural extensions.
10870 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
10871 AARCH64_CPU_DEFAULT_FLAGS.
10872 (TARGET_CPU_NBITS): Remove.
10873 (TARGET_CPU_MASK): Remove.
10874 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
10875 (get_tune_cpu): Assert CPU is always valid.
10876 (get_arch): Assert architecture is always valid.
10877 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
10878 (aarch64_option_restore): Remove unnecessary checks on tune.
10879
10880 2022-05-20 David Malcolm <dmalcolm@redhat.com>
10881
10882 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
10883 "FINAL" and "OVERRIDE" with "final" and "override".
10884 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
10885 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
10886 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
10887 * diagnostic-path.h: Likewise.
10888 * digraph.cc: Likewise.
10889 * gcc-rich-location.h: Likewise.
10890 * gimple-array-bounds.cc: Likewise.
10891 * gimple-loop-versioning.cc: Likewise.
10892 * gimple-range-cache.cc: Likewise.
10893 * gimple-range-cache.h: Likewise.
10894 * gimple-range-fold.cc: Likewise.
10895 * gimple-range-fold.h: Likewise.
10896 * gimple-range-tests.cc: Likewise.
10897 * gimple-range.h: Likewise.
10898 * gimple-ssa-evrp.cc: Likewise.
10899 * input.cc: Likewise.
10900 * json.h: Likewise.
10901 * read-rtl-function.cc: Likewise.
10902 * tree-complex.cc: Likewise.
10903 * tree-diagnostic-path.cc: Likewise.
10904 * tree-ssa-ccp.cc: Likewise.
10905 * tree-ssa-copy.cc: Likewise.
10906 * tree-vrp.cc: Likewise.
10907 * value-query.h: Likewise.
10908 * vr-values.h: Likewise.
10909
10910 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
10911
10912 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
10913 target_memcpy_rect_async to omp_runtime_apis array.
10914
10915 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
10916
10917 * doc/sourcebuild.texi (Decimal floating point attributes): Document
10918 dfp_bid effective-target.
10919
10920 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
10921
10922 * config/aarch64/aarch64.cc
10923 (aarch64_split_128bit_move): Handle DFP modes.
10924 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
10925 (aarch64_classify_address): Likewise.
10926 (aarch64_legitimize_address_displacement): Likewise.
10927 (aarch64_reinterpret_float_as_int): Likewise.
10928 (aarch64_float_const_zero_rtx_p): Likewise.
10929 (aarch64_can_const_movi_rtx_p): Likewise.
10930 (aarch64_anchor_offset): Likewise.
10931 (aarch64_secondary_reload): Likewise.
10932 (aarch64_rtx_costs): Likewise.
10933 (aarch64_legitimate_constant_p): Likewise.
10934 (aarch64_gimplify_va_arg_expr): Likewise.
10935 (aapcs_vfp_sub_candidate): Likewise.
10936 (aarch64_vfp_is_call_or_return_candidate): Likewise.
10937 (aarch64_output_scalar_simd_mov_immediate): Likewise.
10938 (aarch64_gen_adjusted_ldpstp): Likewise.
10939 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
10940 * config/aarch64/aarch64.md
10941 (movsf_aarch64): Use SFD iterator and rename into
10942 mov<mode>_aarch64.
10943 (movdf_aarch64): Use DFD iterator and rename into
10944 mov<mode>_aarch64.
10945 (movtf_aarch64): Use TFD iterator and rename into
10946 mov<mode>_aarch64.
10947 (split pattern for move TF mode): Use TFD iterator.
10948 * config/aarch64/iterators.md
10949 (GPF_TF_F16_MOV): Add DFP modes.
10950 (SFD, DFD, TFD): New iterators.
10951 (GPF_TF): Add DFP modes.
10952 (TX, DX, DX2): Likewise.
10953
10954 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
10955
10956 * configure: Regenerate.
10957
10958 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
10959
10960 PR middle-end/98865
10961 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
10962 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
10963 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
10964
10965 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
10966
10967 * config/rs6000/rs6000-builtins.def: Rephrase
10968 to remove RS6000_BTC_SPECIAL from comment.
10969 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
10970 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
10971 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
10972 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
10973 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
10974 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
10975 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
10976 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
10977 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
10978 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
10979 RS6000_BTM_ALWAYS): Delete.
10980
10981 2022-05-19 Richard Biener <rguenther@suse.de>
10982
10983 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
10984 computation of the new value.
10985
10986 2022-05-19 Richard Biener <rguenther@suse.de>
10987
10988 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
10989 (add_to_value): Use get_expression_id.
10990 (bitmap_insert_into_set): Likewise.
10991 (bitmap_value_insert_into_set): Likewise.
10992
10993 2022-05-19 David Malcolm <dmalcolm@redhat.com>
10994
10995 * doc/invoke.texi (-fanalyzer-checker=): Add
10996 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
10997 the list of analyzer warnings disabled by
10998 -fanalyzer-checker=taint.
10999
11000 2022-05-19 Jakub Jelinek <jakub@redhat.com>
11001
11002 PR debug/105630
11003 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
11004 global vars without symtab node even when they have DECL_RTL
11005 set.
11006
11007 2022-05-19 Jakub Jelinek <jakub@redhat.com>
11008
11009 PR c/105635
11010 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
11011 doesn't have pointer or reference type.
11012
11013 2022-05-18 Marek Polacek <polacek@redhat.com>
11014
11015 PR c/105131
11016 * doc/invoke.texi: Document -Wenum-int-mismatch.
11017
11018 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
11019
11020 * config/i386/gnu-user-common.h (defined): Only define
11021 TARGET_CAN_SPLIT_STACK for glibc targets.
11022 * config/i386/gnu.h (defined): Ditto.
11023
11024 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
11025
11026 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
11027 is wider than word_mode, a multiplication costs three word_mode
11028 multiplications and two word_mode additions.
11029
11030 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
11031
11032 * config/i386/i386.md (define_split): Split *andsi_1
11033 and *andn_si_ccno after reload with -Oz.
11034
11035 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
11036
11037 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
11038 Output reason for failure to dump file.
11039 (scop_detection::harmful_loop_in_region): Likewise.
11040 (scop_detection::graphite_can_represent_expr): Likewise.
11041 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
11042 (scop_detection::stmt_simple_for_scop_p): Likewise.
11043 (print_sese_loop_numbers): New function.
11044 (scop_detection::add_scop): Use from here.
11045
11046 2022-05-18 liuhongt <hongtao.liu@intel.com>
11047
11048 PR middle-end/103462
11049 * match.pd (bitwise_induction_p): New match.
11050 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
11051 Declare.
11052 (analyze_and_compute_bitwise_induction_effect): New function.
11053 (enum bit_op_kind): New enum.
11054 (final_value_replacement_loop): Enhanced to handle bitwise
11055 induction.
11056
11057 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
11058
11059 PR target/95737
11060 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
11061
11062 2022-05-18 liuhongt <hongtao.liu@intel.com>
11063
11064 PR target/104375
11065 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
11066 define_insn.
11067
11068 2022-05-18 liuhongt <hongtao.liu@intel.com>
11069
11070 PR target/104610
11071 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
11072 for QImode when code is EQ or NE.
11073 * config/i386/i386.md (cbranchoi4): New expander.
11074
11075 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
11076 Segher Boessenkool <segher@kernel.crashing.org>
11077
11078 PR target/105556
11079 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
11080 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
11081 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
11082 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
11083 Update other operands accordingly.
11084
11085 2022-05-17 Marek Polacek <polacek@redhat.com>
11086
11087 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
11088
11089 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
11090
11091 PR target/99685
11092 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
11093 register count when not splitting IEEE 128-bit Complex.
11094
11095 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
11096
11097 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
11098 target inside target if inner is reverse offload.
11099
11100 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
11101
11102 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
11103 * config/nvptx/mkoffload.cc (process): Likewise.
11104
11105 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
11106
11107 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
11108 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
11109 (non_null_ref::~non_null_ref): Delete.
11110 (non_null_ref::set_nonnull): Delete.
11111 (non_null_ref::non_null_deref_p): Delete.
11112 (non_null_ref::process_name): Delete.
11113 (ranger_cache::ranger_cache): Initialize m_exit object.
11114 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
11115 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
11116 (ranger_cache::update_to_nonnull): Delete.
11117 (non_null_loadstore): Delete.
11118 (ranger_cache::block_apply_nonnull): Delete.
11119 (ranger_cache::apply_side_effects): New.
11120 * gimple-range-cache.h (class non_null_ref): Delete.
11121 (non_null_ref::adjust_range): Delete.
11122 (class ranger_cache): Adjust prototypes, add side effect manager.
11123 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
11124 side effect manager for queries.
11125 (path_range_query::adjust_for_non_null_uses): Ditto.
11126 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
11127 * gimple-range-side-effect.cc: New.
11128 * gimple-range-side-effect.h: New.
11129 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
11130 (gimple_ranger::range_of_expr): Check def block for override value.
11131 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
11132 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
11133 (gimple_ranger::register_side_effects): Call apply_side_effects.
11134 (enable_ranger): Update contructor.
11135 * gimple-range.h (class gimple_ranger): Update prototype.
11136 (enable_ranger): Update prototype.
11137 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
11138
11139 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
11140
11141 PR c++/105169
11142 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
11143 * varasm.cc (switch_to_comdat_section): New
11144 (handle_vtv_comdat_section): Call switch_to_comdat_section.
11145 * varasm.h: Declare switch_to_comdat_section.
11146
11147 2022-05-17 Richard Biener <rguenther@suse.de>
11148
11149 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
11150 not clear bb->aux of the copied blocks.
11151
11152 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
11153
11154 PR tree-optimization/105458
11155 * value-relation.cc (path_oracle::register_relation): Merge, then check
11156 for equivalence.
11157
11158 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
11159
11160 PR target/105624
11161 Revert:
11162 * config/i386/i386.md: Remove constraints when used with
11163 const_int_operand, const0_operand, const_1_operand, constm1_operand,
11164 const8_operand, const128_operand, const248_operand, const123_operand,
11165 const2367_operand, const1248_operand, const359_operand,
11166 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
11167 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
11168 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
11169 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
11170 const_0_to_255_mul_8_operand, const_1_to_31_operand,
11171 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
11172 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
11173 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
11174 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
11175 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
11176 const_24_to_27_operand and const_28_to_31_operand.
11177 * config/i386/mmx.md: Ditto.
11178 * config/i386/sse.md: Ditto.
11179 * config/i386/subst.md: Ditto.
11180 * config/i386/sync.md: Ditto.
11181
11182 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
11183
11184 * diagnostic.cc: Don't advise to call 'abort' instead of
11185 'internal_error'.
11186 * system.h: Advise to call 'internal_error' instead of 'abort' or
11187 'fancy_abort'.
11188
11189 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
11190
11191 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
11192 a reference to a variable which does not exist.
11193 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
11194 in comment.
11195
11196 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
11197
11198 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
11199 (isl_id_for_parameter): ... this new function name.
11200 (build_scop_context): Adjust function use.
11201
11202 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
11203
11204 PR target/105602
11205 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
11206 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
11207
11208 2022-05-17 Jakub Jelinek <jakub@redhat.com>
11209
11210 * tree-core.h (enum omp_clause_depend_kind): Add
11211 OMP_CLAUSE_DEPEND_INOUTSET.
11212 * tree-pretty-print.cc (dump_omp_clause): Handle
11213 OMP_CLAUSE_DEPEND_INOUTSET.
11214 * gimplify.cc (gimplify_omp_depend): Likewise.
11215 * omp-low.cc (lower_depend_clauses): Likewise.
11216
11217 2022-05-17 Jakub Jelinek <jakub@redhat.com>
11218
11219 PR target/105613
11220 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
11221 andv4si3 only for EQ, for NE use iorv4si3 instead.
11222
11223 2022-05-17 Richard Biener <rguenther@suse.de>
11224
11225 PR tree-optimization/105618
11226 * tree-ssa-sink.cc (statement_sink_location): For virtual
11227 PHI uses ignore those defining the used virtual operand.
11228
11229 2022-05-17 Jakub Jelinek <jakub@redhat.com>
11230
11231 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
11232 hanlde -> handle. Fix up comment formatting.
11233
11234 2022-05-17 liuhongt <hongtao.liu@intel.com>
11235
11236 PR target/105033
11237 * config/i386/sse.md (*vec_concatv4si): Extend to ..
11238 (*vec_concat<mode>): .. V16QI and V8HImode.
11239 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
11240 (*vec_concatv8hi_permt2): Ditto.
11241
11242 2022-05-17 liuhongt <hongtao.liu@intel.com>
11243
11244 PR tree-optimization/105591
11245 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
11246 vec_perm_expr index.
11247
11248 2022-05-16 Jason Merrill <jason@redhat.com>
11249
11250 PR c/105492
11251 * attribs.cc (decl_attributes): Fix broken typedefs here.
11252
11253 2022-05-16 David Malcolm <dmalcolm@redhat.com>
11254
11255 PR analyzer/105103
11256 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
11257 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
11258 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
11259 -Wanalyzer-va-list-use-after-va-end.
11260
11261 2022-05-16 Richard Biener <rguenther@suse.de>
11262
11263 * gimple-match.h (gimple_build): Move code_helper overloads ...
11264 * gimple-fold.h (gimple_build): ... here.
11265 (gimple_build): Transition to new worker API. Provide
11266 overloads from sequence-based API.
11267 (gimple_convert): Likewise.
11268 (gimple_convert_to_ptrofftype): Likewise.
11269 (gimple_build_vector_from_val): Likewise.
11270 (gimple_build_vector): Likewise.
11271 (gimple_build_round_up): Likewise.
11272 * gimple-fold.cc (gimple_build_insert_seq): New helper.
11273 (gimple_build): Use it. Transition combined_fn and code_helper
11274 API parts.
11275 (gimple_convert): Transition to new worker API.
11276 (gimple_convert_to_ptrofftype): Likewise.
11277 (gimple_build_vector_from_val): Likewise.
11278 (gimple_build_vector): Likewise.
11279 (gimple_build_round_up): Likewise.
11280
11281 2022-05-16 Richard Biener <rguenther@suse.de>
11282
11283 * gimple-match.h (code_helper): Move class ...
11284 * tree.h (code_helper): ... here.
11285
11286 2022-05-16 Martin Liska <mliska@suse.cz>
11287
11288 * opts-global.cc (write_langs): Add comment.
11289
11290 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
11291
11292 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
11293 instead of a bitwise negation.
11294 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
11295
11296 2022-05-16 Martin Liska <mliska@suse.cz>
11297
11298 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
11299 (decls_mismatched_attributes): Likewise.
11300 * builtins.cc (c_strlen): Likewise.
11301 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
11302 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
11303 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
11304 (aarch64_init_simd_builtin_types): Likewise.
11305 (aarch64_init_builtin_rsqrt): Likewise.
11306 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
11307 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
11308 (arm_init_simd_builtin_types): Likewise.
11309 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
11310 (c_prefix): Likewise.
11311 (main): Likewise.
11312 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
11313 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
11314 * config/gcn/mkoffload.cc (process_obj): Likewise.
11315 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
11316 (fold_builtin_cpu): Likewise.
11317 * config/m32c/m32c.cc (PUSHM_N): Likewise.
11318 * config/nvptx/mkoffload.cc (process): Likewise.
11319 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
11320 * config/s390/s390.cc (NR_C_MODES): Likewise.
11321 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
11322 (create_insn_code_compression_table): Likewise.
11323 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
11324 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
11325 * dwarf2out.cc (ARRAY_SIZE): Likewise.
11326 * genhooks.cc (emit_documentation): Likewise.
11327 (emit_init_macros): Likewise.
11328 * gimple-ssa-sprintf.cc (format_floating): Likewise.
11329 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
11330 * godump.cc (keyword_hash_init): Likewise.
11331 * hash-table.cc (hash_table_higher_prime_index): Likewise.
11332 * input.cc (for_each_line_table_case): Likewise.
11333 * ipa-free-lang-data.cc (free_lang_data): Likewise.
11334 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
11335 * optc-save-gen.awk: Likewise.
11336 * spellcheck.cc (test_metric_conditions): Likewise.
11337 * tree-vect-slp-patterns.cc (sizeof): Likewise.
11338 (ARRAY_SIZE): Likewise.
11339 * tree.cc (build_common_tree_nodes): Likewise.
11340
11341 2022-05-16 Martin Liska <mliska@suse.cz>
11342
11343 * opts-global.cc (write_langs): Allocate at least one byte.
11344
11345 2022-05-16 Richard Biener <rguenther@suse.de>
11346
11347 * match.pd (A cmp B ? A : B -> min/max): New patterns
11348 carried over from fold_cond_expr_with_comparison.
11349
11350 2022-05-16 liuhongt <hongtao.liu@intel.com>
11351
11352 PR target/105587
11353 * config/i386/i386-expand.cc
11354 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
11355 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
11356
11357 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
11358
11359 * config/i386/i386.md: Remove constraints when used with
11360 const_int_operand, const0_operand, const_1_operand, constm1_operand,
11361 const8_operand, const128_operand, const248_operand, const123_operand,
11362 const2367_operand, const1248_operand, const359_operand,
11363 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
11364 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
11365 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
11366 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
11367 const_0_to_255_mul_8_operand, const_1_to_31_operand,
11368 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
11369 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
11370 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
11371 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
11372 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
11373 const_24_to_27_operand and const_28_to_31_operand.
11374 * config/i386/mmx.md: Ditto.
11375 * config/i386/sse.md: Ditto.
11376 * config/i386/subst.md: Ditto.
11377 * config/i386/sync.md: Ditto.
11378
11379 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
11380 Uroš Bizjak <ubizjak@gmail.com>
11381
11382 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
11383 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
11384 by a pshufd and pand.
11385 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
11386 vector equality as a V2DImode vector comparison (see above),
11387 followed by a pshufd and pand.
11388
11389 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
11390
11391 PR tree-optimization/83907
11392 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
11393 for memset with an constant char value.
11394 (handle_store): Improved handling of stores with a first byte
11395 of zero, but not storing_all_zeros_p.
11396
11397 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
11398 Manolis Tsamis <manolis.tsamis@vrull.eu>
11399
11400 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
11401 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
11402 * doc/sourcebuild.texi: add documentation for RISC-V specific
11403 test target keywords
11404
11405 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11406
11407 PR tree-optimization/105597
11408 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
11409 of the lhs and make sure it is not undefined.
11410
11411 2022-05-13 Sebastian Pop <spop@amazon.com>
11412
11413 PR target/105162
11414 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
11415 of str array.
11416 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
11417 memmodel_from_int and handle MEMMODEL_SYNC_*.
11418 (DEF0): Add __aarch64_*_sync functions.
11419
11420 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11421
11422 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
11423 enumerated values.
11424 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
11425 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
11426 new VREL enumerated values.
11427 (*::lhs_op2_relation): Ditto.
11428 (*::op1_op2_relation): Ditto.
11429 (*::fold_range): Use new VREL enumerated values.
11430 (minus_op1_op2_relation_effect): Ditto.
11431 (range_relational_tests): Ditto.
11432 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
11433 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
11434 relation_kind.
11435 (*_op1_op2_relation): Return relation_kind.
11436 (relop_early_resolve): Use VREL_UNDEFINED.
11437 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
11438 * value-relation.cc (VREL_LAST): Change enumerated value.
11439 (vrel_range_assert): Delete.
11440 (print_relation): Remove range assert.
11441 (rr_negate_table): Adjust table to use new enumerated values..
11442 (relation_negate): Remove range assert.
11443 (rr_swap_table): Adjust.
11444 (relation_swap): Remove range assert.
11445 (rr_intersect_table): Adjust.
11446 (relation_intersect): Remove range assert.
11447 (rr_union_table): Adjust.
11448 (relation_union): Remove range assert.
11449 (rr_transitive_table): Adjust.
11450 (relation_transitive): Remove range assert.
11451 (equiv_oracle::query_relation): Use new VREL enumerated values.
11452 (equiv_oracle::register_relation): Ditto.
11453 (relation_oracle::register_stmt): Ditto.
11454 (dom_oracle::set_one_relation): Ditto.
11455 (dom_oracle::register_transitives): Ditto.
11456 (dom_oracle::query_relation): Ditto.
11457 (path_oracle::register_relation): Ditto.
11458 (path_oracle::query_relation): Ditto.
11459 * value-relation.h (enum relation_kind_t): New relation_kind.
11460 (*_op1_op2_relation): Adjust prototypes.
11461
11462 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11463
11464 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
11465 * value-range.cc (irange::legacy_verbose_union_): Add return value.
11466 (irange::irange_single_pair_union): New.
11467 (irange::irange_union): Add return value.
11468 * value-range.h (class irange): Adjust prototypes.
11469
11470 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11471
11472 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
11473 (irange::irange_contains_p): New.
11474 (irange::irange_intersect): Add return value.
11475 * value-range.h (class irange): Adjust prototypes.
11476
11477 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11478
11479 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
11480 had_global value instead.
11481
11482 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11483
11484 PR tree-optimization/104547
11485 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
11486 the op1/op2 relation to the relation call.
11487 * range-op.cc (*::lhs_op1_relation): Add param.
11488 (*::lhs_op2_relation): Ditto.
11489 (operator_minus::lhs_op1_relation): New.
11490 (range_relational_tests): Add relation param.
11491 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
11492
11493 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11494
11495 * gimple-range.cc (gimple_ranger::register_side_effects): First check
11496 if the DEF should be exported as a global.
11497 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
11498 which will export globals.
11499 (execute_ranger_vrp): Remove call to export_global_ranges.
11500
11501 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11502
11503 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
11504
11505 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
11506
11507 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
11508 worlist truncated.
11509 (ranger_cache::entry_range): Add rfd_mode parameter.
11510 (ranger_cache::exit_range): Ditto.
11511 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
11512 (ranger_cache::range_of_expr): Adjust call to entry_range.
11513 (ranger_cache::range_on_edge): Split to edge_range and call.
11514 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
11515 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
11516 mutiple predecessors.
11517 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
11518 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
11519 prototypes.
11520
11521 2022-05-13 Alexandre Oliva <oliva@adacore.com>
11522
11523 * gimple-harden-conditionals.cc: Include sbitmap.h.
11524 (pass_harden_conditional_branches::execute): Skip new blocks.
11525 (pass_harden_compares::execute): Likewise.
11526
11527 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
11528
11529 PR target/105463
11530 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
11531 mve_memory_operand.
11532 (*movmisalign<mode>_mve_load): Likewise.
11533 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
11534 form...
11535 (@movmisalign<mode>): ... thus. Use generic predicates and then
11536 rework operands if they are not valid. For MVE rework to a
11537 narrower element size if the alignment is not high enough.
11538
11539 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
11540
11541 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
11542 when there is no write-back. Fix use when strict is true.
11543
11544 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11545
11546 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
11547 definition.
11548
11549 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
11550
11551 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
11552 extzvsi_internal): Rename from extv, extv_internal, extzv and
11553 extzv_internal, respectively.
11554
11555 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
11556
11557 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
11558 is the same on the LHS and RHS before rewriting one with the model
11559 of the other.
11560
11561 2022-05-13 Richard Biener <rguenther@suse.de>
11562
11563 * gimple-fold.cc (gimple_build): Adjust for new
11564 main API.
11565 * gimple-fold.h (gimple_build): New main APIs with
11566 iterator, insert direction and iterator update.
11567 (gimple_build): New forwarder template.
11568 (clear_padding_type_may_have_padding_p): Remove.
11569 (clear_type_padding_in_mask): Likewise.
11570 (arith_overflowed_p): Likewise.
11571 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
11572 (clear_type_padding_in_mask): Likewise.
11573 (arith_overflowed_p): Likewise.
11574 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
11575 (gimplify_build2): Likewise.
11576 (gimplify_build1): Likewise.
11577 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
11578 compare stmt.
11579 * gengtype.cc (open_base_files): Re-order includes.
11580 * builtins.cc: Re-order gimple-fold.h include.
11581 * calls.cc: Likewise.
11582 * cgraphbuild.cc: Likewise.
11583 * cgraphunit.cc: Likewise.
11584 * config/rs6000/rs6000-builtin.cc: Likewise.
11585 * config/rs6000/rs6000-call.cc: Likewise.
11586 * config/rs6000/rs6000.cc: Likewise.
11587 * config/s390/s390.cc: Likewise.
11588 * expr.cc: Likewise.
11589 * fold-const.cc: Likewise.
11590 * function-tests.cc: Likewise.
11591 * gimple-match-head.cc: Likewise.
11592 * gimple-range-fold.cc: Likewise.
11593 * gimple-ssa-evrp-analyze.cc: Likewise.
11594 * gimple-ssa-evrp.cc: Likewise.
11595 * gimple-ssa-sprintf.cc: Likewise.
11596 * gimple-ssa-warn-access.cc: Likewise.
11597 * gimplify.cc: Likewise.
11598 * graphite-isl-ast-to-gimple.cc: Likewise.
11599 * ipa-cp.cc: Likewise.
11600 * ipa-devirt.cc: Likewise.
11601 * ipa-prop.cc: Likewise.
11602 * omp-low.cc: Likewise.
11603 * pointer-query.cc: Likewise.
11604 * range-op.cc: Likewise.
11605 * tree-cfg.cc: Likewise.
11606 * tree-if-conv.cc: Likewise.
11607 * tree-inline.cc: Likewise.
11608 * tree-object-size.cc: Likewise.
11609 * tree-ssa-ccp.cc: Likewise.
11610 * tree-ssa-dom.cc: Likewise.
11611 * tree-ssa-forwprop.cc: Likewise.
11612 * tree-ssa-ifcombine.cc: Likewise.
11613 * tree-ssa-loop-ivcanon.cc: Likewise.
11614 * tree-ssa-math-opts.cc: Likewise.
11615 * tree-ssa-pre.cc: Likewise.
11616 * tree-ssa-propagate.cc: Likewise.
11617 * tree-ssa-reassoc.cc: Likewise.
11618 * tree-ssa-sccvn.cc: Likewise.
11619 * tree-ssa-strlen.cc: Likewise.
11620 * tree-ssa.cc: Likewise.
11621 * value-pointer-equiv.cc: Likewise.
11622 * vr-values.cc: Likewise.
11623
11624 2022-05-13 Alexandre Oliva <oliva@adacore.com>
11625
11626 PR rtl-optimization/105455
11627 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
11628 probabilities for newly-conditional edges.
11629
11630 2022-05-13 liuhongt <hongtao.liu@intel.com>
11631
11632 PR tree-optimization/102583
11633 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
11634 contiguous stride in the VEC_PERM_EXPR.
11635
11636 2022-05-12 Richard Biener <rguenther@suse.de>
11637
11638 PR rtl-optimization/105577
11639 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
11640 edges before running fast DCE via df_analyze.
11641
11642 2022-05-12 Richard Biener <rguenther@suse.de>
11643
11644 PR tree-optimization/105562
11645 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
11646 against all CLOBBER defs if there's not an obvious must-alias
11647 and we are not doing redundant store elimination.
11648 (vn_walk_cb_data::redundant_store_removal_p): New field.
11649 (vn_reference_lookup_pieces): Initialize it.
11650 (vn_reference_lookup): Add argument to specify if we are
11651 doing redundant store removal.
11652 (eliminate_dom_walker::eliminate_stmt): Specify we do.
11653 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
11654
11655 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
11656
11657 PR target/104371
11658 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
11659 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
11660 New define_split pattern.
11661
11662 2022-05-12 Jakub Jelinek <jakub@redhat.com>
11663
11664 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
11665 if null_pointer_node.
11666 (gimplify_scan_omp_clauses): Likewise.
11667 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
11668 as omp_all_memory.
11669
11670 2022-05-11 Patrick Palka <ppalka@redhat.com>
11671
11672 * tree.h (TREE_VEC_BEGIN): Define.
11673 (TREE_VEC_END): Correct 'length' member access.
11674 (class tree_vec_range): Define.
11675
11676 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
11677
11678 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
11679
11680 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
11681
11682 * config/rs6000/rs6000.md: Use d instead of <Ff>.
11683
11684 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
11685
11686 * config/rs6000/constraints.md (register_constraint "f"): Use
11687 RS6000_CONSTRAINT_d.
11688 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
11689 RS6000_CONSTRAINT_f.
11690 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
11691 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
11692 RS6000_CONSTRAINT_d.
11693
11694 2022-05-11 Richard Biener <rguenther@suse.de>
11695
11696 * gimple-fold.h (gimple_build): Use variadic template
11697 functions for the gimple_build API forwarders without
11698 location_t argument.
11699
11700 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
11701
11702 PR middle-end/70090
11703 * asan.cc (initialize_sanitizer_builtins): Register
11704 __builtin_dynamic_object_size if necessary.
11705
11706 2022-05-11 Richard Biener <rguenther@suse.de>
11707
11708 PR rtl-optimization/105559
11709 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
11710 for non-debug insns.
11711
11712 2022-05-11 Richard Biener <rguenther@suse.de>
11713
11714 * generic-match-head.cc: Include tree-eh.h.
11715 * match.pd ((cond ...) cmp X): New simplification inspired
11716 by fold_binary_op_with_conditional_arg.
11717 (eq/ne (cmp ...) true/false): Likewise.
11718
11719 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
11720
11721 * doc/install.texi: Don't document '--with-hsa-runtime',
11722 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
11723
11724 2022-05-11 Martin Liska <mliska@suse.cz>
11725
11726 PR other/105527
11727 * doc/install.texi: Document the configure option --with-zstd.
11728
11729 2022-05-11 Martin Liska <mliska@suse.cz>
11730
11731 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
11732 compute index in cpu_features2.
11733 (set_cpu_feature): Likewise.
11734 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
11735 loop for cpu_features2 and use NOP_EXPRs.
11736
11737 2022-05-11 Richard Biener <rguenther@suse.de>
11738
11739 PR bootstrap/105551
11740 * opts.cc (finish_options): Also disable var-tracking if
11741 !DWARF2_DEBUGGING_INFO.
11742
11743 2022-05-11 liuhongt <hongtao.liu@intel.com>
11744
11745 PR target/104915
11746 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
11747 pre_reload define_insn_and_split.
11748 (*vec_setv2di_0_zero_extendhi_1): Ditto.
11749 (*vec_set<mode>_0_zero_extendsi): Ditto.
11750 (*vec_setv2di_0_zero_extendsi_1): Ditto.
11751 (ssewvecmode): New mode attr.
11752 (ssewvecmodelower): Ditto.
11753 (ssepackmodelower): Ditto.
11754
11755 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
11756
11757 * config/rs6000/constraints.md (register constraint v): Use
11758 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
11759
11760 2022-05-11 Martin Liska <mliska@suse.cz>
11761
11762 PR target/105355
11763 * config/riscv/riscv.opt: Remove Separate from
11764 -msmall-data-limit=.
11765 * optc-gen.awk: Report error for the described situation.
11766 * gcc.cc: Use Separate syntax.
11767 * opts.cc (gen_command_line_string): Change option name.
11768
11769 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
11770
11771 PR target/105414
11772 * match.pd (minmax): Skip constant folding for fmin/fmax when both
11773 arguments are sNaN or one is sNaN and another is NaN.
11774
11775 2022-05-10 Jakub Jelinek <jakub@redhat.com>
11776
11777 PR tree-optimization/105528
11778 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
11779 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
11780
11781 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
11782
11783 * doc/md.texi (Defining Mode Iterators): Correct example replacement
11784 text.
11785
11786 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
11787
11788 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
11789 constants.
11790 (fmin<mode>3, fmax<mode>3): New insns.
11791
11792 2022-05-10 Richard Biener <rguenther@suse.de>
11793
11794 * tree-if-conv.cc (fold_build_cond_expr): Use
11795 match-and-simplify to simplify the condition.
11796 (ifcvt_follow_ssa_use_edges): Remove.
11797 (predicate_scalar_phi): Use follow_all_ssa_edges.
11798
11799 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
11800
11801 PR middle-end/100400
11802 * omp-oacc-kernels-decompose.cc
11803 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
11804 call 'internal_error'.
11805
11806 2022-05-10 Richard Biener <rguenther@suse.de>
11807
11808 PR middle-end/105537
11809 * toplev.cc (process_options): Move flag_var_tracking
11810 handling ...
11811 * opts.cc (finish_options): ... here.
11812
11813 2022-05-10 Martin Liska <mliska@suse.cz>
11814
11815 * basic-block.h (struct basic_block_d): Use void *
11816 instead PTR.
11817 * cfgloop.h: Likewise.
11818 * cgraph.h: Likewise.
11819 * gengtype-state.cc (state_ident_by_name): Likewise.
11820 (record_type): Likewise.
11821 (read_state_already_seen_type): Likewise.
11822 * gengtype.cc (dump_type): Likewise.
11823 (input_file_by_name): Likewise.
11824 (main): Likewise.
11825 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
11826 * ipa-utils.h (struct ipa_dfs_info): Likewise.
11827 * plugin.cc (htab_hash_plugin): Likewise.
11828
11829 2022-05-10 Richard Biener <rguenther@suse.de>
11830
11831 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
11832 API with !GENERATOR_FILE.
11833 * opts.cc (global_options): Poison.
11834 (global_options_set): Likewise.
11835 (finish_options): Refer to options via opts.
11836
11837 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
11838 Roger Sayle <roger@nextmovesoftware.com>
11839
11840 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
11841 alternative when optimizing for size and the immediate operand is
11842 const_0_to_127_operand.
11843 (*andqi_2_maybe_si): Likewise.
11844 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
11845
11846 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
11847
11848 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
11849 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
11850 can't be negative.
11851
11852 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
11853
11854 PR target/105292
11855 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
11856 true only for 8-byte vector modes.
11857
11858 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
11859
11860 PR middle-end/70090
11861 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
11862 (instrument_object_size): Get dynamic object size expression.
11863
11864 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
11865
11866 PR preprocessor/101168
11867 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
11868 Avoid empty identifier.
11869
11870 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
11871
11872 PR target/101891
11873 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
11874 as a generic MMX mode instead of V4HImode.
11875 (zero_all_mm_registers): Use SET to zero instead of MOV for
11876 zeroing scratch registers.
11877 (ix86_zero_call_used_regs): Likewise.
11878
11879 2022-05-09 liuhongt <hongtao.liu@intel.com>
11880
11881 PR target/105354
11882 * config/i386/i386-expand.cc
11883 (expand_vec_perm_pslldq_psrldq_por): New function.
11884 (ix86_expand_vec_perm_const_1): Try
11885 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
11886 4/5-instruction sequence.
11887
11888 2022-05-09 Martin Liška <mliska@suse.cz>
11889
11890 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
11891 * system.h (STATIC_ASSERT): Define as static_assert for C++
11892 and fallback to array index in C.
11893
11894 2022-05-09 Richard Biener <rguenther@suse.de>
11895
11896 PR tree-optimization/105517
11897 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
11898 offset can be represented in the POINTER_PLUS_EXPR IL.
11899 (vn_reference_insert): Likewise.
11900 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
11901
11902 2022-05-09 Richard Biener <rguenther@suse.de>
11903
11904 * match.pd: Remove #if GIMPLE guards around ! using patterns.
11905
11906 2022-05-09 liuhongt <hongtao.liu@intel.com>
11907
11908 PR target/105072
11909 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
11910 New define_insn.
11911 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
11912 define_insn_and_split.
11913
11914 2022-05-09 Alex Coplan <alex.coplan@arm.com>
11915
11916 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
11917 symtab state is PARSING.
11918
11919 2022-05-09 Martin Liska <mliska@suse.cz>
11920
11921 * system.h (LIKELY): Define.
11922 (UNLIKELY): Likewise.
11923 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
11924 macros.
11925 * dse.cc (set_position_unneeded): Likewise.
11926 (set_all_positions_unneeded): Likewise.
11927 (any_positions_needed_p): Likewise.
11928 (all_positions_needed_p): Likewise.
11929 * expmed.cc (flip_storage_order): Likewise.
11930 * genmatch.cc (dt_simplify::gen_1): Likewise.
11931 * ggc-common.cc (gt_pch_save): Likewise.
11932 * print-rtl.cc: Likewise.
11933 * rtl-iter.h (T>::array_type::~array_type): Likewise.
11934 (T>::next): Likewise.
11935 * rtl-ssa/internals.inl: Likewise.
11936 * rtl-ssa/member-fns.inl: Likewise.
11937 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
11938 (rtx_properties::try_to_add_dest): Likewise.
11939 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
11940 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
11941 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
11942 * sort.cc (likely): Likewise.
11943 (mergesort): Likewise.
11944 * wide-int.h (wi::eq_p): Likewise.
11945 (wi::ltu_p): Likewise.
11946 (wi::cmpu): Likewise.
11947 (wi::bit_and): Likewise.
11948 (wi::bit_and_not): Likewise.
11949 (wi::bit_or): Likewise.
11950 (wi::bit_or_not): Likewise.
11951 (wi::bit_xor): Likewise.
11952 (wi::add): Likewise.
11953 (wi::sub): Likewise.
11954
11955 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
11956
11957 * config/riscv/arch-canonicalize: Handle g correctly.
11958
11959 2022-05-07 Marek Polacek <polacek@redhat.com>
11960
11961 PR c++/101833
11962 PR c++/47634
11963 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
11964
11965 2022-05-06 Jason Merrill <jason@redhat.com>
11966
11967 * diagnostic-color.cc: Add fnname and targs color entries.
11968 * doc/invoke.texi: Document them.
11969
11970 2022-05-06 Jason Merrill <jason@redhat.com>
11971
11972 * vec.h (vec::iterate): Fix comment.
11973
11974 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
11975
11976 PR target/102059
11977 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
11978 and -mpower10-fusion options for inlining purposes.
11979
11980 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
11981
11982 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
11983
11984 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
11985
11986 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
11987 omp_runtime_apis array.
11988
11989 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
11990
11991 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
11992 (scan_sharing_clauses): Check a restriction on allocate clause.
11993
11994 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
11995
11996 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
11997 and ORDERED clause conflict errors. Add check for GRAINSIZE and
11998 NUM_TASKS on TASKLOOP.
11999
12000 2022-05-05 Martin Liska <mliska@suse.cz>
12001
12002 * genautomata.cc (create_composed_state): Remove dead code.
12003 * graphite-poly.cc (print_pdrs): Likewise.
12004 * lto-wrapper.cc (run_gcc): Likewise.
12005 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
12006 Likewise.
12007
12008 2022-05-05 Martin Liska <mliska@suse.cz>
12009
12010 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
12011 PROF_*.
12012 (gimple_gen_time_profiler): Likewise.
12013
12014 2022-05-05 Martin Liska <mliska@suse.cz>
12015
12016 * value-prof.cc (stream_out_histogram_value): Remove sanity
12017 checking.
12018
12019 2022-05-05 Richard Biener <rguenther@suse.de>
12020
12021 PR tree-optimization/104162
12022 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
12023 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
12024 becomes invariant.
12025 (vn_reference_insert): Likewise.
12026
12027 2022-05-05 Richard Biener <rguenther@suse.de>
12028
12029 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
12030 to real_value field.
12031 (tree_real_cst::value): Add real_value field.
12032 * tree.h (TREE_REAL_CST_PTR): Adjust.
12033 * tree.cc (build_real): Remove separate allocation.
12034 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
12035 Likewise.
12036
12037 2022-05-05 Richard Biener <rguenther@suse.de>
12038
12039 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
12040 divisions with undefined overflow unconditionally.
12041 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
12042 overflow to defined.
12043
12044 2022-05-05 Richard Biener <rguenther@suse.de>
12045
12046 PR tree-optimization/105484
12047 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
12048 whether the CFG changed.
12049 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
12050
12051 2022-05-05 Richard Biener <rguenther@suse.de>
12052
12053 PR tree-optimization/104595
12054 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
12055 COND_EXPR do not fail if check_bool_pattern returns false.
12056
12057 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
12058
12059 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
12060 item that is in an outer data-sharing clause.
12061
12062 2022-05-04 Richard Biener <rguenther@suse.de>
12063
12064 PR tree-optimization/104658
12065 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
12066 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
12067 type on nodes we promote.
12068 (vectorizable_bb_reduc_epilogue): Deal with externalized
12069 root.
12070 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
12071 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
12072
12073 2022-05-04 Richard Biener <rguenther@suse.de>
12074
12075 PR tree-optimization/103116
12076 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
12077 case we need peeling for gaps even though GROUP_GAP is zero.
12078
12079 2022-05-04 Martin Liska <mliska@suse.cz>
12080
12081 * gengtype-state.cc (read_a_state_token): Remove dead code.
12082 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
12083
12084 2022-05-04 Richard Biener <rguenther@suse.de>
12085
12086 * gimplify.cc (gimplify_init_constructor): First gimplify,
12087 then simplify the result to a VECTOR_CST.
12088
12089 2022-05-04 Jakub Jelinek <jakub@redhat.com>
12090
12091 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
12092 element at the end of insn_conditions.
12093 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
12094 ARRAY_SIZE (insn_conditions).
12095
12096 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
12097
12098 PR target/104662
12099 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
12100 vector of booleans and MVE is not enabled.
12101
12102 2022-05-04 Richard Biener <rguenther@suse.de>
12103
12104 PR debug/105158
12105 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
12106 Move debug stmts to the predecessor if moving to the
12107 destination is not possible.
12108 (remove_forwarder_block): Adjust.
12109 (remove_forwarder_block_with_phi): Likewise.
12110
12111 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
12112
12113 PR tree-optimization/102950
12114 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
12115 determine bounds of bitwise operations on signed types.
12116 (operator_bitwise_and::wi_fold): Call the above function.
12117 (operator_bitwise_or::wi_fold): Likewise.
12118 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
12119 result can't be zero if the operands can't be equal.
12120
12121 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
12122
12123 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
12124 protocol class methods linker-visible.
12125
12126 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
12127
12128 PR target/105079
12129 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
12130 define_insn_and_split pattern.
12131
12132 2022-05-03 Richard Biener <rguenther@suse.de>
12133
12134 PR middle-end/105083
12135 * tree-scalar-evolution.cc (scev_initialize): Verify we
12136 have appropriate loop state.
12137 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
12138 loop init and finalization.
12139
12140 2022-05-03 Richard Biener <rguenther@suse.de>
12141
12142 PR middle-end/105461
12143 * opts.cc (finish_options): Match the condition to
12144 disable flag_var_tracking to that of process_options.
12145
12146 2022-05-03 Richard Biener <rguenther@suse.de>
12147
12148 * opts.cc: #undef OPTIONS_SET_P.
12149 (finish_options): Use opts_set instead of OPTIONS_SET_P.
12150
12151 2022-05-03 Richard Biener <rguenther@suse.de>
12152
12153 PR tree-optimization/105394
12154 * tree-vect-generic.cc (expand_vector_condition): Adjust
12155 comp_width for non-integer mode masks as well.
12156
12157 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
12158
12159 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
12160 omp_runtime_apis array.
12161
12162 2022-05-02 Richard Biener <rguenther@suse.de>
12163
12164 * tree-scalar-evolution.cc (expression_expensive_p):
12165 Never consider mismatched calls as cheap.
12166
12167 2022-05-02 Richard Biener <rguenther@suse.de>
12168
12169 PR tree-optimization/104240
12170 * tree-vect-slp.cc (op1_op0_map): New.
12171 (vect_get_operand_map): Handle compares.
12172 (vect_build_slp_tree_1): Support swapped operands for
12173 tcc_comparison.
12174
12175 2022-05-02 Jakub Jelinek <jakub@redhat.com>
12176
12177 PR debug/105415
12178 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
12179 if there is no symtab node for the VAR_DECL.
12180
12181 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
12182
12183 * gcov-io.cc (gcov_rewrite): Clear the file error status.
12184
12185 2022-05-02 Richard Biener <rguenther@suse.de>
12186
12187 PR tree-optimization/105437
12188 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
12189 case where last_stmt alters control flow.
12190
12191 2022-05-02 Richard Biener <rguenther@suse.de>
12192
12193 * dojump.cc (do_jump): Use CASE_CONVERT.
12194 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
12195
12196 2022-05-02 Jakub Jelinek <jakub@redhat.com>
12197
12198 * system.h: Include initializer_list.
12199
12200 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
12201
12202 * config/rs6000/constraints.md (Y constraint): Fix comment.
12203
12204 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
12205
12206 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
12207 VR_RANGE before passing a piecewise range to set_range_info_raw.
12208
12209 2022-04-30 Patrick Palka <ppalka@redhat.com>
12210
12211 * gengtype.cc (adjust_field_tree_exp): Remove.
12212 (adjust_field_type): Don't handle the "tree_exp" special attribute.
12213 * tree-core.h (struct tree_exp): Remove "special" and "desc"
12214 attributes. Add "length" attribute.
12215
12216 2022-04-29 Martin Jambor <mjambor@suse.cz>
12217
12218 PR ipa/100413
12219 * cgraph.cc (cgraph_node::remove): Release body of the node this
12220 is clone_of if appropriate.
12221
12222 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
12223
12224 PR target/51954
12225 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
12226
12227 2022-04-29 Richard Biener <rguenther@suse.de>
12228
12229 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
12230 (canonicalize_cond_expr_cond): Move here from gimple.cc,
12231 allow both COND_EXPR and GIMPLE_COND forms.
12232 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
12233 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
12234 * gimple.h (canonicalize_cond_expr_cond): Likewise.
12235 * gimple-loop-versioning.cc (loop_versioning::version_loop):
12236 Use is_gimple_condexpr_for_cond.
12237 * tree-parloops.cc (gen_parallel_loop): Likewise.
12238 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
12239 a proper cond expr after canonicalize_cond_expr_cond.
12240 Use is_gimple_condexpr_for_cond where appropriate.
12241 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
12242 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
12243
12244 2022-04-29 Richard Biener <rguenther@suse.de>
12245
12246 * gimple-iterator.h (gsi_after_labels): Add overload for
12247 gimple_seq.
12248 (gsi_start_1): Rename to gsi_start and take a reference.
12249 (gsi_last_1): Likewise.
12250 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
12251 * omp-low.cc (lower_rec_input_clauses): Likewise.
12252 (lower_omp_scan): Likewise.
12253
12254 2022-04-29 Richard Biener <rguenther@suse.de>
12255
12256 PR tree-optimization/105431
12257 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
12258 (powi_as_mults): Use absu_hwi.
12259 (gimple_expand_builtin_powi): Remove now pointless n != -n
12260 check.
12261
12262 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
12263
12264 * range-op.cc (empty_range_varying): Move to range-op.h.
12265 (range_true): Move to range.h.
12266 (range_false): Same.
12267 (range_true_and_false): Same.
12268 (enum bool_range_state): Move to range-op.h.
12269 (relop_early_resolve): Same.
12270 (operator_equal::op1_op2_relation): Abstract code to...
12271 (equal_op1_op2_relation): ...here.
12272 (operator_not_equal::op1_op2_relation): Abstract code to...
12273 (not_equal_op1_op2_relation): ...here.
12274 (operator_lt::op1_op2_relation): Abstract code to...
12275 (lt_op1_op2_relation): ...here.
12276 (operator_le::op1_op2_relation): Abstract code to...
12277 (le_op1_op2_relation): ...here.
12278 (operator_gt::op1_op2_relation): Abstract code to...
12279 (gt_op1_op2_relation): ...here.
12280 (operator_ge::op1_op2_relation): Abstract code to...
12281 (ge_op1_op2_relation): ...here.
12282 (class range_op_table): Move to range-op.h.
12283 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
12284 (not_equal_op1_op2_relation): Same.
12285 (lt_op1_op2_relation): Same.
12286 (le_op1_op2_relation): Same.
12287 (gt_op1_op2_relation): Same.
12288 (ge_op1_op2_relation): Same.
12289 (enum bool_range_state): Same.
12290 (get_bool_state): Same.
12291 (empty_range_varying): Same.
12292 (relop_early_resolve): Same.
12293 (class range_op_table): Same.
12294 * range.h (range_true): Same.
12295 (range_false): Same.
12296 (range_true_and_false): Same.
12297
12298 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
12299
12300 * gimple-fold.cc (size_must_be_zero_p): Use reference
12301 instead of pointer
12302 * gimple-ssa-evrp-analyze.cc
12303 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
12304 intersect to legacy_verbose_intersect.
12305 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
12306 of pointer.
12307 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
12308 instead of value_range_equiv.
12309 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
12310 instead of pointer.
12311 (find_case_label_range): Same.
12312 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
12313 (value_range_equiv::legacy_verbose_intersect): ...this.
12314 (value_range_equiv::union_): Rename to...
12315 (value_range_equiv::legacy_verbose_union_): ...this.
12316 * value-range-equiv.h (class value_range_equiv): Rename union and
12317 intersect to legacy_verbose_{intersect,union}.
12318 * value-range.cc (irange::union_): Rename to...
12319 (irange::legacy_verbose_union_): ...this.
12320 (irange::intersect): Rename to...
12321 (irange::legacy_verbose_intersect): ...this.
12322 * value-range.h (irange::union_): Rename union_ to
12323 legacy_verbose_union.
12324 (irange::intersect): Rename intersect to legacy_verbose_intersect.
12325 * vr-values.cc (vr_values::update_value_range): Same.
12326 (vr_values::extract_range_for_var_from_comparison_expr): Same.
12327 (vr_values::extract_range_from_cond_expr): Rename union_ to
12328 legacy_verbose_union.
12329 (vr_values::extract_range_from_phi_node): Same.
12330
12331 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
12332
12333 * gimple-ssa-evrp-analyze.cc
12334 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
12335 that take a range.
12336 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
12337 * ipa-prop.cc (ipcp_update_vr): Same.
12338 * tree-inline.cc (remap_ssa_name): Same.
12339 * tree-ssa-copy.cc (fini_copy_prop): Same.
12340 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
12341 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
12342 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
12343 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
12344 * tree-ssa-strlen.cc (set_strlen_range): Same.
12345 (strlen_pass::handle_builtin_string_cmp): Same.
12346 * tree-ssanames.cc (set_range_info): Make static.
12347 (duplicate_ssa_name_range_info): Make static and add a new variant
12348 calling the static.
12349 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
12350 (duplicate_ssa_name_range_info): Remove version taking a
12351 range_info_def and replace with a version taking SSA names.
12352 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
12353 that take a range.
12354 (vect_do_peeling): Same.
12355 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
12356 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
12357
12358 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
12359
12360 * value-range.h (irange::irange): Use set_undefined.
12361
12362 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
12363
12364 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
12365 irange::intersect (wide_int, wide_int).
12366 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
12367 (adjust_imagpart_expr): Same.
12368 * value-range.h (irange::intersect (wide_int, wide_int)): Make
12369 private.
12370
12371 2022-04-29 Richard Biener <rguenther@suse.de>
12372
12373 PR tree-optimization/104322
12374 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
12375
12376 2022-04-29 Richard Biener <rguenther@suse.de>
12377
12378 PR middle-end/105376
12379 * tree.cc (build_real): Special case dconst* arguments
12380 for decimal floating point types.
12381
12382 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12383
12384 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
12385 Environments): New section.
12386
12387 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12388
12389 * doc/gcov-tool.texi: Document merge-stream subcommand.
12390 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
12391 subcommand of gcov-tool.
12392 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
12393 (print_merge_stream_usage_message): New.
12394 (merge_stream_usage): Likewise.
12395 (do_merge_stream): Likewise.
12396 (print_usage): Call print_merge_stream_usage_message().
12397 (main): Call do_merge_stream() to execute merge-stream subcommand.
12398
12399 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12400
12401 * gcov-io.cc (gcov_file_error): New enum.
12402 (gcov_var): Use gcov_file_error enum for the error member.
12403 (gcov_open): Use GCOV_FILE_NO_ERROR.
12404 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
12405 (gcov_write): Likewise.
12406 (gcov_write_unsigned): Likewise.
12407 (gcov_write_string): Likewise.
12408 (gcov_read_bytes): Set error code if EOF is reached.
12409 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
12410
12411 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12412
12413 * gcov-io.cc (GCOV_MODE_STDIN): Define.
12414 (gcov_position): For gcov-tool, return calculated position if file is
12415 stdin.
12416 (gcov_open): For gcov-tool, use stdin if filename is NULL.
12417 (gcov_close): For gcov-tool, do not close stdin.
12418 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
12419 (gcov_sync): For gcov-tool, discard input if file is stdin.
12420
12421 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12422
12423 * doc/invoke.texi (fprofile-info-section): Mention
12424 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
12425 standard language. Fix minor example code issues.
12426 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
12427
12428 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12429
12430 * gcov-io.cc (gcov_seek): Make it static.
12431 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
12432
12433 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12434
12435 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
12436 (gcov_output_files): Open files for reading and writing.
12437
12438 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12439
12440 * gcov-io.cc (gcov_open): Always use the mode parameter.
12441 * gcov-io.h (gcov_open): Declare it unconditionally.
12442
12443 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
12444
12445 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
12446 (profile_merge): Allow merging of directories which contain no profile
12447 files.
12448
12449 2022-04-28 David Malcolm <dmalcolm@redhat.com>
12450
12451 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
12452 fpath.txt output.
12453
12454 2022-04-28 Jakub Jelinek <jakub@redhat.com>
12455
12456 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
12457 temporary only if out overlaps compare_op, not when it overlaps
12458 op0 or op1.
12459
12460 2022-04-28 Jakub Jelinek <jakub@redhat.com>
12461
12462 PR lto/105399
12463 * cgraph.cc (cgraph_node::verify_node): Don't verify
12464 semantic_interposition flag against
12465 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
12466
12467 2022-04-28 Jakub Jelinek <jakub@redhat.com>
12468
12469 PR target/105331
12470 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
12471 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
12472 of it.
12473
12474 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
12475
12476 * doc/install.texi (Configuration): Remove misleading text
12477 around LE PowerPC Linux multilibs.
12478
12479 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12480
12481 PR d/103528
12482 * doc/install.texi (Tools/packages necessary for building GCC)
12483 (GDC): Document libphobos requirement.
12484 (Host/target specific installation notes for GCC, *-*-solaris2*):
12485 Document libphobos and GDC specifics.
12486
12487 2022-04-28 Richard Biener <rguenther@suse.de>
12488
12489 PR tree-optimization/105219
12490 * tree-vect-loop.cc (vect_transform_loop): Disable
12491 special code narrowing the vectorized epilogue max
12492 iterations when peeling for alignment or gaps was in effect.
12493
12494 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
12495
12496 * config/loongarch/loongarch.cc
12497 (loongarch_flatten_aggregate_field): Ignore empty fields for
12498 RECORD_TYPE.
12499
12500 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
12501
12502 * config/loongarch/loongarch.md: Add fdiv define_expand template,
12503 then generate floating-point division and floating-point reciprocal
12504 instructions.
12505
12506 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
12507
12508 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
12509 to PLV instruction templates.
12510
12511 2022-04-27 Richard Biener <rguenther@suse.de>
12512
12513 PR middle-end/104492
12514 * gimple-ssa-warn-access.cc
12515 (pass_waccess::warn_invalid_pointer): Exclude equality compare
12516 diagnostics for all kind of invalidations.
12517 (pass_waccess::check_dangling_uses): Fix post-dominator query.
12518 (pass_waccess::check_pointer_uses): Likewise.
12519
12520 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
12521
12522 PR target/102024
12523 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
12524 prototype.
12525 * config/s390/s390.cc (s390_single_field_struct_p): New function.
12526 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
12527 (s390_function_arg_float): Likewise.
12528
12529 2022-04-27 Jakub Jelinek <jakub@redhat.com>
12530
12531 PR sanitizer/105396
12532 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
12533 where offset is bigger than off but smaller than m_prev_offset + 32
12534 bits by pushing one or more 0 bytes. Sink the
12535 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
12536 all cases to the end of the function.
12537
12538 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
12539
12540 PR target/105271
12541 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
12542 stanza.
12543
12544 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
12545
12546 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
12547 data-share memory exhausted" error more verbose.
12548
12549 2022-04-26 Martin Liska <mliska@suse.cz>
12550
12551 PR lto/105364
12552 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
12553 (run_gcc): Parse OPT_fdiagnostics_urls_.
12554 (main): Initialize global_dc.
12555
12556 2022-04-26 Jakub Jelinek <jakub@redhat.com>
12557
12558 PR rtl-optimization/105314
12559 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
12560 operand is equal to if_info->x, instead use the non-zero operand
12561 as one of the operands of AND with if_info->x as target.
12562
12563 2022-04-26 Jakub Jelinek <jakub@redhat.com>
12564
12565 PR tree-optimization/105374
12566 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
12567 !fold_convertible_p rather than assuming fold_convert must succeed.
12568
12569 2022-04-26 Jakub Jelinek <jakub@redhat.com>
12570
12571 PR target/105367
12572 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
12573 el_mode == DFmode ? double_type_node : float_type_node instead of
12574 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
12575
12576 2022-04-25 David Malcolm <dmalcolm@redhat.com>
12577
12578 PR analyzer/104308
12579 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
12580 the location of new_stmt in all places that don't already set it,
12581 whether explicitly, or via a call to gsi_replace.
12582
12583 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
12584
12585 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
12586
12587 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
12588
12589 PR tree-optimization/105276
12590 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
12591 existing global range with calculated value.
12592
12593 2022-04-25 Richard Biener <rguenther@suse.de>
12594
12595 PR tree-optimization/105368
12596 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
12597
12598 2022-04-25 Richard Biener <rguenther@suse.de>
12599
12600 PR tree-optimization/100810
12601 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
12602 (find_ssa_undef): New function.
12603 (add_candidate_1): Avoid adding derived candidates with
12604 undefined SSA names and mark the original ones.
12605 (determine_group_iv_cost_generic): Reject rewriting
12606 uses with a different IV when that involves undefined SSA names.
12607
12608 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
12609
12610 PR target/89125
12611 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
12612 bsd_libc_has_function.
12613 * targhooks.cc (bsd_libc_has_function): New function.
12614 Expand the supported math functions to inclue C99 libm.
12615 * targhooks.h (bsd_libc_has_function): New Prototype.
12616
12617 2022-04-25 Richard Biener <rguenther@suse.de>
12618
12619 PR rtl-optimization/105231
12620 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
12621 with landing pad > 0 is from i3. Put any REG_EH_REGION note
12622 on i3 or drop it if the insn can not trap.
12623 (try_combine): Ensure that we can merge REG_EH_REGION notes
12624 with non-call exceptions. Ensure we are not splitting a
12625 trapping part of an insn with non-call exceptions when there
12626 is any REG_EH_REGION note to preserve.
12627
12628 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
12629
12630 PR target/105339
12631 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
12632 Add parentheses for parameters and djust format.
12633 (_mm512_mask_scalef_round_pd): Ditto.
12634 (_mm512_maskz_scalef_round_pd): Ditto.
12635 (_mm512_scalef_round_ps): Ditto.
12636 (_mm512_mask_scalef_round_ps): Ditto.
12637 (_mm512_maskz_scalef_round_ps): Ditto.
12638 (_mm_scalef_round_sd): Use _mm_undefined_pd.
12639 (_mm_scalef_round_ss): Use _mm_undefined_ps.
12640 (_mm_mask_scalef_round_sd): New macro.
12641 (_mm_mask_scalef_round_ss): Ditto.
12642 (_mm_maskz_scalef_round_sd): Ditto.
12643 (_mm_maskz_scalef_round_ss): Ditto.
12644
12645 2022-04-23 Jakub Jelinek <jakub@redhat.com>
12646
12647 PR target/105338
12648 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
12649 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
12650 cases.
12651
12652 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
12653
12654 PR target/105334
12655 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
12656 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
12657 (pack<mode>_hard for FMOVE128): ... this...
12658 (pack<mode>_soft for FMOVE128): ... and this.
12659
12660 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
12661
12662 * doc/extend.texi: Correct "This" to "These".
12663
12664 2022-04-22 Jakub Jelinek <jakub@redhat.com>
12665
12666 PR rtl-optimization/105333
12667 * rtlanal.cc (replace_rtx): Use simplify_subreg or
12668 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
12669 CONST_INT_P.
12670
12671 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
12672
12673 PR target/103197
12674 PR target/102146
12675 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
12676 the "Z" alternatives in {l,st}{f,xs}iwzx.
12677 (zero_extendhi<mode>2 for EXTHI): Ditto.
12678 (zero_extendsi<mode>2 for EXTSI): Ditto.
12679 (*movsi_internal1): Ditto.
12680 (*mov<mode>_internal1 for QHI): Ditto.
12681 (movsd_hardfloat): Ditto.
12682
12683 2022-04-21 Martin Liska <mliska@suse.cz>
12684
12685 * configure.ac: Enable compressed debug sections for mold
12686 linker.
12687 * configure: Regenerate.
12688
12689 2022-04-21 Jakub Jelinek <jakub@redhat.com>
12690
12691 PR debug/105203
12692 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
12693 on DEBUG_INSNs.
12694
12695 2022-04-20 Richard Biener <rguenther@suse.de>
12696
12697 PR tree-optimization/104912
12698 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
12699 the cost model check to a separate BB to make sure it is
12700 checked first and not combined with other version checks.
12701
12702 2022-04-20 Richard Biener <rguenther@suse.de>
12703
12704 PR tree-optimization/105312
12705 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
12706 VCOND and VCONDU for EQ and NE.
12707
12708 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
12709
12710 PR ipa/103818
12711 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
12712 poly_offset_int to avoid overflow.
12713 (modref_access_node::update2): likewise.
12714
12715 2022-04-20 Jakub Jelinek <jakub@redhat.com>
12716
12717 PR ipa/105306
12718 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
12719 to opt_for_fn (decl, flag_semantic_interposition).
12720 * cgraphclones.cc (cgraph_node::create_clone): Copy over
12721 semantic_interposition flag.
12722
12723 2022-04-19 Sergei Trofimovich <siarheit@google.com>
12724
12725 PR gcov-profile/105282
12726 * value-prof.cc (stream_out_histogram_value): Allow negative counts
12727 on HIST_TYPE_INDIR_CALL.
12728
12729 2022-04-19 Jakub Jelinek <jakub@redhat.com>
12730
12731 PR target/105257
12732 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
12733 use gen_raw_REG instead of gen_rtx_REG and copy over also
12734 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
12735
12736 2022-04-19 Richard Biener <rguenther@suse.de>
12737
12738 PR tree-optimization/104010
12739 PR tree-optimization/103941
12740 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
12741 we run into stmts in patterns continue walking those
12742 for uses outside of the vectorized region instead of
12743 marking the lane live.
12744
12745 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
12746
12747 * doc/install.texi <CRIS>: Remove references to removed websites and
12748 adjust for cris-*-elf being the only remaining toolchain.
12749
12750 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
12751
12752 * doc/invoke.texi <CRIS>: Remove references to options for removed
12753 subtarget cris-axis-linux-gnu and tweak wording accordingly.
12754
12755 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
12756
12757 * doc/install.texi (Specific): Adjust mingw-w64 download link.
12758
12759 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
12760
12761 * config/i386/smmintrin.h: Correct target pragma from sse4.1
12762 and sse4.2 to crc32 for crc32 intrinsics.
12763
12764 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
12765
12766 PR debug/105089
12767 * ctfc.cc (ctf_dvd_ignore_insert): New function.
12768 (ctf_dvd_ignore_lookup): Likewise.
12769 (ctf_add_variable): Keep track of non-defining decl DIEs.
12770 (new_ctf_container): Initialize the new hash-table.
12771 (ctfc_delete_container): Empty hash-table.
12772 * ctfc.h (struct ctf_container): Add new hash-table.
12773 (ctf_dvd_ignore_lookup): New declaration.
12774 (ctf_add_variable): Add additional argument.
12775 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
12776 record for non-defining decl for which a defining decl exists
12777 in the same TU.
12778 (ctf_preprocess): Defer updating the number of global objts
12779 until here.
12780 (output_ctf_header): Use ctfc_vars_list_count as some CTF
12781 variables may not make it to the final output.
12782 (output_ctf_vars): Likewise.
12783 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
12784 if this is known to be a non-defining decl DIE.
12785
12786 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
12787
12788 * ctfc.h (struct ctf_container): Introduce a new member.
12789 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
12790 variable.
12791
12792 2022-04-14 Jakub Jelinek <jakub@redhat.com>
12793
12794 PR target/105247
12795 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
12796 or rotates by VOIDmode constant integer shift count use word_mode
12797 for the operand if int_mode is narrower than word.
12798
12799 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
12800
12801 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
12802 (s390_get_unit_mask): Likewise.
12803 (s390_is_fpd): Likewise.
12804 (s390_is_fxd): Likewise.
12805 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
12806 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
12807 Add z16.
12808 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
12809 Likewise.
12810 * config/s390/3931.md: New file.
12811
12812 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
12813
12814 PR tree-optimization/105254
12815 * config/aarch64/aarch64.cc
12816 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
12817 loop_vec_info as argument. Restrict the unroll factor to values
12818 that divide the VF.
12819 (aarch64_vector_costs::finish_cost): Update call accordingly.
12820
12821 2022-04-13 Richard Biener <rguenther@suse.de>
12822
12823 PR tree-optimization/105263
12824 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
12825 negates in multiplication chains with DFP.
12826
12827 2022-04-13 Jakub Jelinek <jakub@redhat.com>
12828
12829 PR middle-end/105253
12830 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
12831 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
12832 comparisons or tree_nop_conversion_p checks.
12833
12834 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
12835
12836 PR target/103069
12837 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
12838 Add missing set to target_val at pause label.
12839
12840 2022-04-13 Jakub Jelinek <jakub@redhat.com>
12841
12842 PR target/105234
12843 * attribs.cc (decl_attributes): Don't set
12844 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
12845 NULL.
12846
12847 2022-04-13 Richard Biener <rguenther@suse.de>
12848
12849 PR tree-optimization/105250
12850 * fold-const.cc (fold_convertible_p): Revert
12851 r12-7979-geaaf77dd85c333, instead check for size equality
12852 of the vector types involved.
12853
12854 2022-04-13 Richard Biener <rguenther@suse.de>
12855
12856 Revert:
12857 2022-04-13 Richard Biener <rguenther@suse.de>
12858
12859 PR tree-optimization/104912
12860 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
12861 the cost model check to a separate BB to make sure it is
12862 checked first and not combined with other version checks.
12863
12864 2022-04-13 Richard Biener <rguenther@suse.de>
12865
12866 PR tree-optimization/104912
12867 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
12868 the cost model check to a separate BB to make sure it is
12869 checked first and not combined with other version checks.
12870
12871 2022-04-13 Jakub Jelinek <jakub@redhat.com>
12872
12873 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
12874
12875 2022-04-12 Antoni Boucher <bouanto@zoho.com>
12876
12877 PR jit/104072
12878 * reginfo.cc: New functions (clear_global_regs_cache,
12879 reginfo_cc_finalize) to avoid an issue where compiling the same
12880 code multiple times gives an error about assigning the same
12881 register to 2 global variables.
12882 * rtl.h: New function (reginfo_cc_finalize).
12883 * toplev.cc: Call it.
12884
12885 2022-04-12 Antoni Boucher <bouanto@zoho.com>
12886
12887 PR jit/104071
12888 * toplev.cc: Call the new function tree_cc_finalize in
12889 toplev::finalize.
12890 * tree.cc: New functions (clear_nonstandard_integer_type_cache
12891 and tree_cc_finalize) to clear the cache of non-standard integer
12892 types to avoid having issues with some optimizations of
12893 bitcast where the SSA_NAME will have a size of a cached
12894 integer type that should have been invalidated, causing a
12895 comparison of integer constant to fail.
12896 * tree.h: New function (tree_cc_finalize).
12897
12898 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
12899
12900 PR target/97348
12901 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
12902 * config/nvptx/nvptx.opt (misa): Adjust comment.
12903
12904 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
12905
12906 Revert:
12907 2022-03-03 Tom de Vries <tdevries@suse.de>
12908
12909 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
12910
12911 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
12912
12913 Revert:
12914 2022-03-31 Tom de Vries <tdevries@suse.de>
12915
12916 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
12917
12918 2022-04-12 Richard Biener <rguenther@suse.de>
12919
12920 PR ipa/104303
12921 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
12922 include local escaped memory as obviously necessary stores.
12923
12924 2022-04-12 Richard Biener <rguenther@suse.de>
12925
12926 PR tree-optimization/105235
12927 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
12928 return whether the CFG changed.
12929 (execute_cse_sincos_1): Adjust.
12930
12931 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
12932
12933 PR target/104144
12934 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
12935 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
12936 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
12937 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
12938 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
12939 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
12940 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
12941
12942 2022-04-12 Richard Biener <rguenther@suse.de>
12943
12944 PR tree-optimization/105232
12945 * tree.cc (component_ref_size): Bail out for too large
12946 or non-constant sizes.
12947
12948 2022-04-12 Richard Biener <rguenther@suse.de>
12949
12950 PR tree-optimization/105226
12951 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
12952 we can split the exit of an outer loop we choose to version.
12953
12954 2022-04-12 Jakub Jelinek <jakub@redhat.com>
12955
12956 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
12957 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
12958 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
12959 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
12960 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
12961 Formatting fix.
12962 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
12963
12964 2022-04-12 Jakub Jelinek <jakub@redhat.com>
12965
12966 PR target/105214
12967 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
12968 do_pending_stack_adjust.
12969
12970 2022-04-12 Jakub Jelinek <jakub@redhat.com>
12971
12972 PR rtl-optimization/105211
12973 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
12974 fails for TREE_TYPE (arg), retry it with
12975 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
12976 fails, emit call normally.
12977
12978 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
12979
12980 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
12981 * config.gcc: Add z16 as march/mtune switch.
12982 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
12983 Recognize z16 with -march=native.
12984 * config/s390/s390-opts.h (enum processor_type): Rename
12985 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
12986 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
12987 (PROCESSOR_3931_Z16): ... throughout the file.
12988 (s390_processor processor_table): Add z16 as cpu string.
12989 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
12990 PF_Z16.
12991 (TARGET_CPU_ARCH14): Rename to ...
12992 (TARGET_CPU_Z16): ... this.
12993 (TARGET_CPU_ARCH14_P): Rename to ...
12994 (TARGET_CPU_Z16_P): ... this.
12995 (TARGET_ARCH14): Rename to ...
12996 (TARGET_Z16): ... this.
12997 (TARGET_ARCH14_P): Rename to ...
12998 (TARGET_Z16_P): ... this.
12999 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
13000 check TARGET_Z16 instead of TARGET_ARCH14.
13001 * config/s390/s390.opt: Add z16 to processor_type.
13002 * doc/invoke.texi: Document z16 and arch14.
13003
13004 2022-04-12 chenglulu <chenglulu@loongson.cn>
13005
13006 * config/loongarch/loongarch.cc: Fix bug for
13007 tmpdir-g++.dg-struct-layout-1/t033.
13008
13009 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
13010
13011 PR target/104894
13012 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
13013 to longcall functions.
13014
13015 2022-04-11 Jason Merrill <jason@redhat.com>
13016
13017 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
13018
13019 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
13020
13021 PR target/105213
13022 PR target/103623
13023 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
13024
13025 2022-04-11 Jakub Jelinek <jakub@redhat.com>
13026
13027 PR tree-optimization/105218
13028 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
13029 more than one predecessor or phi's bb more than 2 predecessors,
13030 reset phi result uses instead of adding a debug temp.
13031
13032 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
13033
13034 PR target/104853
13035 * config.gcc: Pass -misa-spec to arch-canonicalize and
13036 multilib-generator.
13037 * config/riscv/arch-canonicalize: Adding -misa-spec option.
13038 (SUPPORTED_ISA_SPEC): New.
13039 (arch_canonicalize): New argument `isa_spec`.
13040 Handle multiple ISA spec versions.
13041 * config/riscv/multilib-generator: Adding -misa-spec option.
13042
13043 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
13044
13045 * config/riscv/arch-canonicalize: Add TODO item.
13046 (IMPLIED_EXT): Sync.
13047 (arch_canonicalize): Checking until no change.
13048
13049 2022-04-11 Tamar Christina <tamar.christina@arm.com>
13050
13051 PR target/105197
13052 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
13053 not masked.
13054
13055 2022-04-11 Jason Merrill <jason@redhat.com>
13056
13057 PR c++/100370
13058 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
13059 deref == -1.
13060
13061 2022-04-11 Jakub Jelinek <jakub@redhat.com>
13062
13063 PR tree-optimization/104639
13064 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
13065 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
13066 into x != cst3.
13067
13068 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
13069
13070 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
13071 sign bit of the source ends up in CC.
13072
13073 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
13074
13075 PR ipa/103376
13076 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
13077 flag.
13078
13079 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
13080
13081 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
13082 nondeterministic and side_effects flags.
13083
13084 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
13085
13086 PR target/105157
13087 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
13088 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
13089 (TARGET_CPU_MASK): Likewise.
13090 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
13091 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
13092 (aarch64_get_arch): Likewise.
13093 (aarch64_override_options): Use TARGET_CPU_NBITS.
13094
13095 2022-04-08 Richard Biener <rguenther@suse.de>
13096
13097 PR tree-optimization/105198
13098 * tree-predcom.cc (find_looparound_phi): Check whether
13099 the found memory location of the entry value is clobbered
13100 inbetween the value we want to use and loop entry.
13101
13102 2022-04-08 Jakub Jelinek <jakub@redhat.com>
13103
13104 PR tree-optimization/105189
13105 * fold-const.cc (make_range_step): Fix up handling of
13106 (unsigned) x +[low, -] ranges for signed x if low fits into
13107 typeof (x).
13108
13109 2022-04-08 Richard Biener <rguenther@suse.de>
13110
13111 PR tree-optimization/105175
13112 * tree-vect-stmts.cc (vectorizable_operation): Suppress
13113 -Wvector-operation-performance if using emulated vectors.
13114 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
13115 -Wvector-operation-performance when suppressed.
13116 (expand_vector_parallel): Likewise.
13117 (expand_vector_comparison): Likewise.
13118 (expand_vector_condition): Likewise.
13119 (lower_vec_perm): Likewise.
13120 (expand_vector_conversion): Likewise.
13121
13122 2022-04-07 Tamar Christina <tamar.christina@arm.com>
13123
13124 PR target/104409
13125 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
13126 (aarch64_general_init_builtins): Move LS64 code.
13127 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
13128 arm_acle.h
13129 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
13130 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
13131
13132 2022-04-07 Richard Biener <rguenther@suse.de>
13133 Jan Hubicka <hubicka@ucw.cz>
13134
13135 PR ipa/104303
13136 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
13137 ref_may_alias_global_p, ref_may_alias_global_p,
13138 stmt_may_clobber_global_p, pt_solution_includes_global): Add
13139 bool parameters indicating whether escaped locals should be
13140 considered global.
13141 * tree-ssa-structalias.cc (pt_solution_includes_global):
13142 When the new escaped_nonlocal_p flag is true also consider
13143 pt->vars_contains_escaped.
13144 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
13145 Pass down new escaped_nonlocal_p flag.
13146 (ref_may_alias_global_p): Likewise.
13147 (stmt_may_clobber_global_p): Likewise.
13148 (ref_may_alias_global_p_1): Likewise. For decls also
13149 query the escaped solution if true.
13150 (ref_may_access_global_memory_p): Remove.
13151 (modref_may_conflict): Use ref_may_alias_global_p with
13152 escaped locals considered global.
13153 (ref_maybe_used_by_stmt_p): Adjust.
13154 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
13155 Likewise.
13156 * tree-ssa-dse.cc (dse_classify_store): Likewise.
13157 * trans-mem.cc (thread_private_new_memory): Likewise, but
13158 consider escaped locals global.
13159 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
13160
13161 2022-04-07 Richard Biener <rguenther@suse.de>
13162
13163 PR tree-optimization/105185
13164 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
13165 modref query again.
13166
13167 2022-04-07 Tamar Christina <tamar.christina@arm.com>
13168
13169 PR target/104049
13170 * config/aarch64/aarch64-simd.md
13171 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
13172 (reduc_plus_scal_<mode>): ... This.
13173 (reduc_plus_scal_v4sf): Moved.
13174 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
13175 (reduc_plus_scal_v2si): ... This.
13176
13177 2022-04-07 Jakub Jelinek <jakub@redhat.com>
13178
13179 PR tree-optimization/102586
13180 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
13181 langhook.
13182 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
13183 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
13184 * gimple-fold.cc (clear_padding_type): Use ftype instead of
13185 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
13186 name try the lang_hooks.types.classtype_as_base langhook and
13187 if it returns non-NULL, use that instead of ftype for recursive call.
13188
13189 2022-04-07 Jakub Jelinek <jakub@redhat.com>
13190
13191 PR tree-optimization/105150
13192 * tree.cc (tree_builtin_call_types_compatible_p): New function.
13193 (get_call_combined_fn): Use it.
13194
13195 2022-04-07 Richard Biener <rguenther@suse.de>
13196
13197 PR middle-end/105165
13198 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
13199 _Complex outputs.
13200
13201 2022-04-07 liuhongt <hongtao.liu@intel.com>
13202
13203 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
13204 Removed.
13205 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
13206 for mask_applied.
13207 (<code><mode>3<mask_name>): Ditto.
13208 (*<code><mode>3<mask_name>): Ditto.
13209 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
13210 real instruction.
13211 (VFB_512): Ditto.
13212 (VFB): Ditto.
13213
13214 2022-04-06 Jakub Jelinek <jakub@redhat.com>
13215
13216 PR rtl-optimization/104985
13217 * combine.cc (struct undo): Add where.regno member.
13218 (do_SUBST_MODE): Rename to ...
13219 (subst_mode): ... this. Change first argument from rtx * into int,
13220 operate on regno_reg_rtx[regno] and save regno into where.regno.
13221 (SUBST_MODE): Remove.
13222 (try_combine): Use subst_mode instead of SUBST_MODE, change first
13223 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
13224 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
13225 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
13226 instead of *undo->where.r.
13227 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
13228 argument from regno_reg_rtx[whatever] to whatever.
13229
13230 2022-04-06 Jakub Jelinek <jakub@redhat.com>
13231
13232 PR target/105069
13233 * config/sh/sh.opt (mdiv=): Add Save.
13234
13235 2022-04-06 Martin Liska <mliska@suse.cz>
13236
13237 PR driver/105096
13238 * common.opt: Document properly based on what it does.
13239 * gcc.cc (display_help): Unify with what we have in common.opt.
13240 * opts.cc (common_handle_option): Do not print undocumented
13241 options.
13242
13243 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
13244
13245 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
13246 cxx17_empty_base_field_p fields and set an indicator.
13247 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
13248 (mips_function_value_1): Inform psABI change about C++17 empty
13249 bases.
13250
13251 2022-04-06 Jakub Jelinek <jakub@redhat.com>
13252
13253 PR tree-optimization/105150
13254 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
13255 builtin_decl_explicit here...
13256 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
13257 here.
13258
13259 2022-04-06 Richard Biener <rguenther@suse.de>
13260
13261 PR tree-optimization/105173
13262 * tree-ssa-reassoc.cc (find_insert_point): Get extra
13263 insert_before output argument and compute it.
13264 (insert_stmt_before_use): Adjust.
13265 (rewrite_expr_tree): Likewise.
13266
13267 2022-04-06 Richard Biener <rguenther@suse.de>
13268
13269 PR ipa/105166
13270 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
13271 out for non-pointer arguments.
13272
13273 2022-04-06 Richard Biener <rguenther@suse.de>
13274
13275 PR tree-optimization/105163
13276 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
13277 negated abnormals.
13278
13279 2022-04-06 Jakub Jelinek <jakub@redhat.com>
13280
13281 PR tree-optimization/105150
13282 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
13283 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
13284 preferrably on builtin_decl_explicit decl rather than fndecl.
13285 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
13286 gimple_builtin_call_types_compatible_p here.
13287
13288 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
13289
13290 PR tree-optimization/103761
13291 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
13292 the ncopies parameter with an slp_node parameter. Calculate the
13293 number of vectors based on it and vectype. Rename lambda to
13294 group_memory_nvectors.
13295 (vectorizable_store, vectorizable_load): Update calls accordingly.
13296
13297 2022-04-06 Martin Liska <mliska@suse.cz>
13298
13299 * doc/invoke.texi: Document it.
13300
13301 2022-04-06 Richard Biener <rguenther@suse.de>
13302
13303 PR tree-optimization/105148
13304 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
13305 2 and 3 of ARRAY_REFs.
13306
13307 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
13308
13309 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
13310 (*andnottf3): Replace with...
13311 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
13312
13313 2022-04-06 Richard Biener <rguenther@suse.de>
13314
13315 PR tree-optimization/105142
13316 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
13317 basic-block parameter.
13318 (maybe_fold_or_comparisons): Likewise.
13319 * gimple-fold.cc (follow_outer_ssa_edges): New.
13320 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
13321 when an outer condition basic-block is specified.
13322 (and_comparisons_1, and_var_with_comparison,
13323 and_var_with_comparison_1, or_comparisons_1,
13324 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
13325 down the outer condition basic-block.
13326 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
13327 basic-block of the outer condition.
13328
13329 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
13330
13331 PR target/105002
13332 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
13333 comparison codes UNLT/UNLE/UNGT/UNGE.
13334
13335 2022-04-05 David Malcolm <dmalcolm@redhat.com>
13336
13337 * doc/extend.texi (Common Function Attributes): Document that
13338 'access' does not imply 'nonnull'.
13339
13340 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
13341
13342 PR target/105139
13343 * config/i386/mmx.md (*movv2qi_internal):
13344 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
13345
13346 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
13347
13348 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
13349 define_expand and turn operands 0 and 1 from REGs to MEMs.
13350 (*aarch64_cpymemdi): New pattern.
13351 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
13352 from a REG to a MEM.
13353 (*aarch64_setmemdi): New pattern.
13354 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
13355 copy_to_mode_reg on all three registers. Replace the original
13356 MEM addresses rather than creating wild reads and writes.
13357 (aarch64_expand_setmem_mops): Likewise for the size and for the
13358 destination memory and address.
13359
13360 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
13361
13362 PR target/103147
13363 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
13364 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
13365 from aarch64_simd_switcher.
13366 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
13367 New variable.
13368 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
13369 (register_tuple_type): Add more asserts. Expect the alignment
13370 of the structure to be subject to flag_pack_struct and
13371 maximum_field_alignment. Set aarch64_simd_tuple_modes.
13372 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
13373 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
13374 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
13375 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
13376 while calling aarch64_init_simd_builtins.
13377 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
13378 (sve_switcher::~sve_switcher): Remove code now performed by
13379 aarch64_simd_switcher.
13380
13381 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
13382
13383 PR target/104897
13384 * config/aarch64/aarch64-sve-builtins.cc
13385 (function_resolver::infer_vector_or_tuple_type): Use error_n
13386 for "%d vectors" messages.
13387
13388 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
13389
13390 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
13391 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
13392 current clause.
13393
13394 2022-04-05 Richard Biener <rguenther@suse.de>
13395
13396 PR c/105151
13397 * passes.def (pass_walloca): Move early instance into
13398 pass_build_ssa_passes to make SSA form available.
13399
13400 2022-04-05 liuhongt <hongtao.liu@intel.com>
13401
13402 PR target/101908
13403 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
13404 function
13405 (ix86_reorg): Call ix86_split_stlf_stall_load.
13406 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
13407 param.
13408
13409 2022-04-05 Alexandre Oliva <oliva@adacore.com>
13410
13411 * targhooks.cc (default_zero_call_used_regs): Attempt to group
13412 regs that the target refuses to use in their natural modes.
13413 (zcur_select_mode_rtx): New.
13414 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
13415 (hard_regno_max_nregs): Define.
13416 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
13417
13418 2022-04-04 Alex Coplan <alex.coplan@arm.com>
13419
13420 * doc/match-and-simplify.texi: Fix typos.
13421
13422 2022-04-04 Jakub Jelinek <jakub@redhat.com>
13423
13424 PR target/105144
13425 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
13426 only if configured with --enable-maintainer-mode, otherwise compare
13427 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
13428 if they differ, emit a message and fail.
13429
13430 2022-04-04 Jakub Jelinek <jakub@redhat.com>
13431
13432 PR target/105144
13433 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
13434 * config/aarch64/aarch64-tune.md: Regenerated.
13435
13436 2022-04-04 Richard Biener <rguenther@suse.de>
13437
13438 PR tree-optimization/105132
13439 * tree-vect-stmts.cc (vectorizable_operation): Check that
13440 the input vectors have the same number of elements.
13441
13442 2022-04-04 Richard Biener <rguenther@suse.de>
13443
13444 PR middle-end/105140
13445 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
13446
13447 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
13448
13449 PR target/104987
13450 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
13451 (delay slot descripts): Use different delay slot description when
13452 the insn as the "bbi" attribute.
13453 (bbi, bbin patterns): Set the bbi attribute to yes.
13454
13455 2022-04-03 Jakub Jelinek <jakub@redhat.com>
13456
13457 PR target/105123
13458 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
13459 using word as target for expand_simple_binop when doing ASHIFT and
13460 IOR.
13461
13462 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
13463
13464 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
13465 NULL before dereferencing it.
13466
13467 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
13468
13469 * config/i386/i386.cc (zero_all_st_registers): Return the value of
13470 num_of_st.
13471 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
13472 the return value of zero_all_st_registers.
13473 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
13474 * function.cc (gen_call_used_regs_seq): Add an assertion.
13475 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
13476
13477 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
13478
13479 PR target/102024
13480 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
13481 fields, and inform if it causes a psABI change.
13482
13483 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
13484
13485 PR target/102024
13486 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
13487 zero-width bit-fields and set up an indicator.
13488 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
13489 (mips_function_value_1): Diagnose when the presense of a C++
13490 zero-width bit-field changes function returning in GCC 12.
13491
13492 2022-04-01 Jakub Jelinek <jakub@redhat.com>
13493
13494 PR tree-optimization/104645
13495 * tree-ssa-phiopt.cc (value_replacement): If assign has
13496 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
13497 statement with constant evaluation.
13498
13499 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
13500
13501 * config/mips/mips.cc (mips_expand_prologue):
13502 IPL is 8bit for MCU ASE.
13503
13504 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
13505
13506 PR target/104004
13507 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
13508 (MTFSB0): Likewise.
13509 (MTFSB1): Likewise.
13510 (SET_FPSCR_RN): Likewise.
13511 (SET_FPSCR_DRN): Mark nosoft and no32bit.
13512
13513 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
13514
13515 * doc/options.texi (Option file format): Clarifications around
13516 option definition records' help texts.
13517
13518 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
13519
13520 * optc-gen.awk <END>: Fix "Multiple different help strings" error
13521 diagnostic.
13522
13523 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
13524
13525 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
13526 determine_suggested_unroll_factor and m_has_avg.
13527 (determine_suggested_unroll_factor): New function.
13528 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
13529 to set m_nosve_pattern.
13530 (aarch64_vector_costs::finish_costs): Use
13531 determine_suggested_unroll_factor.
13532 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
13533 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
13534
13535 2022-03-31 Martin Jambor <mjambor@suse.cz>
13536
13537 PR ipa/103083
13538 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
13539 (ipa_get_jf_ancestor_keep_null): New function.
13540 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
13541 ancestor function.
13542 (compute_complex_assign_jump_func): Pass false to keep_null
13543 parameter of ipa_set_ancestor_jf.
13544 (compute_complex_ancestor_jump_func): Pass true to keep_null
13545 parameter of ipa_set_ancestor_jf.
13546 (update_jump_functions_after_inlining): Carry over keep_null from the
13547 original ancestor jump-function or merge them.
13548 (ipa_write_jump_function): Stream keep_null flag.
13549 (ipa_read_jump_function): Likewise.
13550 (ipa_print_node_jump_functions_for_edge): Print the new flag.
13551 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
13552 member function known_nonzero_p.
13553 (ipcp_bits_lattice::known_nonzero_p): New.
13554 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
13555 observe it.
13556 (ipcp_bits_lattice::meet_with): Likewise.
13557 (propagate_bits_across_jump_function): Simplify. Pass true in
13558 drop_all_ones when it is necessary.
13559 (propagate_aggs_across_jump_function): Take care of keep_null
13560 flag.
13561 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
13562 jump functions.
13563
13564 2022-03-31 Martin Jambor <mjambor@suse.cz>
13565
13566 PR ipa/102513
13567 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
13568 which do not fit the known value_range.
13569
13570 2022-03-31 Martin Jambor <mjambor@suse.cz>
13571
13572 PR ipa/103171
13573 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
13574 always when an ADDR_EXPR constant is known to reach a load because
13575 of inlining, not just when removing an ADDR reference.
13576
13577 2022-03-31 Richard Biener <rguenther@suse.de>
13578
13579 PR tree-optimization/105109
13580 * tree-ssa.cc (execute_update_addresses_taken): Suppress
13581 diagnostics on the load of the other complex component.
13582
13583 2022-03-31 Tom de Vries <tdevries@suse.de>
13584
13585 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
13586
13587 2022-03-31 Richard Biener <rguenther@suse.de>
13588
13589 PR rtl-optimization/105091
13590 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
13591 bases.
13592
13593 2022-03-31 Richard Biener <rguenther@suse.de>
13594
13595 Revert:
13596 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
13597
13598 PR target/102125
13599 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
13600 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
13601
13602 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
13603
13604 * gcov-io.cc (gcov_read_string): Reword documentation comment.
13605
13606 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
13607
13608 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
13609 stanza.
13610 (NEG_V4SF): Likewise.
13611 (NEG_V4SI): Likewise.
13612 (NEG_V8HI): Likewise.
13613 (NEG_V2DF): Move to [vsx] stanza.
13614 (NEG_V2DI): Likewise.
13615
13616 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
13617
13618 PR middle-end/105032
13619 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
13620
13621 2022-03-30 Tom de Vries <tdevries@suse.de>
13622 Tobias Burnus <tobias@codesourcery.com>
13623
13624 * doc/invoke.texi (march): Document __PTX_SM__.
13625 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
13626 __PTX_ISA_VERSION_MINOR__.
13627
13628 2022-03-30 Jakub Jelinek <jakub@redhat.com>
13629
13630 PR sanitizer/105093
13631 * ubsan.cc (instrument_object_size): If t is equal to inner and
13632 is a decl other than global var, punt. When emitting call to
13633 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
13634
13635 2022-03-30 Jakub Jelinek <jakub@redhat.com>
13636
13637 PR tree-optimization/105094
13638 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
13639 bitsize <= 0 rather than just == 0.
13640
13641 2022-03-30 Tom de Vries <tdevries@suse.de>
13642
13643 * doc/invoke.texi (misa, mptx): Update.
13644 (march, march-map): Add.
13645
13646 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
13647
13648 * opt-functions.awk (n_args): New function.
13649 (lang_enabled_by): Merge function into...
13650 * optc-gen.awk <END>: ... sole user here.
13651 Improve diagnostics.
13652
13653 2022-03-29 Marek Polacek <polacek@redhat.com>
13654 Jakub Jelinek <jakub@redhat.com>
13655
13656 PR middle-end/103597
13657 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
13658 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
13659 (gimplify_cond_expr): Set UNUSED_LABEL_P.
13660 * tree.h (UNUSED_LABEL_P): New.
13661
13662 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
13663
13664 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
13665 be any VSX register.
13666
13667 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
13668
13669 PR target/102024
13670 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
13671 zero-sized bit-fields. Detect cases where a warning may be needed.
13672 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
13673 zero-sized bit-field has caused parameter passing to change.
13674
13675 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
13676
13677 PR target/102024
13678 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
13679 bit-fields. Detect cases where a warning may be needed.
13680 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
13681 a zero-sized bit-field has caused parameter passing to change.
13682
13683 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
13684
13685 PR target/96882
13686 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
13687 ARM_PCS_AAPCS_LOCAL.
13688
13689 2022-03-29 Tom de Vries <tdevries@suse.de>
13690
13691 PR target/104857
13692 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
13693 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
13694 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
13695 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
13696
13697 2022-03-29 Tom de Vries <tdevries@suse.de>
13698
13699 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
13700 is ignored.
13701
13702 2022-03-29 Tom de Vries <tdevries@suse.de>
13703
13704 PR target/104714
13705 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
13706
13707 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
13708
13709 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
13710 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
13711 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
13712 (TARGET_USE_GATHER_4PARTS): New macro.
13713 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
13714 (X86_TUNE_USE_GATHER_4PARTS): New tune
13715
13716 2022-03-29 Tom de Vries <tdevries@suse.de>
13717
13718 * config/nvptx/nvptx.opt (march): Add alias of misa.
13719
13720 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
13721 Lulu Cheng <chenglulu@loongson.cn>
13722
13723 * doc/install.texi: Add LoongArch options section.
13724 * doc/invoke.texi: Add LoongArch options section.
13725 * doc/md.texi: Add LoongArch options section.
13726
13727 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
13728 Lulu Cheng <chenglulu@loongson.cn>
13729
13730 * config/loongarch/loongarch-c.cc
13731
13732 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
13733 Lulu Cheng <chenglulu@loongson.cn>
13734
13735 * config/loongarch/larchintrin.h: New file.
13736 * config/loongarch/loongarch-builtins.cc: New file.
13737
13738 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
13739 Lulu Cheng <chenglulu@loongson.cn>
13740
13741 * config/host-linux.cc: Add LoongArch support.
13742 * config/loongarch/loongarch-protos.h: New file.
13743 * config/loongarch/loongarch-tune.h: Likewise.
13744 * config/loongarch/loongarch.cc: Likewise.
13745 * config/loongarch/loongarch.h: Likewise.
13746
13747 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
13748 Lulu Cheng <chenglulu@loongson.cn>
13749
13750 * config/loongarch/constraints.md: New file.
13751 * config/loongarch/generic.md: New file.
13752 * config/loongarch/la464.md: New file.
13753 * config/loongarch/loongarch-ftypes.def: New file.
13754 * config/loongarch/loongarch-modes.def: New file.
13755 * config/loongarch/loongarch.md: New file.
13756 * config/loongarch/predicates.md: New file.
13757 * config/loongarch/sync.md: New file.
13758
13759 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
13760 Lulu Cheng <chenglulu@loongson.cn>
13761
13762 * configure: Regenerate file.
13763
13764 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
13765 Lulu Cheng <chenglulu@loongson.cn>
13766
13767 * common/config/loongarch/loongarch-common.cc: New file.
13768 * config/loongarch/genopts/genstr.sh: New file.
13769 * config/loongarch/genopts/loongarch-strings: New file.
13770 * config/loongarch/genopts/loongarch.opt.in: New file.
13771 * config/loongarch/loongarch-str.h: New file.
13772 * config/loongarch/gnu-user.h: New file.
13773 * config/loongarch/linux.h: New file.
13774 * config/loongarch/loongarch-cpu.cc: New file.
13775 * config/loongarch/loongarch-cpu.h: New file.
13776 * config/loongarch/loongarch-def.c: New file.
13777 * config/loongarch/loongarch-def.h: New file.
13778 * config/loongarch/loongarch-driver.cc: New file.
13779 * config/loongarch/loongarch-driver.h: New file.
13780 * config/loongarch/loongarch-opts.cc: New file.
13781 * config/loongarch/loongarch-opts.h: New file.
13782 * config/loongarch/loongarch.opt: New file.
13783 * config/loongarch/t-linux: New file.
13784 * config/loongarch/t-loongarch: New file.
13785 * config.gcc: Add LoongArch support.
13786 * configure.ac: Add LoongArch support.
13787
13788 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
13789
13790 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
13791 typo.
13792
13793 2022-03-29 Richard Biener <rguenther@suse.de>
13794
13795 PR tree-optimization/105080
13796 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
13797 loops and SCEV.
13798
13799 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
13800
13801 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
13802 (output_ctf_vars): Likewise.
13803
13804 2022-03-28 Jason Merrill <jason@redhat.com>
13805
13806 PR c++/59426
13807 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
13808
13809 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
13810
13811 PR target/105068
13812 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
13813 "Yw" in clobber.
13814
13815 2022-03-28 Tom de Vries <tdevries@suse.de>
13816
13817 PR target/104818
13818 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
13819 * config/nvptx/nvptx-gen.opt: Regenerate.
13820 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
13821 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
13822 gen-opt.sh.
13823
13824 2022-03-28 David Malcolm <dmalcolm@redhat.com>
13825
13826 PR analyzer/104308
13827 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
13828 to loads then stores, set the location of the new load stmt.
13829
13830 2022-03-28 Richard Biener <rguenther@suse.de>
13831
13832 PR tree-optimization/105070
13833 * tree-switch-conversion.h
13834 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
13835 argument.
13836 * tree-switch-conversion.cc
13837 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
13838 cond with location.
13839 (bit_test_cluster::emit): Annotate all generated expressions
13840 with location.
13841
13842 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
13843
13844 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
13845
13846 2022-03-28 liuhongt <hongtao.liu@intel.com>
13847
13848 PR target/105066
13849 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
13850 alternative 4 from sse4_noavx to noavx.
13851
13852 2022-03-28 Jakub Jelinek <jakub@redhat.com>
13853
13854 PR tree-optimization/105056
13855 * tree-predcom.cc (component::component): Initialize also comp_step.
13856
13857 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
13858
13859 PR target/105068
13860 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
13861 "Yw".
13862
13863 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
13864
13865 PR middle-end/104885
13866 * calls.cc (mark_stack_region_used): Check that the region
13867 is within the allocated size of stack_usage_map.
13868
13869 2022-03-26 Jakub Jelinek <jakub@redhat.com>
13870
13871 PR rtl-optimization/103775
13872 * recog.cc (check_invalid_inc_dec): New function.
13873 (insn_invalid_p): Return 1 if REG_INC operand overlaps
13874 any stored REGs.
13875
13876 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
13877
13878 PR target/105058
13879 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
13880 (aes<aesklvariant>u8): Likewise.
13881
13882 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
13883
13884 PR target/105052
13885 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
13886 Replace "Yv" with "x".
13887 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
13888 (ssse3_psign<mode>3): Likewise.
13889
13890 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
13891
13892 * reload.cc (find_reloads): Align comment with code where
13893 considering the intersection of register classes then tweaking the
13894 regclass for the current alternative or rejecting it.
13895
13896 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
13897
13898 PR target/104882
13899 Revert
13900 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
13901
13902 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
13903 (mve_vec_unpack<US>_hi_<mode>): Delete.
13904 (@mve_vec_pack_trunc_lo_<mode>): Delete.
13905 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
13906 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
13907 from vec-common.md.
13908 (vec_unpack<US>_lo_<mode>): Likewise.
13909 (vec_pack_trunc_<mode>): Rename from
13910 neon_quad_vec_pack_trunc_<mode>.
13911 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
13912 (vec_unpack<US>_lo_<mode>): Delete.
13913 (vec_pack_trunc_<mode>): Delete.
13914
13915 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
13916
13917 PR middle-end/104971
13918 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
13919 regs to clear remove_p flag.
13920
13921 2022-03-25 Richard Biener <rguenther@suse.de>
13922
13923 PR tree-optimization/105053
13924 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
13925 the correct live-out stmt for a reduction chain.
13926
13927 2022-03-25 Richard Biener <rguenther@suse.de>
13928
13929 PR middle-end/105049
13930 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
13931 CONSTRUCTOR first elements.
13932
13933 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
13934
13935 PR analyzer/103533
13936 * doc/invoke.texi (Static Analyzer Options): Move
13937 @ignore block after @gccoptlist's '}' for 'make pdf'.
13938
13939 2022-03-25 David Malcolm <dmalcolm@redhat.com>
13940
13941 PR analyzer/104954
13942 * doc/invoke.texi (Static Analyzer Options): Add
13943 -fdump-analyzer-untracked.
13944
13945 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
13946
13947 PR analyzer/103533
13948 * doc/invoke.texi: Document that enabling taint analyzer
13949 checker disables some warnings from `-fanalyzer`.
13950
13951 2022-03-24 Alexandre Oliva <oliva@adacore.com>
13952
13953 PR debug/104564
13954 * gimple-harden-conditionals.cc (detach_value): Keep temps
13955 anonymous.
13956
13957 2022-03-24 Alexandre Oliva <oliva@adacore.com>
13958
13959 PR middle-end/104975
13960 * gimple-harden-conditionals.cc
13961 (pass_harden_compares::execute): Force split in case of
13962 multiple edges.
13963
13964 2022-03-24 Jakub Jelinek <jakub@redhat.com>
13965
13966 PR c++/105035
13967 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
13968 field0 or field1 is not a FIELD_DECL, return false.
13969
13970 2022-03-24 Richard Biener <rguenther@suse.de>
13971
13972 * tree-predcom.cc (chain::chain): Add CTOR.
13973 (component::component): Likewise.
13974 (pcom_worker::release_chain): Use delete.
13975 (release_components): Likewise.
13976 (pcom_worker::filter_suitable_components): Likewise.
13977 (pcom_worker::split_data_refs_to_components): Use new.
13978 (make_invariant_chain): Likewise.
13979 (make_rooted_chain): Likewise.
13980 (pcom_worker::combine_chains): Likewise.
13981 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
13982 Make sure to release previously constructed scalar_results.
13983 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
13984 for vec_offsets.
13985 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
13986 Release m_flag_set_edges.
13987
13988 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
13989
13990 PR tree-optimization/104970
13991 * tree-object-size.cc (parm_object_size): Restrict size
13992 computation scenarios to explicit access attributes.
13993
13994 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
13995
13996 PR target/104967
13997 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
13998 function types.
13999
14000 2022-03-23 Richard Biener <rguenther@suse.de>
14001
14002 PR target/102125
14003 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
14004 use of movmisalign when either the source or destination
14005 decl is properly aligned.
14006
14007 2022-03-23 Richard Biener <rguenther@suse.de>
14008
14009 PR rtl-optimization/105028
14010 * ira-color.cc (form_threads_from_copies): Remove unnecessary
14011 copying of the sorted_copies tail.
14012
14013 2022-03-23 Martin Liska <mliska@suse.cz>
14014
14015 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
14016 Use %qs in format.
14017 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
14018 Reword the error message.
14019
14020 2022-03-23 liuhongt <hongtao.liu@intel.com>
14021
14022 PR target/104976
14023 * config/i386/sse.md (ssePSmodelower): New.
14024 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
14025 lowpart_subreg to avoid NULL_RTX.
14026 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
14027 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
14028 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
14029 <avx512>_<complexopname>_<mode>_mask<round_name>,
14030 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
14031 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
14032 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
14033 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
14034 float<floatunssuffix><mode>v4hf2,
14035 float<floatunssuffix>v2div2hf2,
14036 fix<fixunssuffix>_truncv4hf<mode>2,
14037 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
14038 extendv2hfv2df2,
14039 trunc<mode>v4hf2,truncv2dfv2hf2,
14040 *avx512bw_permvar_truncv16siv16hi_1,
14041 *avx512bw_permvar_truncv16siv16hi_1_hf,
14042 *avx512f_permvar_truncv8siv8hi_1,
14043 *avx512f_permvar_truncv8siv8hi_1_hf,
14044 *avx512f_vpermvar_truncv8div8si_1,
14045 *avx512f_permvar_truncv32hiv32qi_1,
14046 *avx512f_permvar_truncv16hiv16qi_1,
14047 *avx512f_permvar_truncv4div4si_1,
14048 *avx512f_pshufb_truncv8hiv8qi_1,
14049 *avx512f_pshufb_truncv4siv4hi_1,
14050 *avx512f_pshufd_truncv2div2si_1,
14051 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
14052 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
14053
14054 2022-03-22 Tom de Vries <tdevries@suse.de>
14055
14056 PR target/104925
14057 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
14058 Use % as register prefix.
14059
14060 2022-03-22 Tom de Vries <tdevries@suse.de>
14061
14062 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
14063 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
14064 mexperimental.
14065
14066 2022-03-22 Tom de Vries <tdevries@suse.de>
14067
14068 * config/nvptx/nvptx.opt (mexperimental): New option.
14069
14070 2022-03-22 Tom de Vries <tdevries@suse.de>
14071
14072 PR target/104957
14073 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
14074 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
14075 for alias.
14076 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
14077 (nvptx_asm_output_def_from_decls): New function.
14078 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
14079 gcc_unreachable ().
14080 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
14081 nvptx_asm_output_def_from_decls.
14082 * config/nvptx/nvptx.opt (malias): New opt.
14083
14084 2022-03-22 Tom de Vries <tdevries@suse.de>
14085
14086 PR target/104916
14087 PR target/104783
14088 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
14089 sync (or uniform warp check for mptx < 6.0).
14090
14091 2022-03-22 Richard Biener <rguenther@suse.de>
14092
14093 PR tree-optimization/105012
14094 * tree-if-conv.cc (ifcvt_local_dce): Only call
14095 dse_classify_store when we have a VDEF.
14096
14097 2022-03-22 Martin Liska <mliska@suse.cz>
14098
14099 PR target/104902
14100 * config/nvptx/nvptx.cc (handle_ptx_version_option):
14101 Fix option wrapping in an error message.
14102
14103 2022-03-22 Martin Liska <mliska@suse.cz>
14104
14105 PR target/104903
14106 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
14107 Wrap const keyword.
14108
14109 2022-03-22 Martin Liska <mliska@suse.cz>
14110
14111 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
14112 name.
14113
14114 2022-03-22 Martin Liska <mliska@suse.cz>
14115
14116 PR target/104898
14117 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
14118 Use %qs instead of (%qs).
14119
14120 2022-03-22 Martin Liska <mliska@suse.cz>
14121
14122 PR target/104898
14123 * config/i386/i386-options.cc (ix86_option_override_internal):
14124 Use '%qs' instead of '(%qs)'.
14125
14126 2022-03-22 Martin Liska <mliska@suse.cz>
14127
14128 PR target/104898
14129 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
14130 Use 'qs' and remove usage '(%qs)'.
14131 (aarch64_handle_attr_cpu): Likewise.
14132 (aarch64_handle_attr_tune): Likewise.
14133 (aarch64_handle_attr_isa_flags): Likewise.
14134
14135 2022-03-22 Tamar Christina <tamar.christina@arm.com>
14136 Andre Vieira <andre.simoesdiasvieira@arm.com>
14137
14138 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
14139 struct.
14140 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
14141 cost.
14142 (neoverse512tvb_tunings): Likewise.
14143
14144 2022-03-22 Tamar Christina <tamar.christina@arm.com>
14145 Andre Vieira <andre.simoesdiasvieira@arm.com>
14146
14147 * config/aarch64/aarch64.cc (demeter_addrcost_table,
14148 demeter_regmove_cost, demeter_advsimd_vector_cost,
14149 demeter_sve_vector_cost, demeter_scalar_issue_info,
14150 demeter_advsimd_issue_info, demeter_sve_issue_info,
14151 demeter_vec_issue_info, demeter_vector_cost,
14152 demeter_tunings): New tuning structs.
14153 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
14154 tuning.
14155 * config/aarch64/aarch64-cores.def: Add entry for demeter.
14156 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
14157
14158 2022-03-22 Tamar Christina <tamar.christina@arm.com>
14159 Andre Vieira <andre.simoesdiasvieira@arm.com>
14160
14161 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
14162 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
14163 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
14164 tunings to use cpu_memmov_cost struct.
14165
14166 2022-03-22 Tamar Christina <tamar.christina@arm.com>
14167 Andre Vieira <andre.simoesdiasvieira@arm.com>
14168
14169 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
14170 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
14171 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
14172 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
14173 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
14174 (neoversen2_tunings): Use new structs and update tuning flags.
14175 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
14176 tuning.
14177
14178 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
14179
14180 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
14181 bit.
14182
14183 2022-03-22 liuhongt <hongtao.liu@intel.com>
14184
14185 PR target/104982
14186 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
14187 following splitter to reversed condition.
14188
14189 2022-03-22 Jakub Jelinek <jakub@redhat.com>
14190
14191 PR rtl-optimization/104989
14192 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
14193 sorry for passing too large argument, instead set sibcall_failure
14194 for pass == 0, or a new normal_failure flag otherwise. If
14195 normal_failure is set, don't assert all stack has been deallocated
14196 at the end and throw away the whole insn sequence.
14197
14198 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
14199
14200 * print-tree.cc: Change array length
14201
14202 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
14203
14204 PR target/104978
14205 * config/i386/sse.md
14206 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
14207 Use avx512f_movsf_mask instead of vmovaps or vblend, and
14208 force_reg before lowpart_subreg.
14209 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
14210
14211 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
14212
14213 PR target/105000
14214 * common/config/i386/i386-common.cc
14215 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
14216 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
14217
14218 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
14219
14220 PR target/104998
14221 * common/config/i386/cpuinfo.h (get_available_features): Pass
14222 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
14223 bit_AESKLE is set.
14224
14225 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
14226
14227 PR middle-end/104869
14228 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
14229 (clobber_group::next_clobber): Likewise.
14230 (def_lookup::prev_def): Rename to...
14231 (def_lookup::last_def_of_prev_group): ...this.
14232 (def_lookup::next_def): Rename to...
14233 (def_lookup::first_def_of_next_group): ...this.
14234 (def_lookup::matching_or_prev_def): Rename to...
14235 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
14236 (def_lookup::matching_or_next_def): Rename to...
14237 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
14238 (def_lookup::prev_def): New function, taking the lookup insn as
14239 argument.
14240 (def_lookup::next_def): Likewise.
14241 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
14242 (def_lookup::last_def_of_prev_group): ...this.
14243 (def_lookup::next_def): Rename to...
14244 (def_lookup::first_def_of_next_group): ...this.
14245 (def_lookup::matching_or_prev_def): Rename to...
14246 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
14247 (def_lookup::matching_or_next_def): Rename to...
14248 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
14249 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
14250 above renaming.
14251 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
14252 (clobber_group::next_clobber): Likewise.
14253 (def_lookup::prev_def): Likewise.
14254 (def_lookup::next_def): Likewise.
14255 (function_info::make_use_available): Pass the lookup insn to
14256 def_lookup::prev_def and def_lookup::next_def.
14257
14258 2022-03-21 Martin Liska <mliska@suse.cz>
14259
14260 * doc/invoke.texi: Document min-pagesize parameter.
14261
14262 2022-03-21 Richard Biener <rguenther@suse.de>
14263
14264 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
14265 we are estimating niter of loop.
14266
14267 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
14268
14269 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
14270 Update flag name and mask name.
14271 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
14272 misc macro for vector extensions.
14273 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
14274 (MASK_VECTOR_ELEN_32): ... this.
14275 (MASK_VECTOR_EEW_64): Rename to ...
14276 (MASK_VECTOR_ELEN_64): ... this.
14277 (MASK_VECTOR_EEW_FP_32): Rename to ...
14278 (MASK_VECTOR_ELEN_FP_32): ... this.
14279 (MASK_VECTOR_EEW_FP_64): Rename to ...
14280 (MASK_VECTOR_ELEN_FP_64): ... this.
14281 (TARGET_VECTOR_ELEN_32): New.
14282 (TARGET_VECTOR_ELEN_64): Ditto.
14283 (TARGET_VECTOR_ELEN_FP_32): Ditto.
14284 (TARGET_VECTOR_ELEN_FP_64): Ditto.
14285 (TARGET_MIN_VLEN): Ditto.
14286 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
14287 (riscv_vector_elen_flags): ... this.
14288
14289 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
14290
14291 PR target/104977
14292 * config/i386/sse.md
14293 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
14294 Correct round operand for intel dialect.
14295
14296 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
14297
14298 * diagnostic.cc (diagnostic_cc_tests): Rename to...
14299 (c_diagnostic_cc_tests): ...this.
14300 * opt-problem.cc (opt_problem_cc_tests): Rename to...
14301 (c_opt_problem_cc_tests): ...this.
14302 * selftest-run-tests.cc (selftest::run_tests): No longer run
14303 opt_problem_cc_tests or diagnostic_cc_tests.
14304 * selftest.h (diagnostic_cc_tests): Remove declaration.
14305 (opt_problem_cc_tests): Likewise.
14306
14307 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
14308
14309 PR jit/63854
14310 * hash-traits.h (struct typed_const_free_remove): New.
14311 (struct free_string_hash): New.
14312 * pass_manager.h: Use free_string_hash.
14313 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
14314 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
14315
14316 2022-03-19 Jakub Jelinek <jakub@redhat.com>
14317
14318 PR middle-end/104971
14319 * config/i386/i386-expand.cc
14320 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
14321 don't push/pop anything and just return const0_rtx.
14322
14323 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
14324
14325 PR rtl-optimization/104961
14326 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
14327
14328 2022-03-18 Jason Merrill <jason@redhat.com>
14329
14330 * tree.h (IDENTIFIER_LENGTH): Add comment.
14331
14332 2022-03-18 Jakub Jelinek <jakub@redhat.com>
14333
14334 PR middle-end/99578
14335 PR middle-end/100680
14336 PR tree-optimization/100834
14337 * params.opt (--param=min-pagesize=): New parameter.
14338 * pointer-query.cc
14339 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
14340 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
14341 of zero for pointer constants equal or larger than min-pagesize.
14342
14343 2022-03-18 Tom de Vries <tdevries@suse.de>
14344
14345 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
14346 Set gfor location only when dealing with a OMP_TASKLOOP.
14347
14348 2022-03-18 Tom de Vries <tdevries@suse.de>
14349
14350 * gimplify.cc (gimplify_omp_for): Set taskloop location.
14351
14352 2022-03-18 Tom de Vries <tdevries@suse.de>
14353
14354 PR target/104952
14355 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
14356 is executed unconditionally.
14357
14358 2022-03-18 liuhongt <hongtao.liu@intel.com>
14359
14360 PR target/104974
14361 * config/i386/i386.md (*movhi_internal): Set attr type from HI
14362 to HF for alternative 12 under TARGET_AVX512FP16.
14363
14364 2022-03-18 Cui,Lili <lili.cui@intel.com>
14365
14366 PR target/104963
14367 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
14368 * doc/invoke.texi: Update documents for Intel sapphirerapids.
14369
14370 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
14371
14372 PR target/86722
14373 PR tree-optimization/90356
14374 * config/i386/i386.md (*movtf_internal): Don't guard
14375 standard_sse_constant_p clause by optimize_function_for_size_p.
14376 (*movdf_internal): Likewise.
14377 (*movsf_internal): Likewise.
14378
14379 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
14380
14381 PR tree-optimization/102943
14382 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
14383 dominators and apply intermediary outgoing edge ranges.
14384
14385 2022-03-17 Richard Biener <rguenther@suse.de>
14386
14387 PR tree-optimization/104960
14388 * passes.def: Add pass parameter to pass_sink_code, mark
14389 last one to unsplit edges.
14390 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
14391 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
14392 when we need to unsplit edges.
14393
14394 2022-03-17 Jakub Jelinek <jakub@redhat.com>
14395
14396 PR middle-end/103984
14397 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
14398 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
14399 and asan unpoisioning, then append the temporary sequence and
14400 finally the TARGET_EXPR_CLEANUP clobbers.
14401
14402 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
14403
14404 * config/i386/sse.md: Delete corrupt character/typo.
14405
14406 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
14407
14408 PR target/94680
14409 * config/i386/sse.md (sse2_movq128): New define_expand to
14410 preserve previous named instruction.
14411 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
14412 generalized to VI8F_128 (both V2DI and V2DF).
14413
14414 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
14415
14416 PR tree-optimization/104941
14417 * tree-object-size.cc (size_for_offset): Make useless conversion
14418 check lighter and assign result of fold_convert to OFFSET.
14419
14420 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
14421
14422 PR target/104890
14423 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
14424 pushing target("general-regs-only").
14425
14426 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
14427
14428 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
14429 Add version info for zk, zks and zkn.
14430
14431 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
14432
14433 * common/config/riscv/riscv-common.cc
14434 (riscv_combine_info): New.
14435 (riscv_subset_list::handle_combine_ext): Combine back into zk to
14436 maintain the canonical order in isa strings.
14437 (riscv_subset_list::parse): Ditto.
14438 * config/riscv/riscv-subset.h (handle_combine_ext): New.
14439
14440 2022-03-16 Richard Biener <rguenther@suse.de>
14441
14442 PR tree-optimization/102008
14443 * passes.def: Move the added code sinking pass before the
14444 preceeding phiopt pass.
14445
14446 2022-03-16 Patrick Palka <ppalka@redhat.com>
14447
14448 PR c++/96780
14449 * doc/invoke.texi (C++ Dialect Options): Document
14450 -ffold-simple-inlines.
14451
14452 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
14453
14454 PR tree-optimization/104942
14455 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
14456
14457 2022-03-16 Jakub Jelinek <jakub@redhat.com>
14458
14459 PR target/104910
14460 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
14461 imm rtx.
14462
14463 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
14464 Richard Biener <rguenther@suse.de>
14465
14466 * gimple-match-head.cc (single_use): Implement inline using a
14467 single loop.
14468
14469 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
14470
14471 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
14472 instead of HONOR_NANS.
14473 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
14474 this can't trap/signal.
14475
14476 2022-03-16 liuhongt <hongtao.liu@intel.com>
14477
14478 PR target/104946
14479 * config/i386/i386-builtin.def (BDESC): Add
14480 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
14481 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
14482 __builtin_ia32_blendvpd w/o sse4.2
14483
14484 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
14485
14486 PR target/104923
14487 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
14488 acceptable MEM addresses.
14489
14490 2022-03-15 Jakub Jelinek <jakub@redhat.com>
14491
14492 PR target/91229
14493 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
14494 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
14495 to warning calls.
14496
14497 2022-03-15 Jakub Jelinek <jakub@redhat.com>
14498
14499 PR target/104890
14500 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
14501 instead of general-regs-only.
14502
14503 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
14504 Marc Glisse <marc.glisse@inria.fr>
14505 Richard Biener <rguenther@suse.de>
14506
14507 PR tree-optimization/101895
14508 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
14509 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
14510
14511 2022-03-15 Jakub Jelinek <jakub@redhat.com>
14512
14513 PR rtl-optimization/104814
14514 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
14515 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
14516
14517 2022-03-15 Martin Sebor <msebor@redhat.com>
14518
14519 PR middle-end/104436
14520 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
14521 Check for warning suppression. Avoid by-value arguments transformed
14522 into by-transparent-reference.
14523
14524 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
14525 Uroš Bizjak <ubizjak@gmail.com>
14526
14527 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
14528 transformation when *zero_extend<mode>si2 is not available.
14529
14530 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
14531
14532 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
14533 * config/mips/mips.cc (mips_option_override): Make
14534 -fsanitize=address imply -fasynchronous-unwind-tables. This is
14535 needed by libasan for stack backtrace on MIPS.
14536 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
14537
14538 2022-03-14 Jakub Jelinek <jakub@redhat.com>
14539
14540 PR debug/104778
14541 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
14542 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
14543 call simplified the first operand into VOIDmode constant.
14544
14545 2022-03-14 Jakub Jelinek <jakub@redhat.com>
14546
14547 PR tree-optimization/102586
14548 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
14549 argument type should be pointer to trivially-copyable type unless it
14550 is address of a variable or parameter.
14551
14552 2022-03-14 Jakub Jelinek <jakub@redhat.com>
14553
14554 PR target/99754
14555 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
14556 first rather than last element of the vector, use __m32_u to do
14557 a really unaligned load, use just 0 instead of (int)0.
14558 (_mm_loadu_si16): Put loaded value into first rather than last
14559 element of the vector, use __m16_u to do a really unaligned load,
14560 use just 0 instead of (short)0.
14561
14562 2022-03-14 Jakub Jelinek <jakub@redhat.com>
14563
14564 PR other/104899
14565 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
14566 in diagnostic message - cannott -> cannot. Use %< and %> around
14567 names of attribute. Avoid too long line.
14568 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
14569 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
14570
14571 2022-03-14 liuhongt <hongtao.liu@intel.com>
14572
14573 PR target/104666
14574 * config/i386/i386-expand.cc
14575 (ix86_check_builtin_isa_match): New func.
14576 (ix86_expand_builtin): Move code to
14577 ix86_check_builtin_isa_match and call it.
14578 * config/i386/i386-protos.h
14579 (ix86_check_builtin_isa_match): Declare.
14580 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
14581 builtin into gimple when isa mismatches.
14582
14583 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
14584
14585 * doc/invoke.texi: Fix typos.
14586 * doc/tm.texi.in: Remove duplicated word.
14587 * doc/tm.texi: Regenerate.
14588
14589 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
14590
14591 PR target/104829
14592 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
14593 "ppc" and "ppc64" based on rs6000_cpu.
14594
14595 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
14596
14597 PR middle-end/100280
14598 PR middle-end/104892
14599 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
14600 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
14601
14602 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
14603
14604 PR middle-end/100280
14605 PR middle-end/104086
14606 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
14607 Mark variables used in 'present' clauses as addressable.
14608 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
14609 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
14610
14611 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
14612
14613 PR other/65095
14614 * tree-core.h (user_omp_claus_code_name): Declare function.
14615 * tree.cc (user_omp_clause_code_name): New function.
14616
14617 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
14618
14619 PR middle-end/98420
14620 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
14621 (the defaut) or -fno-signed-zeros.
14622
14623 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
14624
14625 PR target/104868
14626 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
14627 moving from a GPR register to an Altivec register.
14628
14629 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
14630
14631 PR tree-optimization/98335
14632 * config/i386/i386.md (peephole2): Eliminate redundant insv.
14633 Combine movl followed by movb. Transform xorl followed by
14634 a suitable movb or movw into the equivalent movz[bw]l.
14635
14636 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
14637 Richard Biener <rguenther@suse.de>
14638
14639 PR tree-optimization/98335
14640 * builtins.cc (get_object_alignment_2): Export.
14641 * builtins.h (get_object_alignment_2): Likewise.
14642 * tree-ssa-alias.cc (ao_ref_alignment): New.
14643 * tree-ssa-alias.h (ao_ref_alignment): Declare.
14644 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
14645 to align head/tail, writing more bytes but using fewer store insns.
14646
14647 2022-03-11 Richard Biener <rguenther@suse.de>
14648
14649 PR tree-optimization/104880
14650 * tree-ssa.cc (execute_update_address_taken): Remember if we
14651 optimistically made something not addressable and
14652 prepare to undo it.
14653
14654 2022-03-11 Richard Biener <rguenther@suse.de>
14655
14656 PR target/104762
14657 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
14658 cost the first lane of SSE pieces as inserts for vec_construct.
14659
14660 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
14661
14662 PR c++/84964
14663 * calls.cc (expand_call): Ignore stack adjustments after sorry.
14664
14665 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
14666
14667 PR target/103074
14668 * lra-constraints.cc (split_reg): Set up
14669 check_and_force_assignment_correctness_p when splitting hard
14670 register live range.
14671
14672 2022-03-10 Martin Jambor <mjambor@suse.cz>
14673
14674 PR ipa/104813
14675 * ipa-cp.cc (create_specialized_node): Move removal of
14676 self-recursive calls from callers vector before refrence
14677 adjustments.
14678
14679 2022-03-10 Richard Biener <rguenther@suse.de>
14680
14681 PR tree-optimization/102943
14682 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
14683 Make a bitmap_head.
14684 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
14685 to tree view.
14686 (sbr_sparse_bitmap::set_bb_range): Adjust.
14687 (sbr_sparse_bitmap::get_bb_range): Likewise.
14688
14689 2022-03-10 Richard Biener <rguenther@suse.de>
14690
14691 PR tree-optimization/102943
14692 * tree-ssa-dom.cc (back_propagate_equivalences): Only
14693 populate the dominance bitmap if fast queries are not
14694 available. Use a tree view bitmap.
14695 (record_temporary_equivalences): Cache the dominance bitmap
14696 across all equivalences on the edge.
14697
14698 2022-03-10 Tom de Vries <tdevries@suse.de>
14699
14700 PR target/104840
14701 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
14702 of false,true.
14703
14704 2022-03-10 Tom de Vries <tdevries@suse.de>
14705
14706 PR target/104783
14707 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
14708 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
14709 (nvptx_get_unisimt_outside_simt_predicate): New function.
14710 (predicate_insn): New function, factored out of ...
14711 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
14712 * config/nvptx/nvptx.h (struct machine_function): Add
14713 unisimt_outside_simt_predicate field.
14714 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
14715 (define_insn "nvptx_uniform_warp_check"): Make predicable.
14716
14717 2022-03-10 Tom de Vries <tdevries@suse.de>
14718
14719 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
14720 result.
14721
14722 2022-03-10 Tom de Vries <tdevries@suse.de>
14723
14724 PR target/104815
14725 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
14726 modifier.
14727 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
14728
14729 2022-03-10 Tom de Vries <tdevries@suse.de>
14730
14731 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
14732 Emit atom.and.b64 instead of atom.b64.and.
14733
14734 2022-03-10 Tom de Vries <tdevries@suse.de>
14735
14736 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
14737 (MULTILIB_OPTIONS): ... here.
14738
14739 2022-03-10 Tom de Vries <tdevries@suse.de>
14740
14741 PR target/104758
14742 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
14743 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
14744
14745 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
14746
14747 PR middle-end/90115
14748 PR middle-end/102330
14749 PR middle-end/104774
14750 * omp-low.cc (oacc_privatization_candidate_p)
14751 (oacc_privatization_scan_clause_chain)
14752 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
14753 Analyze 'lookup_decl'-translated DECL.
14754
14755 2022-03-10 Jakub Jelinek <jakub@redhat.com>
14756
14757 PR target/99708
14758 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
14759 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
14760 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
14761 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
14762 "**NULL**" if type_node is NULL first. Handle
14763 ieee128_float_type_node.
14764 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
14765 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
14766 ieee128_float_type_node to NULL rather than long_double_type_node if
14767 they aren't supported. Do support __ibm128 even if
14768 !TARGET_FLOAT128_TYPE when long double is double double.
14769 (rs6000_expand_builtin): Error if bif_is_ibm128 and
14770 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
14771 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
14772 for it.
14773 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
14774 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
14775 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
14776 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
14777 Formatting fix.
14778 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
14779 (struct attrinfo): Add isibm128 member.
14780 (TYPE_MAP_SIZE): Remove.
14781 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
14782 ibm128_float_type_node only if it is non-NULL, otherwise fall back
14783 to long_double_type_node. Remove "pif" entry.
14784 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
14785 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
14786 (write_type_node): Use sizeof type_map / sizeof type_map[0]
14787 instead of TYPE_MAP_SIZE.
14788 (write_bif_static_init): Handle isibm128.
14789 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
14790 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
14791 attribute.
14792
14793 2022-03-09 Richard Biener <rguenther@suse.de>
14794
14795 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
14796 with non-decl operand, avoiding a copy.
14797
14798 2022-03-09 Jakub Jelinek <jakub@redhat.com>
14799
14800 PR target/104781
14801 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
14802
14803 2022-03-09 Richard Biener <rguenther@suse.de>
14804
14805 PR middle-end/104786
14806 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
14807 for VLAs without an upper size bound.
14808
14809 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
14810
14811 PR tree-optimization/104851
14812 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
14813 error.
14814
14815 2022-03-09 Jakub Jelinek <jakub@redhat.com>
14816
14817 PR c/104711
14818 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
14819 is enabled by it only for C++11 to C++17 rather than for C++03 or
14820 later.
14821 (-Wshift-negative-value): Similarly (except here we stated
14822 that it is enabled for C++11 or later).
14823
14824 2022-03-09 Jakub Jelinek <jakub@redhat.com>
14825
14826 PR rtl-optimization/104839
14827 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
14828 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
14829 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
14830 instead of incorrect 0 in SUBREG_PROMOTED_SET.
14831
14832 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
14833
14834 PR target/104842
14835 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
14836 value before adding an offset.
14837
14838 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
14839
14840 * config/arm/arm-builtins.cc
14841 (arm_binop_none_none_unone_qualifiers): Delete.
14842 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
14843
14844 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
14845
14846 PR translation/104552
14847 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
14848 the PCH out of memory error message punctuation and wording.
14849
14850 2022-03-08 Marek Polacek <polacek@redhat.com>
14851
14852 PR rtl-optimization/104777
14853 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
14854 ASM_OPERANDS_LABEL_VEC has at least one element.
14855
14856 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
14857
14858 PR target/104781
14859 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
14860 stack realignment or regparm nested function with EH return.
14861
14862 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
14863
14864 PR target/104790
14865 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
14866 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
14867 register for non widening loads or narrowing stores.
14868
14869 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
14870
14871 PR translation/104552
14872 * params.opt: Fix typo.
14873
14874 2022-03-08 Richard Biener <rguenther@suse.de>
14875
14876 PR tree-optimization/84201
14877 * params.opt (-param=vect-induction-float): Add.
14878 * doc/invoke.texi (vect-induction-float): Document.
14879 * tree-vect-loop.cc (vectorizable_induction): Honor
14880 param_vect_induction_float.
14881
14882 2022-03-08 Martin Jambor <mjambor@suse.cz>
14883
14884 PR translation/104552
14885 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
14886 "that" in the description.
14887
14888 2022-03-08 Richard Biener <rguenther@suse.de>
14889
14890 PR tree-optimization/104825
14891 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
14892 guard modref get_ao_ref on a pointer typed argument.
14893
14894 2022-03-08 liuhongt <hongtao.liu@intel.com>
14895
14896 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
14897 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
14898
14899 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
14900
14901 * doc/invoke.texi (C++ Modules): Remove anachronism.
14902
14903 2022-03-07 Martin Liska <mliska@suse.cz>
14904
14905 PR middle-end/104381
14906 * opts.cc (finish_options): If debug info is disabled
14907 (debug_info_level) and -fvar-tracking is unset, disable it.
14908
14909 2022-03-07 Jakub Jelinek <jakub@redhat.com>
14910
14911 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
14912 * config/riscv/riscv.cc: Likewise.
14913 * config/darwin.h: Likewise.
14914 * config/i386/i386.cc: Likewise.
14915 * config/aarch64/thunderx3t110.md: Likewise.
14916 * config/aarch64/fractional-cost.h: Likewise.
14917 * config/vax/vax.cc: Likewise.
14918 * config/rs6000/pcrel-opt.md: Likewise.
14919 * config/rs6000/predicates.md: Likewise.
14920 * ctfc.h: Likewise.
14921 * tree-ssa-uninit.cc: Likewise.
14922 * value-relation.h: Likewise.
14923 * gimple-range-gori.cc: Likewise.
14924 * ipa-polymorphic-call.cc: Likewise.
14925 * pointer-query.cc: Likewise.
14926 * ipa-sra.cc: Likewise.
14927 * internal-fn.cc: Likewise.
14928 * varasm.cc: Likewise.
14929 * gimple-ssa-warn-access.cc: Likewise.
14930
14931 2022-03-07 Martin Liska <mliska@suse.cz>
14932
14933 PR target/104794
14934 * config/arm/arm.cc (arm_option_override_internal): Add missing
14935 space.
14936
14937 2022-03-07 Richard Biener <rguenther@suse.de>
14938
14939 PR tree-optimization/104782
14940 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
14941 Re-instantiate r10-5979 fix, add comment.
14942
14943 2022-03-07 Martin Liska <mliska@suse.cz>
14944
14945 PR target/104797
14946 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
14947 parenthesis from built-in name.
14948
14949 2022-03-07 Martin Liska <mliska@suse.cz>
14950
14951 PR target/104794
14952 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
14953 of options in error messages.
14954 (arm_option_reconfigure_globals): Likewise.
14955
14956 2022-03-07 Martin Liska <mliska@suse.cz>
14957
14958 PR target/104794
14959 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
14960 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
14961 have only range [0,32].
14962
14963 2022-03-07 Jakub Jelinek <jakub@redhat.com>
14964
14965 PR target/104775
14966 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
14967 S constraint instead of T in the last alternative.
14968
14969 2022-03-07 Martin Liska <mliska@suse.cz>
14970
14971 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
14972 message.
14973
14974 2022-03-07 Martin Liska <mliska@suse.cz>
14975
14976 PR translation/90148
14977 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
14978 quote to a proper place.
14979 * plugin.cc (default_plugin_dir_name): Likewise.
14980
14981 2022-03-07 Martin Liska <mliska@suse.cz>
14982
14983 PR target/99297
14984 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
14985 string.
14986
14987 2022-03-07 Jakub Jelinek <jakub@redhat.com>
14988
14989 PR target/104779
14990 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
14991 define_expand pattern. Rename define_insn to ...
14992 (*avx512dq_mul<mode>3<mask_name>): ... this.
14993 (<code><mode>3_mask): New any_logic define_expand pattern.
14994 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
14995 (*<code><mode>3<mask_name>): ... this.
14996
14997 2022-03-05 Jakub Jelinek <jakub@redhat.com>
14998
14999 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
15000 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
15001
15002 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
15003 Uroš Bizjak <ubizjak@gmail.com>
15004
15005 PR testsuite/104732
15006 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
15007 Include DI mode unconditionally.
15008 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
15009 i.e. always split on !TARGET_64BIT.
15010 (*<any_or>di3_doubleword): Likewise.
15011 (*one_cmpldi2_doubleword): Likewise.
15012 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
15013 (<any_or><mode>3 expander): Likewise.
15014 (one_cmpl<mode>2 expander): Likewise.
15015
15016 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
15017
15018 PR target/104698
15019 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
15020 (mtvsrdd_diti_w1): Delete.
15021 (extendditi2): Convert from define_expand to
15022 define_insn_and_split. Replace with code to deal with both GPR
15023 registers and with altivec registers.
15024
15025 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
15026
15027 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
15028 bit. Handle most older CPUs.
15029
15030 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
15031
15032 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
15033 avoid a mismatch with DECL_MD_FUNCTION_CODE().
15034
15035 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
15036
15037 PR target/104117
15038 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
15039 (@machopic_low_<mode>): New.
15040 * config/rs6000/predicates.md (macho_pic_address): New.
15041 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
15042 apply the TLS processing to Darwin.
15043 * lra-constraints.cc (process_address_1): Revert the changes
15044 in r12-7209.
15045
15046 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
15047
15048 PR target/87496
15049 PR target/104208
15050 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
15051 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
15052 -mlong-double-128.
15053 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
15054 from here...
15055 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
15056 ... to here.
15057
15058 2022-03-04 Jakub Jelinek <jakub@redhat.com>
15059
15060 PR middle-end/104529
15061 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
15062 on automatic objects which will be runtime initialized.
15063
15064 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
15065
15066 PR middle-end/100280
15067 PR middle-end/104132
15068 PR middle-end/104133
15069 * omp-low.cc (task_shared_vars): Rename to
15070 'make_addressable_vars'. Adjust all users.
15071 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
15072 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
15073
15074 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
15075
15076 PR middle-end/100280
15077 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
15078 * tree-core.h: Document it.
15079 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
15080 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
15081 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
15082 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
15083 'TREE_ADDRESSABLE'.
15084
15085 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
15086
15087 PR middle-end/100280
15088 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
15089 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
15090 '[...]' declared in block made addressable".
15091
15092 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
15093
15094 PR middle-end/100400
15095 PR middle-end/103836
15096 PR middle-end/104061
15097 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
15098 Catch 'GIMPLE_DEBUG'.
15099
15100 2022-03-04 Jakub Jelinek <jakub@redhat.com>
15101
15102 PR c/104627
15103 * tree.cc (warn_deprecated_use): For types prefer to use node
15104 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
15105 NULL.
15106
15107 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
15108
15109 PR target/104704
15110 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
15111 a pseudo register.
15112
15113 2022-03-03 Martin Sebor <msebor@redhat.com>
15114
15115 PR middle-end/104761
15116 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
15117 mark_dfs_back_edges.
15118
15119 2022-03-03 Martin Liska <mliska@suse.cz>
15120
15121 * configure.ac: Use linker plug-in by default.
15122 * configure: Regenerate.
15123
15124 2022-03-03 Martin Liska <mliska@suse.cz>
15125
15126 * configure.ac: Now ld.mold support LTO plugin API, use it.
15127 * configure: Regenerate.
15128
15129 2022-03-03 Tom de Vries <tdevries@suse.de>
15130
15131 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
15132
15133 2022-03-03 Tom de Vries <tdevries@suse.de>
15134
15135 PR target/104758
15136 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
15137
15138 2022-03-03 Tom de Vries <tdevries@suse.de>
15139
15140 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
15141
15142 2022-03-03 Jakub Jelinek <jakub@redhat.com>
15143
15144 PR middle-end/104757
15145 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
15146 gimplify_omp_for.
15147 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
15148 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
15149
15150 2022-03-03 Jakub Jelinek <jakub@redhat.com>
15151
15152 PR middle-end/104558
15153 * calls.cc (store_one_arg): When not calling emit_push_insn
15154 because size_rtx is const0_rtx, call at least anti_adjust_stack
15155 on arg->locate.alignment_pad if !argblock and the alignment might
15156 be non-zero.
15157
15158 2022-03-02 Alexandre Oliva <oliva@adacore.com>
15159
15160 * lra-constraints.cc (undo_optional_reloads): Recognize and
15161 drop insns of multi-word move sequences, tolerate removal
15162 iteration on an already-removed clobber, and refuse to
15163 substitute original pseudos into clobbers.
15164
15165 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
15166
15167 PR middle-end/102276
15168 * common.opt (-Wtrivial-auto-var-init): New option.
15169 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
15170 (-ftrivial-auto-var-init): Update option;
15171 * gimplify.cc (emit_warn_switch_unreachable): New function.
15172 (warn_switch_unreachable_r): Rename to ...
15173 (warn_switch_unreachable_and_auto_init_r): This.
15174 (maybe_warn_switch_unreachable): Rename to ...
15175 (maybe_warn_switch_unreachable_and_auto_init): This.
15176 (gimplify_switch_expr): Update calls to renamed function.
15177
15178 2022-03-02 Richard Biener <rguenther@suse.de>
15179
15180 PR rtl-optimization/104686
15181 * ira-color.cc (object_conflicts_with_allocno_p): New function
15182 using a bitvector test instead of iterating when possible.
15183 (allocnos_conflict_p): Choose the best allocno to iterate over
15184 object conflicts.
15185 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
15186 last.
15187
15188 2022-03-02 Jakub Jelinek <jakub@redhat.com>
15189
15190 * cfg.cc (dump_edge_info): Dump goto_locus if present.
15191
15192 2022-03-02 Jakub Jelinek <jakub@redhat.com>
15193
15194 PR rtl-optimization/104589
15195 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
15196 INSN_LOCATION comparison with goto_locus.
15197
15198 2022-03-02 Jakub Jelinek <jakub@redhat.com>
15199
15200 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
15201 strlen_pass::before_dom_children): Comment spelling fixes.
15202
15203 2022-03-02 Jakub Jelinek <jakub@redhat.com>
15204
15205 * ipa-modref-tree.cc (modref_access_node::contains,
15206 modref_access_node::closer_pair_p, modref_access_node::insert,
15207 modref_access_node::insert_kill): Comment spelling fixes.
15208 * ipa-modref.cc: Likewise.
15209 (modref_summary::finalize, ignore_nondeterminism_p,
15210 class modref_access_analysis,
15211 modref_access_analysis::set_side_effects,
15212 modref_access_analysis::set_nondeterministic,
15213 modref_access_analysis::record_global_memory_load,
15214 modref_access_analysis::propagate, modref_access_analysis::analyze,
15215 struct escape_point, class modref_lattice, modref_lattice::merge,
15216 modref_lattice::merge_deref, class modref_eaf_analysis,
15217 modref_eaf_analysis::merge_call_lhs_flags,
15218 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
15219 modref_eaf_analysis::record_escape_points, remap_kills,
15220 update_escape_summary, remove_useless_summaries,
15221 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
15222 Likewise.
15223 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
15224 Likewise.
15225 * ipa-modref-tree.h (enum modref_special_parms,
15226 struct modref_access_node): Likewise.
15227
15228 2022-03-01 Jakub Jelinek <jakub@redhat.com>
15229
15230 PR tree-optimization/104715
15231 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
15232 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
15233 of a call if gimple_call_return_arg is equal to ptr, not just when it
15234 is non-NULL.
15235
15236 2022-03-01 Jakub Jelinek <jakub@redhat.com>
15237
15238 * gimple-ssa-warn-access.cc (warn_string_no_nul,
15239 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
15240 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
15241 pass_waccess::check_alloca, pass_waccess::check_strcat,
15242 memmodel_to_uhwi, fntype_argno_type,
15243 pass_waccess::maybe_check_access_sizes,
15244 pass_waccess::check_call_access,
15245 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
15246 Comment spelling fixes.
15247
15248 2022-03-01 Richard Biener <rguenther@suse.de>
15249
15250 PR tree-optimization/104716
15251 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
15252 Check if we can copy the loop.
15253
15254 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
15255
15256 PR middle-end/104721
15257 * cfgexpand.cc (expand_gimple_basic_block): Clear
15258 currently_expanding_gimple_stmt when returning inside the loop.
15259
15260 2022-03-01 Martin Liska <mliska@suse.cz>
15261
15262 PR ipa/104533
15263 * multiple_target.cc (get_attr_len): Move to tree.c.
15264 (expand_target_clones): Remove single value checking.
15265 * tree.cc (get_target_clone_attr_len): New fn.
15266 * tree.h (get_target_clone_attr_len): Likewise.
15267
15268 2022-03-01 Martin Liska <mliska@suse.cz>
15269
15270 PR gcov-profile/104677
15271 * doc/invoke.texi: Document more .gcda file name generation.
15272
15273 2022-03-01 Tom de Vries <tdevries@suse.de>
15274
15275 PR target/102429
15276 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
15277 * config/nvptx/nvptx.md
15278 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
15279 New predicate.
15280 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
15281 Use nvptx_register_or_complex_di_df_register_operand.
15282
15283 2022-03-01 Tom de Vries <tdevries@suse.de>
15284
15285 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
15286 * config/nvptx/gen-copyright.sh: New file.
15287 * config/nvptx/gen-h.sh: New file.
15288 * config/nvptx/gen-opt.sh: New file.
15289 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
15290 (TARGET_SM75, TARGET_SM80): Move ...
15291 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
15292 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
15293 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
15294 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
15295 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
15296
15297 2022-03-01 Tom de Vries <tdevries@suse.de>
15298
15299 * config/nvptx/gen-omp-device-properties.sh: New file.
15300 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
15301
15302 2022-03-01 Tom de Vries <tdevries@suse.de>
15303
15304 * config/nvptx/nvptx-sm.def: New file.
15305 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
15306 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
15307 * config/nvptx/nvptx.cc (sm_version_to_string)
15308 (nvptx_omp_device_kind_arch_isa): Same.
15309
15310 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
15311
15312 PR rtl-optimization/104154
15313 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
15314 comparison ifcvt passed us.
15315
15316 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
15317
15318 PR target/104664
15319 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
15320 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
15321
15322 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
15323
15324 PR tree-optimization/91384
15325 * config/i386/i386.md (peephole2): Eliminate final testl insn
15326 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
15327 transforming using *negsi_2 for the negation.
15328
15329 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
15330 Eric Botcazou <ebotcazou@adacore.com>
15331
15332 PR middle-end/80270
15333 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
15334 register, copy it to a pseudo before calling simplify_gen_subreg.
15335
15336 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
15337
15338 PR rtl-optimization/104637
15339 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
15340 as possible on one subpass.
15341
15342 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
15343
15344 PR middle-end/104550
15345 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
15346 created uses.
15347
15348 2022-02-28 Martin Liska <mliska@suse.cz>
15349
15350 PR ipa/104648
15351 * main.cc (main): Use flag_checking instead of CHECKING_P
15352 and run toplev::finalize only if there is not error seen.
15353
15354 2022-02-28 Richard Biener <rguenther@suse.de>
15355
15356 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
15357
15358 2022-02-28 Richard Biener <rguenther@suse.de>
15359
15360 PR tree-optimization/104700
15361 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
15362 into ...
15363 (find_or_generate_expression): ... here, simplifying code.
15364
15365 2022-02-28 Tom de Vries <tdevries@suse.de>
15366
15367 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
15368 PTX_VERSION_default.
15369 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
15370 PTX_VERSION_default.
15371 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
15372
15373 2022-02-28 Richard Biener <rguenther@suse.de>
15374
15375 PR rtl-optimization/104686
15376 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
15377 skipping bits that are zero.
15378 (ira_object_conflict_iter_cond): Likewise.
15379
15380 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
15381
15382 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
15383 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
15384 char to avoid error when using ~enum as parameter.
15385 (_mm512_mask_ternarylogic_epi64): Likewise.
15386 (_mm512_maskz_ternarylogic_epi64): Likewise.
15387 (_mm512_ternarylogic_epi32): Likewise.
15388 (_mm512_mask_ternarylogic_epi32): Likewise.
15389 (_mm512_maskz_ternarylogic_epi32): Likewise.
15390 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
15391 Adjust imm param type to unsigned char.
15392 (_mm256_mask_ternarylogic_epi64): Likewise.
15393 (_mm256_maskz_ternarylogic_epi64): Likewise.
15394 (_mm256_ternarylogic_epi32): Likewise.
15395 (_mm256_mask_ternarylogic_epi32): Likewise.
15396 (_mm256_maskz_ternarylogic_epi32): Likewise.
15397 (_mm_ternarylogic_epi64): Likewise.
15398 (_mm_mask_ternarylogic_epi64): Likewise.
15399 (_mm_maskz_ternarylogic_epi64): Likewise.
15400 (_mm_ternarylogic_epi32): Likewise.
15401 (_mm_mask_ternarylogic_epi32): Likewise.
15402 (_mm_maskz_ternarylogic_epi32): Likewise.
15403
15404 2022-02-25 Jakub Jelinek <jakub@redhat.com>
15405 Marc Glisse <marc.glisse@inria.fr>
15406
15407 PR tree-optimization/104675
15408 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
15409 Restrict simplifications to INTEGRAL_TYPE_P.
15410
15411 2022-02-25 Jakub Jelinek <jakub@redhat.com>
15412
15413 PR target/104681
15414 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
15415
15416 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
15417
15418 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
15419 comparison is not valid.
15420 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
15421 (movdicc): Likewise.
15422 (movsfcc): Likewise.
15423 (movdfcc): Likewise.
15424
15425 2022-02-25 Richard Biener <rguenther@suse.de>
15426
15427 PR tree-optimization/103037
15428 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
15429 (vn_nary_length_from_stmt): Likewise.
15430 (init_vn_nary_op_from_stmt): Likewise.
15431 (vn_nary_op_compute_hash): Likewise.
15432 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
15433 (vn_nary_length_from_stmt): Likewise.
15434 (init_vn_nary_op_from_stmt): Likewise.
15435 (vn_nary_op_compute_hash): Likewise.
15436 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
15437 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
15438 (re-)compute the hash value and if the expression is not
15439 found allocate it from pre_expr_obstack.
15440 (phi_translate_1): Do not insert the NARY found in the
15441 VN tables but build a PRE expression from the valueized
15442 NARY with the value-id we eventually found.
15443 (find_or_generate_expression): Assert we have an entry
15444 for constant values.
15445 (compute_avail): Insert not valueized expressions into
15446 EXP_GEN using the value-id from the VN tables.
15447 (init_pre): Allocate pre_expr_obstack.
15448 (fini_pre): Free pre_expr_obstack.
15449
15450 2022-02-25 Jakub Jelinek <jakub@redhat.com>
15451
15452 PR target/104674
15453 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
15454 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
15455 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
15456
15457 2022-02-25 Jakub Jelinek <jakub@redhat.com>
15458
15459 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
15460
15461 2022-02-25 Jakub Jelinek <jakub@redhat.com>
15462
15463 PR middle-end/104679
15464 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
15465
15466 2022-02-25 Jakub Jelinek <jakub@redhat.com>
15467
15468 PR tree-optimization/104675
15469 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
15470 COMPLEX_TYPE.
15471
15472 2022-02-25 Alexandre Oliva <oliva@adacore.com>
15473
15474 PR target/104121
15475 PR target/103302
15476 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
15477
15478 2022-02-25 Alexandre Oliva <oliva@adacore.com>
15479
15480 PR middle-end/104540
15481 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
15482 dw_cfi_cfa_loc.
15483
15484 2022-02-25 Alexandre Oliva <oliva@adacore.com>
15485
15486 PR tree-optimization/103856
15487 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
15488 eh edge to be requested through an extra parameter.
15489 (pass_harden_compares::execute): Copy PHI args in the EH dest
15490 block for the new EH edge added for the inverted compare.
15491
15492 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
15493
15494 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
15495 of position independence that -mcmodel=medany affords.
15496
15497 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
15498
15499 PR target/104656
15500 * configure.ac: --disable-gcov if targetting bpf-*.
15501 * configure: Regenerate.
15502
15503 2022-02-24 Richard Biener <rguenther@suse.de>
15504
15505 PR tree-optimization/104676
15506 * tree-loop-distribution.cc (loop_distribution::execute):
15507 Do a full scev_reset.
15508
15509 2022-02-24 Jakub Jelinek <jakub@redhat.com>
15510
15511 PR tree-optimization/104601
15512 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
15513 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
15514 vuse value number.
15515
15516 2022-02-24 Tom de Vries <tdevries@suse.de>
15517 Tobias Burnus <tobias@codesourcery.com>
15518
15519 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
15520 sm_70, sm_75 and sm_80.
15521 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
15522
15523 2022-02-24 Tom de Vries <tdevries@suse.de>
15524
15525 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
15526 "rotrsi3"): New define_insn.
15527
15528 2022-02-24 Tom de Vries <tdevries@suse.de>
15529
15530 * config/nvptx/nvptx.cc (gen_comment): Use
15531 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
15532
15533 2022-02-24 liuhongt <hongtao.liu@intel.com>
15534
15535 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
15536 isa attr of alternative 2 from avx to avx512vl.
15537
15538 2022-02-23 Richard Biener <rguenther@suse.de>
15539 Jakub Jelinek <jakub@redhat.com>
15540
15541 PR tree-optimization/104644
15542 * doc/match-and-simplify.texi: Amend ! documentation.
15543 * genmatch.cc (expr::gen_transform): Code-generate ! support
15544 for GENERIC.
15545 (parser::parse_expr): Allow ! for GENERIC.
15546 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
15547 bswap.
15548
15549 2022-02-23 Richard Biener <rguenther@suse.de>
15550
15551 PR tree-optimization/101636
15552 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
15553 vector type of the node.
15554 (vect_slp_analyze_operations): Make sure the CTOR
15555 is vectorized with an expected type.
15556 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
15557
15558 2022-02-23 Jakub Jelinek <jakub@redhat.com>
15559
15560 PR c/104633
15561 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
15562 Don't warn about calls to corresponding builtin from extern inline
15563 gnu_inline wrappers.
15564
15565 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
15566
15567 PR target/104489
15568 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
15569
15570 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
15571
15572 PR target/100757
15573 PR target/101325
15574 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
15575 typo.
15576
15577 2022-02-23 Cui,Lili <lili.cui@intel.com>
15578
15579 * doc/invoke.texi: Update documents for Intel architectures.
15580
15581 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
15582
15583 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
15584 bootstrap.
15585
15586 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
15587
15588 * omp-low.cc (omp_build_component_ref): Move function...
15589 * omp-general.cc (omp_build_component_ref): ... here. Remove
15590 'static'.
15591 * omp-general.h (omp_build_component_ref): Declare function.
15592 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
15593 function.
15594 (build_receiver_ref, build_sender_ref): Call
15595 'omp_build_component_ref' instead.
15596
15597 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
15598
15599 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
15600 simplify. Adjust all users.
15601
15602 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
15603
15604 PR target/88134
15605 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
15606 atomic_update_decl): Add GTY markup.
15607
15608 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15609
15610 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
15611
15612 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15613
15614 PR target/100757
15615 PR target/101325
15616 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
15617 predicate.
15618 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
15619 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
15620 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
15621 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
15622 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
15623 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
15624 * config/arm/mve.md: Use VxBI instead of HI.
15625
15626 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15627
15628 PR target/100757
15629 PR target/101325
15630 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
15631 qualifier.
15632 (STRSBU_P_QUALIFIERS): Likewise.
15633 (LDRGBS_Z_QUALIFIERS): Likewise.
15634 (LDRGBU_Z_QUALIFIERS): Likewise.
15635 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
15636 (LDRGBWBS_Z_QUALIFIERS): Likewise.
15637 (LDRGBWBU_Z_QUALIFIERS): Likewise.
15638 (STRSBWBS_P_QUALIFIERS): Likewise.
15639 (STRSBWBU_P_QUALIFIERS): Likewise.
15640 * config/arm/mve.md: Use VxBI instead of HI.
15641
15642 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15643
15644 PR target/100757
15645 PR target/101325
15646 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
15647 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
15648 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
15649 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
15650 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
15651 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
15652 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
15653 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
15654 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
15655 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
15656 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
15657 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
15658 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
15659 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
15660 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
15661 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
15662 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
15663 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
15664 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
15665 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
15666 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
15667 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
15668 (STRS_P_QUALIFIERS): Use predicate qualifier.
15669 (STRU_P_QUALIFIERS): Likewise.
15670 (STRSU_P_QUALIFIERS): Likewise.
15671 (STRSS_P_QUALIFIERS): Likewise.
15672 (LDRGS_Z_QUALIFIERS): Likewise.
15673 (LDRGU_Z_QUALIFIERS): Likewise.
15674 (LDRS_Z_QUALIFIERS): Likewise.
15675 (LDRU_Z_QUALIFIERS): Likewise.
15676 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
15677 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
15678 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
15679 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
15680 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
15681 * config/arm/mve.md: Use MVE_VPRED instead of HI.
15682
15683 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15684
15685 PR target/100757
15686 PR target/101325
15687 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
15688 Delete.
15689 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
15690 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
15691 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
15692 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
15693 predicated qualifiers.
15694 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
15695 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
15696
15697 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15698
15699 PR target/100757
15700 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
15701 (arm_expand_vector_compare): Update prototype.
15702 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
15703 (arm_vector_mode_supported_p): Add support for VxBI modes.
15704 (arm_expand_vector_compare): Remove useless generation of vpsel.
15705 (arm_expand_vcond): Fix select operands.
15706 (arm_get_mask_mode): New.
15707 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
15708 (vec_cmpu<mode><MVE_vpred>): New.
15709 (vcond_mask_<mode><MVE_vpred>): New.
15710 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
15711 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
15712 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
15713 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
15714 and disable for MVE.
15715 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
15716
15717 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15718
15719 PR target/100757
15720 PR target/101325
15721 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
15722 (BINOP_PRED_NONE_NONE_QUALIFIERS)
15723 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
15724 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
15725 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
15726 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
15727 modes.
15728 (arm_mode_to_pred_mode): New.
15729 (arm_expand_vector_compare): Use the right VxBI mode instead of
15730 HI.
15731 (arm_expand_vcond): Likewise.
15732 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
15733 (mve_bool_vec_to_const): New.
15734 (neon_make_constant): Call mve_bool_vec_to_const when needed.
15735 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
15736 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
15737 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
15738 (vpselq_s, vpselq_f): Use new predicated qualifiers.
15739 * config/arm/constraints.md (DB): New.
15740 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
15741 (MVE_VPRED, MVE_vpred): New attribute iterators.
15742 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
15743 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
15744 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
15745 (@mve_vpselq_<supf>v2di): Define separately.
15746 (mov<mode>): New expander for VxBI modes.
15747 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
15748 MVE_7_HI iterator and add support for DB constraint.
15749
15750 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15751 Richard Sandiford <richard.sandiford@arm.com>
15752
15753 PR target/100757
15754 PR target/101325
15755 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
15756 VNx2BI): Update definition.
15757 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
15758 simd types.
15759 (arm_init_builtin): Map predicate vectors arguments to HImode.
15760 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
15761 rtx. Move return value to HImode rtx.
15762 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
15763 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
15764 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
15765 Pred2x8_t,Pred4x4_t): New.
15766 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
15767 * genmodes.cc (mode_data): Add boolean field.
15768 (blank_mode): Initialize it.
15769 (make_complex_modes): Fix handling of boolean modes.
15770 (make_vector_modes): Likewise.
15771 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
15772 (make_vector_bool_mode): Likewise.
15773 (BOOL_MODE): New.
15774 (make_bool_mode): New.
15775 (emit_insn_modes_h): Fix generation of boolean modes.
15776 (emit_class_narrowest_mode): Likewise.
15777 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
15778 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
15779 define BImode.
15780 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
15781 Fix handling of constm1_rtx for VECTOR_BOOL.
15782 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
15783 (native_decode_vector_rtx): Likewise.
15784 (test_vector_ops_duplicate): Skip vec_merge test
15785 with vectors of booleans.
15786 * varasm.cc (output_constant_pool_2): Likewise.
15787
15788 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15789
15790 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
15791 for operand 1.
15792
15793 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15794
15795 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
15796
15797 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
15798
15799 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
15800 (REG_CLASS_NAMES): Likewise.
15801 (REG_CLASS_CONTENTS): Likewise.
15802 (CLASS_MAX_NREGS): Handle VPR.
15803 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
15804
15805 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
15806 Tom de Vries <tdevries@suse.de>
15807
15808 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
15809 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
15810 Likewise.
15811 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
15812
15813 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
15814 Tom de Vries <tdevries@suse.de>
15815
15816 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
15817 * doc/invoke.texi (-mptx): Update for new values and defaults.
15818
15819 2022-02-22 Tom de Vries <tdevries@suse.de>
15820
15821 * config/nvptx/nvptx.cc (gen_comment): New function.
15822 (workaround_uninit_method_1, workaround_uninit_method_2)
15823 (workaround_uninit_method_3): : Use gen_comment.
15824 * config/nvptx/nvptx.opt (mptx-comment): New option.
15825
15826 2022-02-22 Richard Biener <rguenther@suse.de>
15827
15828 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
15829 for a splat.
15830
15831 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
15832 Richard Biener <rguenther@suse.de>
15833
15834 * fold-const.cc (ctor_single_nonzero_element): New function to
15835 return the single non-zero element of a (vector) constructor.
15836 * fold-const.h (ctor_single_nonzero_element): Prototype here.
15837 * match.pd (reduc (constructor@0)): Simplify reductions of a
15838 constructor containing a single non-zero element.
15839 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
15840 reductions of vector operations of the same operator with
15841 constant vector operands.
15842
15843 2022-02-22 Jakub Jelinek <jakub@redhat.com>
15844
15845 PR tree-optimization/104604
15846 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
15847 Only check if gimple_assign_rhs1 is COMPLEX_CST if
15848 gimple_assign_rhs_code is COMPLEX_CST.
15849
15850 2022-02-22 Jakub Jelinek <jakub@redhat.com>
15851
15852 PR target/104612
15853 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
15854 on input operands before calling lowpart_subreg on it. For output
15855 operand, use a vmode pseudo as destination and then move its lowpart
15856 subreg into operands[0] if lowpart_subreg fails on dest.
15857 (ix86_expand_xorsign): Likewise.
15858
15859 2022-02-22 Richard Biener <rguenther@suse.de>
15860
15861 PR tree-optimization/104582
15862 PR target/99881
15863 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
15864 Cost GPR to vector register moves for integer vector construction.
15865
15866 2022-02-22 Richard Biener <rguenther@suse.de>
15867
15868 PR tree-optimization/104582
15869 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
15870 (vector_costs::add_stmt_cost): Add SLP node parameter.
15871 (dump_stmt_cost): Likewise.
15872 (add_stmt_cost): Likewise, new overload and adjust.
15873 (add_stmt_costs): Adjust.
15874 (record_stmt_cost): New overload.
15875 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
15876 (vector_costs::add_stmt_cost): Adjust.
15877 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
15878 Adjust.
15879 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
15880 the SLP node for costing.
15881 (vectorizable_slp_permutation): Likewise.
15882 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
15883 new overloads.
15884 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
15885 Adjust.
15886 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
15887 Adjust.
15888 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
15889 Adjust.
15890 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
15891
15892 2022-02-22 Richard Biener <rguenther@suse.de>
15893
15894 PR tree-optimization/104582
15895 * tree-vectorizer.h (add_stmt_cost): New overload.
15896 (record_stmt_cost): Likewise.
15897 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
15898 Use add_stmt_costs.
15899 (vect_get_known_peeling_cost): Use new overloads.
15900 (vect_estimate_min_profitable_iters): Likewise. Consistently
15901 use scalar_stmt for costing versioning checks.
15902 * tree-vect-stmts.cc (record_stmt_cost): New overload.
15903
15904 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
15905
15906 PR target/103069
15907 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
15908 Split atomic fetch and loop part.
15909 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
15910 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
15911 prototype.
15912 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
15913 expander under TARGET_RELAX_CMPXCHG_LOOP.
15914 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
15915
15916 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
15917
15918 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
15919 Change wb_candidate[12] to wb_push_candidate[12].
15920 (aarch64_layout_frame): Likewise, and
15921 change callee_adjust when scs is enabled.
15922 (aarch64_save_callee_saves):
15923 Change wb_candidate[12] to wb_push_candidate[12].
15924 (aarch64_restore_callee_saves):
15925 Change wb_candidate[12] to wb_pop_candidate[12].
15926 (aarch64_get_separate_components):
15927 Change wb_candidate[12] to wb_push_candidate[12].
15928 (aarch64_expand_prologue): Push x30 onto SCS before it's
15929 pushed onto stack.
15930 (aarch64_expand_epilogue): Pop x30 frome SCS, while
15931 preventing it from being popped from the regular stack again.
15932 (aarch64_override_options_internal): Add SCS compile option check.
15933 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
15934 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
15935 wb_pop_candidate[12], and rename wb_candidate[12] to
15936 wb_push_candidate[12].
15937 * config/aarch64/aarch64.md (scs_push): New template.
15938 (scs_pop): Likewise.
15939 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
15940 * doc/tm.texi: Regenerate.
15941 * doc/tm.texi.in: Add hook have_shadow_call_stack.
15942 * flag-types.h (enum sanitize_code):
15943 Add SANITIZE_SHADOW_CALL_STACK.
15944 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
15945 and exclude SANITIZE_SHADOW_CALL_STACK.
15946 * target.def: New hook.
15947 * toplev.cc (process_options): Add SCS compile option check.
15948 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
15949
15950 2022-02-21 Tom de Vries <tdevries@suse.de>
15951
15952 PR target/104440
15953 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
15954 (workaround_uninit_method_2, workaround_uninit_method_3)
15955 (workaround_uninit): New function.
15956 (nvptx_reorg): Use workaround_uninit.
15957 * config/nvptx/nvptx.opt (minit-regs): New option.
15958
15959 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
15960
15961 PR rtl-optimization/104498
15962 * alias.cc (compare_base_symbol_refs): Correct distance computation
15963 when swapping x and y.
15964
15965 2022-02-21 Andrew Pinski <apinski@marvell.com>
15966
15967 PR c/104506
15968 * tree-ssa.cc (tree_ssa_useless_type_conversion):
15969 Check the inner type before calling useless_type_conversion_p.
15970
15971 2022-02-19 Tom de Vries <tdevries@suse.de>
15972
15973 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
15974 * config/nvptx/nvptx.md
15975 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
15976 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
15977 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
15978 (define_expand "atomic_store<mode>"): Handle rename. Use
15979 nvptx_atomic_store instead of atomic_exchange.
15980
15981 2022-02-19 Tom de Vries <tdevries@suse.de>
15982
15983 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
15984 insns with atomic attribute. Assert that all handled insns are
15985 PARALLELs.
15986 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
15987 Set atomic attribute to false.
15988
15989 2022-02-19 Tom de Vries <tdevries@suse.de>
15990
15991 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
15992 type to bool.
15993 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
15994 nvptx_warpsync, if necessary.
15995
15996 2022-02-19 Jakub Jelinek <jakub@redhat.com>
15997
15998 PR sanitizer/102656
15999 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
16000 known to be within bounds, treat it like automatic variables.
16001 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
16002 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
16003 it addressable.
16004
16005 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
16006
16007 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
16008 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
16009 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
16010 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
16011 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
16012 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
16013 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
16014 power10_sched_reorder): Likewise.
16015 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
16016 gen_addadd): Likewise
16017 * config/rs6000/fusion.md: Regenerate.
16018
16019 2022-02-18 Jakub Jelinek <jakub@redhat.com>
16020
16021 PR target/104257
16022 PR target/104598
16023 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
16024 rather than __posix_memalign.
16025
16026 2022-02-18 Richard Biener <rguenther@suse.de>
16027
16028 PR target/104581
16029 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
16030 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
16031 of calling ix86_avx_u128_mode_source which would eventually
16032 have returned AVX_U128_ANY in some very special case.
16033
16034 2022-02-18 Richard Biener <rguenther@suse.de>
16035
16036 PR tree-optimization/96881
16037 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
16038 CLOBBER handling.
16039 (control_parents_preserved_p): New function.
16040 (eliminate_unnecessary_stmts): Check that we preserved control
16041 parents before retaining a CLOBBER.
16042 (perform_tree_ssa_dce): Pass down aggressive flag
16043 to eliminate_unnecessary_stmts.
16044
16045 2022-02-17 Jason Merrill <jason@redhat.com>
16046
16047 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
16048 on TYPE_MAIN_VARIANT.
16049
16050 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
16051
16052 PR target/104257
16053 * config/rs6000/bmi2intrin.h: Uglify local variables.
16054 * config/rs6000/emmintrin.h: Likewise.
16055 * config/rs6000/mm_malloc.h: Likewise.
16056 * config/rs6000/mmintrin.h: Likewise.
16057 * config/rs6000/pmmintrin.h: Likewise.
16058 * config/rs6000/smmintrin.h: Likewise.
16059 * config/rs6000/tmmintrin.h: Likewise.
16060 * config/rs6000/xmmintrin.h: Likewise.
16061
16062 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
16063
16064 PR target/104335
16065 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
16066 if the expected comparison's first operand is of mode MODE_CC.
16067
16068 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
16069
16070 PR rtl-optimization/104447
16071 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
16072 hard reg set by lra_no_alloc_regs.
16073
16074 2022-02-17 liuhongt <hongtao.liu@intel.com>
16075
16076 PR tree-optimization/104551
16077 PR tree-optimization/103771
16078 * match.pd (cond_expr_convert_p): Add types_match check when
16079 convert is extension.
16080 * tree-vect-patterns.cc
16081 (gimple_cond_expr_convert_p): Adjust comments.
16082 (vect_recog_cond_expr_convert_pattern): Ditto.
16083
16084 2022-02-17 Jakub Jelinek <jakub@redhat.com>
16085
16086 PR debug/104557
16087 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
16088 if expr has VOIDmode.
16089
16090 2022-02-17 liuhongt <hongtao.liu@intel.com>
16091
16092 * config/i386/cpuid.h (bit_MPX): Removed.
16093 (bit_BNDREGS): Ditto.
16094 (bit_BNDCSR): Ditto.
16095
16096 2022-02-17 Michael Meissner <meissner@the-meissners.org>
16097
16098 PR target/99708
16099 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
16100 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
16101 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
16102 is created.
16103
16104 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
16105
16106 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
16107 range_compatible_p instead of direct type comparison.
16108
16109 2022-02-16 Jakub Jelinek <jakub@redhat.com>
16110
16111 PR rtl-optimization/104544
16112 * combine.cc (try_combine): When looking for insn whose links
16113 should be updated from i3 to i2, don't stop on debug insns, instead
16114 skip over them.
16115
16116 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
16117
16118 PR target/100056
16119 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
16120 * config/aarch64/aarch64.md: Extend the PR100056 patterns
16121 to handle plus in the same way as ior, if the operands have
16122 no set bits in common.
16123
16124 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
16125
16126 PR tree-optimization/104526
16127 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
16128 new routine.
16129 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
16130 of dependency chain if there isn't one.
16131 (gori_compute::condexpr_adjust): New.
16132 * gimple-range-gori.h (class gori_compute): New prototype.
16133
16134 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
16135
16136 PR target/100874
16137 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
16138 Declare.
16139 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
16140 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
16141
16142 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
16143
16144 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
16145 (vect_scalar_ops_slice_hash): Likewise.
16146 (vect_scalar_ops_slice::op): New function.
16147 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
16148 (vect_scalar_ops_slice_hash::hash): Likewise.
16149 (vect_scalar_ops_slice_hash::equal): Likewise.
16150 (vect_prologue_cost_for_slp): Check for duplicate vectors.
16151 * config/aarch64/aarch64.cc
16152 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
16153 (aarch64_aligned_constant_offset_p): New function.
16154 (aarch64_stp_sequence_cost): Likewise.
16155 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
16156 (aarch64_vector_costs::finish_cost): Likewise.
16157
16158 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
16159
16160 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
16161 use after free.
16162
16163 2022-02-15 Richard Biener <rguenther@suse.de>
16164
16165 PR tree-optimization/104543
16166 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
16167 come after the inner loop.
16168
16169 2022-02-15 Jakub Jelinek <jakub@redhat.com>
16170
16171 PR target/104536
16172 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
16173 cannot instead of can%'t in diagnostics. Formatting fixes.
16174
16175 2022-02-15 Jakub Jelinek <jakub@redhat.com>
16176
16177 PR middle-end/104522
16178 * fold-const.h (native_interpret_real): Declare.
16179 * fold-const.cc (native_interpret_real): No longer static. Don't
16180 perform MODE_COMPOSITE_P verification here.
16181 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
16182 for all modes.
16183 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
16184 instead of native_interpret_expr.
16185 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
16186 and comparison verification for all FLOAT_MODE_P modes, not just
16187 MODE_COMPOSITE_P.
16188
16189 2022-02-15 Richard Biener <rguenther@suse.de>
16190
16191 PR tree-optimization/104519
16192 * fold-const.cc (multiple_of_p): Remove never true condition.
16193 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
16194 the appropriate types for determining whether the difference
16195 of final and base is a multiple of the step.
16196
16197 2022-02-15 Jakub Jelinek <jakub@redhat.com>
16198
16199 PR debug/104517
16200 * omp-low.cc (task_cpyfns): New variable.
16201 (delete_omp_context): Don't call finalize_task_copyfn from here.
16202 (create_task_copyfn): Push task_stmt into task_cpyfns.
16203 (execute_lower_omp): Call finalize_task_copyfn here on entries from
16204 task_cpyfns vector and release the vector.
16205
16206 2022-02-14 Martin Sebor <msebor@redhat.com>
16207
16208 PR middle-end/104355
16209 * doc/invoke.texi (-Warray-bounds): Update documentation.
16210
16211 2022-02-14 Michael Meissner <meissner@the-meissners.org>
16212
16213 PR target/104253
16214 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
16215 conversion functions used to convert IFmode types.
16216
16217 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
16218
16219 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
16220
16221 2022-02-14 Richard Biener <rguenther@suse.de>
16222
16223 PR tree-optimization/104528
16224 * tree-ssa.h (find_released_ssa_name): Declare.
16225 * tree-ssa.cc (find_released_ssa_name): Export.
16226 * cfgloop.cc (verify_loop_structure): Look for released
16227 SSA names in loops nb_iterations.
16228 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
16229 estimates.
16230
16231 2022-02-14 Richard Biener <rguenther@suse.de>
16232
16233 PR tree-optimization/104511
16234 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
16235 touching DFP <-> FP conversions.
16236
16237 2022-02-14 Richard Biener <rguenther@suse.de>
16238
16239 PR middle-end/104497
16240 * gimplify.cc (gimplify_compound_lval): Make sure the
16241 base is a non-register if needed and possible.
16242
16243 2022-02-13 liuhongt <hongtao.liu@intel.com>
16244
16245 PR target/103771
16246 * match.pd (cond_expr_convert_p): New match.
16247 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
16248 (vect_recog_cond_expr_convert_pattern): New.
16249
16250 2022-02-12 Jakub Jelinek <jakub@redhat.com>
16251
16252 PR sanitizer/104449
16253 * asan.cc: Include tree-eh.h.
16254 (handle_builtin_alloca): Handle the case when __builtin_alloca or
16255 __builtin_alloca_with_align can throw.
16256
16257 2022-02-12 Jakub Jelinek <jakub@redhat.com>
16258
16259 PR target/104502
16260 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
16261 and AVX512VL isn't available, move operands[1] to operands[0] first.
16262
16263 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
16264
16265 PR target/79754
16266 * config/i386/i386.cc (type_natural_mode):
16267 Skip decimal float vector modes.
16268
16269 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
16270 Vladimir Makarov <vmakarov@redhat.com>
16271
16272 PR target/104117
16273 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
16274 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
16275 emitting PIC code.
16276 (legitimate_lo_sum_address_p): Likewise.
16277 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
16278 load from an invalid lo_sum address.
16279
16280 2022-02-11 Jakub Jelinek <jakub@redhat.com>
16281
16282 PR tree-optimization/104499
16283 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
16284 of convert.
16285
16286 2022-02-11 Jakub Jelinek <jakub@redhat.com>
16287
16288 * tree.cc (build_common_builtin_nodes): Fix up formatting in
16289 __builtin_clear_padding decl creation.
16290 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
16291 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
16292 argument rather than in 3rd argument.
16293 (gimplify_call_expr): Likewise. Fix up comment formatting.
16294 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
16295 2 arguments instead of 3, take for_auto_init from the value
16296 of 2nd argument.
16297
16298 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
16299
16300 PR rtl-optimization/104400
16301 * lra-constraints.cc (process_alt_operands): Don't make union of
16302 this_alternative_exclude_start_hard_regs when reg class in insn
16303 alternative covers other reg classes in the same alternative.
16304
16305 2022-02-11 Jakub Jelinek <jakub@redhat.com>
16306
16307 PR middle-end/104446
16308 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
16309 operands.
16310
16311 2022-02-11 Richard Biener <rguenther@suse.de>
16312
16313 PR middle-end/104496
16314 * internal-fn.cc (vectorized_internal_fn_supported_p):
16315 Bail out for integer mode vector types.
16316
16317 2022-02-11 Jakub Jelinek <jakub@redhat.com>
16318
16319 PR rtl-optimization/104459
16320 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
16321 moving DEBUG_INSNs between bbs.
16322
16323 2022-02-11 liuhongt <hongtao.liu@intel.com>
16324
16325 PR tree-optimization/104479
16326 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
16327 for the dest of uncond_op.
16328
16329 2022-02-11 Tom de Vries <tdevries@suse.de>
16330
16331 PR target/104456
16332 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
16333 insn.
16334
16335 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
16336
16337 PR middle-end/100775
16338 * function.cc (gen_call_used_regs_seq): Call
16339 df_update_exit_block_uses when updating df.
16340
16341 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
16342
16343 PR target/104469
16344 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
16345 Change operand 1 constraint to register_operand.
16346
16347 2022-02-10 Richard Biener <rguenther@suse.de>
16348
16349 PR tree-optimization/104373
16350 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
16351 walk kind.
16352 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
16353 walk kind as argument.
16354 (run_rpo_vn): Adjust.
16355 (pass_fre::execute): Likewise.
16356 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
16357 blocks not reachable.
16358 (execute_late_warn_uninitialized): Mark all edges as
16359 executable.
16360 (execute_early_warn_uninitialized): Use VN to compute
16361 executable edges.
16362 (pass_data_early_warn_uninitialized): Enable a dump file,
16363 change dump name to warn_uninit.
16364
16365 2022-02-10 Richard Biener <rguenther@suse.de>
16366
16367 PR middle-end/104467
16368 * match.pd (vector extract simplification): Multiply the
16369 number of CTOR elements with the number of element elements.
16370
16371 2022-02-10 Richard Biener <rguenther@suse.de>
16372
16373 PR tree-optimization/104466
16374 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
16375 for the MR_DEPENDENCE checks as intended.
16376
16377 2022-02-10 Tom de Vries <tdevries@suse.de>
16378
16379 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
16380 define_insn.
16381 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
16382 TARGET_SM70.
16383 (define_c_enum "unspecv"): Add UNSPECV_ST.
16384
16385 2022-02-10 Tom de Vries <tdevries@suse.de>
16386
16387 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
16388 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
16389 (nvptx_mem_maybe_shared_p): New function.
16390 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
16391 define_expand.
16392
16393 2022-02-10 Tom de Vries <tdevries@suse.de>
16394
16395 PR target/97005
16396 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
16397 driver JIT bug by using sub.s16 instead of sub.u16.
16398
16399 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
16400
16401 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
16402 floating point constants as operands 1 and/or 2.
16403
16404 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
16405
16406 PR target/104345
16407 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
16408 (sel_false<mode>): Likewise.
16409 (define_code_iterator eqne): New code iterator for EQ and NE.
16410 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
16411 the negation of a selp instruction.
16412 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
16413 the bitwise not of a selp instruction.
16414 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
16415
16416 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
16417
16418 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
16419 in machine description.
16420 (logic): Move code attribute earlier in machine description.
16421 (ilogic): New code attribute, like logic but "ior" for IOR.
16422 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
16423 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
16424 (<ilogic>bi3): New define_insn for BI mode logic operations.
16425 (define_split): Lower logic operations from integer modes to
16426 BI mode predicate operations.
16427
16428 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
16429
16430 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
16431 (one_cmplbi2): New define_insn for not.pred.
16432 (mulditi3): New define_expand for signed widening multiply.
16433 (umulditi3): New define_expand for unsigned widening multiply.
16434 (smul<mode>3_highpart): New define_insn for signed highpart mult.
16435 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
16436 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
16437 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
16438 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
16439 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
16440 (*setcc<mode>_from_not_bi): New define_insn.
16441 (*setcc_isinf<mode>): New define_insn for testp.infinite.
16442 (isinf<mode>2): New define_expand.
16443
16444 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
16445
16446 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
16447 (setcc<mode>_from_bi): Additionally support QImode.
16448 (extendbi<mode>2): Additionally support QImode.
16449 (zero_extendbi<mode>2): Additionally support QImode.
16450 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
16451 iterators for signed and unsigned, binary and unary operations.
16452 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
16453 expanders to perform QImode operations using SImode instructions.
16454 (cstoreqi4): New define_expand.
16455 (*ext_truncsi2_qi): New define_insn.
16456 (*zext_truncsi2_qi): New define_insn.
16457
16458 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
16459
16460 * config/nvptx/nvptx.md (*cmpf): New define_insn.
16461 (cstorehf4): New define_expand.
16462 (fmahf4): New define_insn.
16463 (neghf2): New define_insn.
16464 (abshf2): New define_insn.
16465
16466 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
16467
16468 * doc/install.texi (Specific): Change the www.bitwizard.nl
16469 reference to use https.
16470
16471 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
16472
16473 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
16474 OMP_CLAUSE_HAS_DEVICE_ADDR
16475 and handle array sections.
16476 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
16477 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
16478 (lower_omp_target): Same.
16479 * tree-core.h (enum omp_clause_code): Same.
16480 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
16481 (convert_local_omp_clauses): Same.
16482 * tree-pretty-print.cc (dump_omp_clause): Same.
16483 * tree.cc: Same.
16484
16485 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
16486
16487 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
16488 that will result in direct recursive calls.
16489
16490 2022-02-10 Andrew Pinski <apinski@marvell.com>
16491
16492 PR target/104474
16493 * config/aarch64/aarch64.cc
16494 (aarch64_sve_expand_vector_init_handle_trailing_constants):
16495 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
16496
16497 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
16498
16499 PR target/104462
16500 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
16501 Also include OPTION_MASK_ISA2_AVX2_UNSET.
16502
16503 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
16504
16505 PR target/104458
16506 * config/i386/i386-expand.cc (ix86_split_idivmod):
16507 Force operands[2] and operands[3] into a register..
16508
16509 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
16510
16511 PR target/97040
16512 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
16513 (*v850_fnmssf4): Renamed from fnmssf4
16514
16515 2022-02-09 Ian Lance Taylor <iant@golang.org>
16516
16517 * godump.cc (go_force_record_alignment): Really name the alignment
16518 field "_" (complete 2021-12-29 change).
16519
16520 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
16521
16522 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
16523 function prototype.
16524 (VREPLACE_UN_UV4SI): Likewise.
16525 (VREPLACE_UN_V2DF): Likewise.
16526 (VREPLACE_UN_V2DI): Likewise.
16527 (VREPLACE_UN_V4SF): Likewise.
16528 (VREPLACE_UN_V4SI): Likewise.
16529 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
16530 function prototypes.
16531 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
16532 (vreplace_un_<mode>): New define_insn.
16533
16534 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
16535
16536 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
16537 (VDBL): Handle SF.
16538 (single_wx, single_type, single_dtype, dblq): New mode attributes.
16539 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
16540 from VDC to VDCSIF.
16541 (store_pair_lanes<mode>): Likewise.
16542 (*aarch64_combine_internal<mode>): Likewise.
16543 (*aarch64_combine_internal_be<mode>): Likewise.
16544 (*aarch64_combinez<mode>): Likewise.
16545 (*aarch64_combinez_be<mode>): Likewise.
16546 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
16547 8-byte modes for ADDR_QUERY_LDP_STP_N.
16548 (aarch64_print_operand): Likewise for %y.
16549
16550 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
16551
16552 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
16553 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
16554 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
16555 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
16556 (vec_pack_trunc_<mode>): Take general_operand elements and use
16557 aarch64_combine rather than move_lo/hi_quad to combine them.
16558 (vec_pack_trunc_df): Likewise.
16559
16560 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
16561
16562 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
16563 Delete.
16564 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
16565 to...
16566 (*aarch64_combinez<mode>): ...this.
16567 (@aarch64_combinez_be<mode>): Rename to...
16568 (*aarch64_combinez_be<mode>): ...this.
16569 (@aarch64_vec_concat<mode>): New expander.
16570 (aarch64_combine<mode>): Use it.
16571 (@aarch64_simd_combine<mode>): Delete.
16572 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
16573 (aarch64_expand_vector_init): Use aarch64_vec_concat.
16574
16575 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
16576
16577 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
16578 New predicate.
16579 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
16580 (*aarch64_combine_internal_be<mode>): New patterns.
16581
16582 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
16583
16584 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
16585 (move_lo_quad_internal_be_<mode>): Delete.
16586 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
16587
16588 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
16589
16590 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
16591 Declare.
16592 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
16593 aarch64_mergeable_load_pair_p instead of inline check.
16594 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
16595 (aarch64_check_consecutive_mems): Allow the reversed parameter
16596 to be null.
16597 (aarch64_mergeable_load_pair_p): New function.
16598
16599 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
16600
16601 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
16602 element to be an aarch64_simd_nonimmediate_operand.
16603
16604 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
16605
16606 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
16607 aarch64_simd_nonimmediate_operand instead of
16608 aarch64_simd_general_operand.
16609 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
16610 general_operand.
16611 (@aarch64_combinez_be<mode>): Likewise.
16612
16613 2022-02-09 Richard Biener <rguenther@suse.de>
16614
16615 PR middle-end/104464
16616 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
16617 throwing check to after unproblematic replacement.
16618
16619 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
16620
16621 PR tree-optimization/104420
16622 * match.pd (mult @0 real_zerop): Tweak conditions for constant
16623 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
16624
16625 2022-02-09 Jakub Jelinek <jakub@redhat.com>
16626
16627 PR debug/104407
16628 * dwarf2out.cc (mangle_referenced_decls): New function.
16629 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
16630 early_dwarf. Instead walk the initializer and try to mangle vars or
16631 functions referenced from it.
16632
16633 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
16634
16635 PR tree-optimization/104288
16636 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
16637 (non_null_ref::adjust_range): Move to header.
16638 (ranger_cache::range_of_def): Don't check non-null.
16639 (ranger_cache::entry_range): Don't check non-null.
16640 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
16641 (ranger_cache::update_to_nonnull): New.
16642 (non_null_loadstore): New.
16643 (ranger_cache::block_apply_nonnull): New.
16644 * gimple-range-cache.h (class non_null_ref): Update prototypes.
16645 (non_null_ref::adjust_range): Move to here and inline.
16646 (class ranger_cache): Update prototypes.
16647 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
16648 not search dominators.
16649 (path_range_query::adjust_for_non_null_uses): Ditto.
16650 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
16651 def overrides. Do not check nonnull.
16652 (gimple_ranger::range_on_entry): Check dominators for nonnull.
16653 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
16654 (gimple_ranger::register_side_effects): New.
16655 * gimple-range.h (gimple_ranger::register_side_effects): New.
16656 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
16657
16658 2022-02-09 Richard Biener <rguenther@suse.de>
16659
16660 PR tree-optimization/104445
16661 PR tree-optimization/102832
16662 * optabs-query.h (can_vec_extract): New.
16663 * optabs-query.cc (can_vec_extract): Likewise.
16664 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
16665 we can extract a hi/lo part from the larger vector, rework
16666 check iteration from larger to smaller sizes.
16667
16668 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
16669
16670 PR target/35513
16671 PR target/100593
16672 * config/i386/gnu-property.cc: Include "i386-protos.h".
16673 (file_end_indicate_exec_stack_and_gnu_property): Generate
16674 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
16675 nodirect_extern_access attribute.
16676 * config/i386/i386-options.cc
16677 (handle_nodirect_extern_access_attribute): New function.
16678 (ix86_attribute_table): Add nodirect_extern_access attribute.
16679 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
16680 bool argument.
16681 (ix86_has_no_direct_extern_access): New.
16682 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
16683 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
16684 call operand. Force non-call load from GOT for
16685 -mno-direct-extern-access or nodirect_extern_access attribute.
16686 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
16687 for -mno-direct-extern-access or nodirect_extern_access attribute.
16688 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
16689 for call operand.
16690 (asm_preferred_eh_data_format): Use PC-relative format for
16691 -mno-direct-extern-access to avoid copy relocation. Check
16692 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
16693 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
16694 true for -mno-direct-extern-access or nodirect_extern_access
16695 attribute. Don't treat protected data as extern and avoid copy
16696 relocation on common symbol with -mno-direct-extern-access or
16697 nodirect_extern_access attribute.
16698 (ix86_reloc_rw_mask): New to avoid copy relocation for
16699 -mno-direct-extern-access.
16700 (TARGET_ASM_RELOC_RW_MASK): New.
16701 * config/i386/i386.opt: Add -mdirect-extern-access.
16702 * doc/extend.texi: Document nodirect_extern_access attribute.
16703 * doc/invoke.texi: Document -m[no-]direct-extern-access.
16704
16705 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
16706
16707 PR target/104441
16708 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
16709 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
16710 Call ix86_avx_u128_mode_source to check mode for each component
16711 of source operand.
16712
16713 2022-02-09 liuhongt <hongtao.liu@intel.com>
16714
16715 PR target/104451
16716 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
16717 operands[2] from SImode to QImode.
16718
16719 2022-02-09 Richard Biener <rguenther@suse.de>
16720
16721 PR middle-end/104450
16722 * gimple-isel.cc: Pass cfun around.
16723 (+gimple_expand_vec_cond_expr): Do not combine a throwing
16724 comparison with the select.
16725
16726 2022-02-09 Richard Biener <rguenther@suse.de>
16727
16728 PR target/104453
16729 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
16730 folding for NULL LHS.
16731
16732 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
16733
16734 PR rtl-optimization/104198
16735 PR rtl-optimization/104153
16736 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
16737 using it directly. Rework comparison handling and always
16738 perform a second pass.
16739
16740 2022-02-08 Jakub Jelinek <jakub@redhat.com>
16741
16742 PR target/102140
16743 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
16744 split1 pass has finished already.
16745
16746 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
16747
16748 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
16749 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
16750 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
16751 (vmsumcud): New define_insn.
16752
16753 2022-02-08 Tom de Vries <tdevries@suse.de>
16754
16755 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
16756 * config/nvptx/nvptx.h (TARGET_SM70): Define.
16757
16758 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
16759
16760 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
16761 on condition.
16762 * config/s390/s390.md: Use paradoxical subreg.
16763
16764 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
16765
16766 * combine.cc (reg_subword_p): Check for paradoxical subreg.
16767
16768 2022-02-08 Tom de Vries <tdevries@suse.de>
16769
16770 PR target/104283
16771 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
16772 and PTX_VERSION_4_2.
16773 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
16774 (default_ptx_version_option, ptx_version_to_string)
16775 (sm_version_to_string, handle_ptx_version_option): New function.
16776 (nvptx_option_override): Call handle_ptx_version_option.
16777 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
16778 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
16779 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
16780 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
16781
16782 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
16783
16784 * doc/install.texi (Configuration): Document `--with-isa-spec='
16785 RISC-V option.
16786 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
16787 option.
16788 (RISC-V Options): Document it.
16789
16790 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
16791
16792 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
16793
16794 2022-02-08 Tom de Vries <tdevries@suse.de>
16795
16796 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
16797
16798 2022-02-08 Tom de Vries <tdevries@suse.de>
16799
16800 PR target/104364
16801 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
16802 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
16803 change is validated.
16804 (nvptx_mem_local_p): New function.
16805 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
16806 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
16807 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
16808 non-atomic, non-predicable define_insn, factored out of ...
16809 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
16810 Make predicable again.
16811 (define_expand "atomic_compare_and_swap<mode>"): Use
16812 atomic_compare_and_swap<mode>_1_local.
16813
16814 2022-02-08 liuhongt <hongtao.liu@intel.com>
16815
16816 PR rtl-optimization/104059
16817 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
16818 for a more expensive reg-reg move.
16819
16820 2022-02-07 Tamar Christina <tamar.christina@arm.com>
16821
16822 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
16823 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
16824 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
16825 (usdot_laneq, sudot_laneq): New.
16826 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
16827 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
16828
16829 2022-02-07 Tamar Christina <tamar.christina@arm.com>
16830
16831 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
16832 vdot_laneq_s32, vdotq_laneq_s32): New.
16833 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
16834 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
16835 (<sup>dot_prod<vsi2qi>): Re-order rtl.
16836 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
16837 (neon_<sup>dot_laneq<vsi2qi>): New.
16838
16839 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
16840
16841 PR target/104327
16842 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
16843 if always_inline is set. Don't inline when tune differs without
16844 always_inline.
16845
16846 2022-02-07 Richard Biener <rguenther@suse.de>
16847
16848 PR middle-end/104402
16849 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
16850 compares are not valid.
16851 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
16852 check is_gimple_condexpr.
16853
16854 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
16855
16856 PR target/103627
16857 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
16858 hunk affecting VSX and ALTIVEC to appropriate place.
16859
16860 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
16861
16862 PR target/103627
16863 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
16864 MMA if !TARGET_VSX.
16865
16866 2022-02-06 Jakub Jelinek <jakub@redhat.com>
16867
16868 PR c++/89074
16869 PR c++/104033
16870 * fold-const.h (folding_initializer): Adjust comment.
16871 (folding_cxx_constexpr): Declare.
16872 * fold-const.cc (folding_initializer): Adjust comment.
16873 (folding_cxx_constexpr): New variable.
16874 (address_compare): Restrict the decl vs. STRING_CST
16875 or vice versa or STRING_CST vs. STRING_CST or
16876 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
16877 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
16878 assume non-aliased functions have non-zero size and have different
16879 addresses. For folding_cxx_constexpr, punt on comparisons of start
16880 of some object and end of another one, regardless whether it is a decl
16881 or string literal. Also punt for folding_cxx_constexpr on
16882 STRING_CST vs. STRING_CST comparisons if the two literals could be
16883 overlapping.
16884
16885 2022-02-05 Jakub Jelinek <jakub@redhat.com>
16886
16887 PR tree-optimization/104389
16888 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
16889 honored.
16890
16891 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
16892
16893 * configure.ac: Fix detection for zifencei support.
16894 * configure: Regenerate.
16895
16896 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
16897
16898 PR target/104219
16899 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
16900 (all_defaults): Add isa_spec.
16901 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
16902
16903 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
16904
16905 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
16906 parameters instead of arglist and nargs. Simplify accordingly. Remove
16907 unnecessary test for argument count mismatch.
16908 (resolve_vec_cmpne): Likewise.
16909 (resolve_vec_adde_sube): Likewise.
16910 (resolve_vec_addec_subec): Likewise.
16911 (altivec_resolve_overloaded_builtin): Move overload special handling
16912 after the gathering of arguments into args[] and types[] and the test
16913 for correct number of arguments. Don't perform the test for correct
16914 number of arguments for certain special cases. Call the other special
16915 cases with args and types instead of arglist and nargs.
16916
16917 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
16918
16919 PR target/100808
16920 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
16921 3.1): Provide consistent type names. Remove unnecessary semicolons.
16922 Fix bad line breaks.
16923
16924 2022-02-04 Jakub Jelinek <jakub@redhat.com>
16925
16926 PR target/104380
16927 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
16928 adjust mangling of __builtin*printf_chk.
16929
16930 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
16931
16932 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
16933
16934 2022-02-04 Richard Biener <rguenther@suse.de>
16935 Bin Cheng <bin.cheng@linux.alibaba.com>
16936
16937 PR tree-optimization/100499
16938 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
16939 to true.
16940 * fold-const.cc (multiple_of_p): Likewise. Honor it for
16941 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
16942 switching to false for conversions.
16943 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
16944 claim the outermost expression does not wrap when calling
16945 multiple_of_p. Refactor the check done to check the
16946 original IV, avoiding a bias that might wrap.
16947
16948 2022-02-04 Richard Biener <rguenther@suse.de>
16949
16950 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
16951 handling.
16952
16953 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
16954
16955 PR debug/104366
16956 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
16957 (dwarf2out_early_finish): Likewise.
16958
16959 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
16960
16961 PR tree-optimization/104356
16962 * match.pd (X / bool_range_Y is X): Add guard.
16963 (X / X is one): Likewise.
16964 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
16965 (X / -X is -1): Likewise.
16966 (1 / X -> X == 1): Likewise.
16967
16968 2022-02-04 Richard Biener <rguenther@suse.de>
16969
16970 PR tree-optimization/103641
16971 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
16972 Pass the vector mode to choose_mult_variant.
16973
16974 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
16975
16976 PR rtl-optimization/101885
16977 * combine.cc (try_combine): When splitting a parallel into two
16978 sequential sets, check not only that the first doesn't clobber
16979 the second but also that the second doesn't clobber the first.
16980
16981 2022-02-04 Richard Biener <rguenther@suse.de>
16982
16983 PR middle-end/90348
16984 PR middle-end/104092
16985 * tree-core.h (clobber_kind): New enum.
16986 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
16987 * tree.h (CLOBBER_KIND): Add.
16988 (build_clobber): Add clobber kind argument, defaulted to
16989 CLOBBER_UNDEF.
16990 * tree.cc (build_clobber): Likewise.
16991 * gimple.h (gimple_clobber_p): New overload with specified kind.
16992 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
16993 CLOBBER_KIND.
16994 * tree-streamer-out.cc (streamer_write_tree_bitfields):
16995 Likewise.
16996 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
16997 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
16998 with CLOBBER_EOL.
16999 (gimplify_target_expr): Likewise.
17000 * tree-inline.cc (expand_call_inline): Likewise.
17001 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
17002 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
17003 CLOBBER_EOL clobbers as ending lifetime of storage.
17004
17005 2022-02-04 Martin Sebor <msebor@redhat.com>
17006
17007 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
17008 cleanup.
17009
17010 2022-02-03 Martin Sebor <msebor@redhat.com>
17011
17012 PR middle-end/104260
17013 * passes.def (pass_warn_access): Adjust pass placement.
17014
17015 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
17016
17017 PR target/104362
17018 * config/i386/i386.cc (find_drap_reg): For 32bit targets
17019 return DI_REG if function uses __builtin_eh_return.
17020
17021 2022-02-03 Martin Sebor <msebor@redhat.com>
17022
17023 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
17024 (pass_wrestrict::m_ptr_qry): New member.
17025 (wrestrict_walk): Rename...
17026 (pass_wrestrict::check_block): ...to this.
17027 (pass_wrestrict::execute): Set up and tear down pointer_query and
17028 ranger.
17029 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
17030 (builtin_access::builtin_access): Same.
17031 (builtin_access::m_ptr_qry): New member.
17032 (check_call): Rename...
17033 (pass_wrestrict::check_call): ...to this.
17034 (check_bounds_or_overlap): Change argument.
17035 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
17036
17037 2022-02-03 Martin Sebor <msebor@redhat.com>
17038
17039 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
17040 Define ctor.
17041 (array_bounds_checker::get_value_range): Use new member.
17042 (array_bounds_checker::check_mem_ref): Same.
17043 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
17044 Outline ctor.
17045 (array_bounds_checker::m_ptr_query): New member.
17046
17047 2022-02-03 Martin Sebor <msebor@redhat.com>
17048
17049 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
17050 pointer_query cache.
17051 * pointer-query.cc (pointer_query::pointer_query): Remove cache
17052 argument. Zero-initialize new cache member.
17053 (pointer_query::get_ref): Replace cache pointer with direct access.
17054 (pointer_query::put_ref): Same.
17055 (pointer_query::flush_cache): Same.
17056 (pointer_query::dump): Same.
17057 * pointer-query.h (class pointer_query): Remove cache argument from
17058 ctor. Change cache pointer to cache subobject member.
17059 * tree-ssa-strlen.cc: Remove pointer_query cache.
17060
17061 2022-02-03 Martin Sebor <msebor@redhat.com>
17062
17063 PR tree-optimization/104119
17064 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
17065 (format_none): Same.
17066 (format_percent): Same.
17067 (format_integer): Same.
17068 (format_floating): Same.
17069 (get_string_length): Same.
17070 (format_character): Same.
17071 (format_string): Same.
17072 (format_plain): Same.
17073 (format_directive): Same.
17074 (compute_format_length): Same.
17075 (handle_printf_call): Same.
17076 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
17077 get_maxbound.
17078 (get_range_strlen_phi): Same.
17079 (get_maxbound): New function.
17080 (strlen_pass::get_len_or_size): Adjust to parameter change.
17081 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
17082
17083 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
17084
17085 PR target/103686
17086 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
17087 test for !rs6000_fold_gimple.
17088 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
17089 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
17090
17091 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
17092
17093 PR target/95082
17094 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
17095 endianness for vclzlsbb and vctzlsbb.
17096 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
17097 default pattern and indicate a different pattern will be used for
17098 big endian.
17099 (VCLZLSBB_V4SI): Likewise.
17100 (VCLZLSBB_V8HI): Likewise.
17101 (VCTZLSBB_V16QI): Likewise.
17102 (VCTZLSBB_V4SI): Likewise.
17103 (VCTZLSBB_V8HI): Likewise.
17104
17105 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
17106
17107 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
17108 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
17109 from other files.
17110 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
17111 rs6000-builtin.cc.
17112 (cpu_supports_info): Likewise.
17113 (rs6000_type_string): Likewise.
17114 (altivec_expand_predicate_builtin): Likewise.
17115 (rs6000_htm_spr_icode): Likewise.
17116 (altivec_expand_vec_init_builtin): Likewise.
17117 (get_element_number): Likewise.
17118 (altivec_expand_vec_set_builtin): Likewise.
17119 (altivec_expand_vec_ext_builtin): Likewise.
17120 (rs6000_invalid_builtin): Likewise.
17121 (rs6000_fold_builtin): Likewise.
17122 (fold_build_vec_cmp): Likewise.
17123 (fold_compare_helper): Likewise.
17124 (map_to_integral_tree_type): Likewise.
17125 (fold_mergehl_helper): Likewise.
17126 (fold_mergeeo_helper): Likewise.
17127 (rs6000_builtin_valid_without_lhs): Likewise.
17128 (rs6000_builtin_is_supported): Likewise.
17129 (rs6000_gimple_fold_mma_builtin): Likewise.
17130 (rs6000_gimple_fold_builtin): Likewise.
17131 (rs6000_expand_ldst_mask): Likewise.
17132 (cpu_expand_builtin): Likewise.
17133 (elemrev_icode): Likewise.
17134 (ldv_expand_builtin): Likewise.
17135 (lxvrse_expand_builtin): Likewise.
17136 (lxvrze_expand_builtin): Likewise.
17137 (stv_expand_builtin): Likewise.
17138 (mma_expand_builtin): Likewise.
17139 (htm_spr_num): Likewise.
17140 (htm_expand_builtin): Likewise.
17141 (rs6000_expand_builtin): Likewise.
17142 (rs6000_vector_type): Likewise.
17143 (rs6000_init_builtins): Likewise. Remove initialization of
17144 builtin_mode_to_type entries.
17145 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
17146 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
17147 external declaration.
17148 (rs6000_builtin_md_vectorized_function): Likewise.
17149 (rs6000_builtin_reciprocal): Likewise.
17150 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
17151 (rs6000_builtin_types): Likewise.
17152 (builtin_mode_to_type): Remove.
17153 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
17154 static qualifier.
17155 (rs6000_builtin_md_vectorized_function): Likewise.
17156 (rs6000_builtin_reciprocal): Likewise.
17157 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
17158 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
17159
17160 2022-02-03 Richard Biener <rguenther@suse.de>
17161
17162 PR debug/104337
17163 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
17164 together via DECL_ABSTRACT_ORIGIN.
17165
17166 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
17167
17168 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
17169 message for RES_BITS case.
17170
17171 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
17172
17173 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
17174
17175 2022-02-03 Jakub Jelinek <jakub@redhat.com>
17176
17177 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
17178 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
17179
17180 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
17181
17182 * cfganal.cc (verify_marked_backedges): New.
17183 * cfganal.h (verify_marked_backedges): New.
17184 * gimple-range-path.cc (path_range_query::path_range_query):
17185 Verify freshness of back edges.
17186 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
17187 mark_dfs_back_edges.
17188 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
17189 path_range_query construction after backedges have been
17190 updated.
17191
17192 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
17193
17194 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
17195 VALL to VALL_F16.
17196
17197 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
17198
17199 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
17200 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
17201 of VALL_F16MOV.
17202
17203 2022-02-03 Martin Liska <mliska@suse.cz>
17204
17205 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
17206 Change subject and object in the error message.
17207 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
17208 Likewise.
17209
17210 2022-02-03 Martin Liska <mliska@suse.cz>
17211
17212 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
17213 Use the error message for i386 target.
17214
17215 2022-02-03 Jakub Jelinek <jakub@redhat.com>
17216
17217 PR tree-optimization/104334
17218 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
17219 and rh_range type to widest_int and subtract in widest_int. Remove
17220 ov_rh, ov_lh and sign vars, always perform comparisons as signed
17221 and use >, < and == operators for it.
17222
17223 2022-02-03 Martin Sebor <msebor@redhat.com>
17224
17225 * common.opt (-Wuse-after-free): Correct typos.
17226
17227 2022-02-02 David Malcolm <dmalcolm@redhat.com>
17228
17229 PR analyzer/104270
17230 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
17231 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
17232 -ftrivial-auto-var-init= doesn't suppress warnings.
17233
17234 2022-02-02 Martin Liska <mliska@suse.cz>
17235
17236 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
17237
17238 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
17239
17240 PR target/94372
17241 * config/or1k/linux.h (CPP_SPEC): Define.
17242
17243 2022-02-02 Tamar Christina <tamar.christina@arm.com>
17244
17245 PR tree-optimization/102819
17246 PR tree-optimization/103169
17247 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
17248 canonical order.
17249
17250 2022-02-02 Tamar Christina <tamar.christina@arm.com>
17251
17252 PR tree-optimization/102819
17253 PR tree-optimization/103169
17254 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
17255 canonical order.
17256 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
17257
17258 2022-02-02 Tamar Christina <tamar.christina@arm.com>
17259
17260 PR tree-optimization/102819
17261 PR tree-optimization/103169
17262 * doc/md.texi: Update docs for cfms, cfma.
17263 * tree-data-ref.h (same_data_refs): Accept optional offset.
17264 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
17265 patterns.
17266 (vect_normalize_conj_loc): Remove.
17267 (is_eq_or_top): Change to take two nodes.
17268 (enum _conj_status, compatible_complex_nodes_p,
17269 vect_validate_multiplication): New.
17270 (class complex_add_pattern, complex_add_pattern::matches,
17271 complex_add_pattern::recognize, class complex_mul_pattern,
17272 complex_mul_pattern::recognize, class complex_fms_pattern,
17273 complex_fms_pattern::recognize, class complex_operations_pattern,
17274 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
17275 new cache.
17276 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
17277 cache and use new validation code.
17278 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
17279 vect_analyze_slp): Pass along cache.
17280 (compatible_calls_p): Expose.
17281 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
17282 slp_compat_nodes_map_t): New.
17283 (class vect_pattern): Update signatures include new cache.
17284
17285 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
17286
17287 * config/cris/cris.cc (cris_preferred_reload_class): Reject
17288 "eliminated" registers and small-enough constants unless
17289 reloaded into a class that is a subset of GENERAL_REGS.
17290 * config/cris/cris.md (attribute "cpu_variant"): New.
17291 (attribute "enabled"): Conditionalize on a matching attribute
17292 cpu_variant, if specified.
17293 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
17294 memory, add cpu-variant-enabled variants for "r" alternatives on
17295 the far side of the "x" alternatives, preferring the "x" ones
17296 only for variants where MOF is present (in addition to SRP).
17297
17298 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
17299
17300 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
17301 extra cost for ALL_REGS.
17302
17303 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
17304
17305 * config/cris/constraints.md (define_register_constraint "b"): Now
17306 GENERAL_REGS.
17307 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
17308 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
17309 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
17310 and SPEC_GENNONACR_REGS.
17311 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
17312 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
17313
17314 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
17315
17316 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
17317 Conditionalize on (sub-)register operands or operand 1 being 0.
17318
17319 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
17320
17321 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
17322 (MUL_BUG_ASM_DEFAULT): New macro.
17323 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
17324 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
17325 accordingly.
17326
17327 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
17328
17329 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
17330 to 10 for AutoFDO.
17331
17332 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
17333
17334 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
17335
17336 2022-02-01 Andrew Pinski <apinski@marvell.com>
17337
17338 * doc/install.texi:
17339
17340 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
17341
17342 * config/s390/s390.cc (s390_code_end): Do not switch back to
17343 code section.
17344
17345 2022-02-01 Jakub Jelinek <jakub@redhat.com>
17346
17347 PR target/104323
17348 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
17349 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
17350 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
17351 GTY((user)) for struct bifdata and struct ovlddata. Instead add
17352 GTY((skip(""))) to members with pointer and enum types that don't need
17353 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
17354 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
17355 (write_extern_fntype, write_fntype): Remove.
17356 (write_fntype_init): Emit the fntype vars as automatic vars instead
17357 of file scope ones.
17358 (write_header_file): Don't iterate with write_extern_fntype.
17359 (write_init_file): Don't iterate with write_fntype. Don't emit
17360 gt_ggc_mx and gt_pch_nx definitions.
17361
17362 2022-02-01 Jason Merrill <jason@redhat.com>
17363
17364 * tree.h (struct tree_vec_map_cache_hasher): Move from...
17365 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
17366
17367 2022-02-01 Tom de Vries <tdevries@suse.de>
17368
17369 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
17370 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
17371 UNSPECV_UNIFORM_WARP_CHECK.
17372 (define_insn "nvptx_uniform_warp_check"): New define_insn.
17373
17374 2022-02-01 Tom de Vries <tdevries@suse.de>
17375
17376 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
17377 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
17378 UNSPECV_WARPSYNC.
17379 (define_insn "nvptx_warpsync"): New define_insn.
17380
17381 2022-02-01 Tom de Vries <tdevries@suse.de>
17382
17383 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
17384
17385 2022-02-01 Tom de Vries <tdevries@suse.de>
17386
17387 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
17388 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
17389 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
17390 insn for TARGET_PTX_6_0.
17391
17392 2022-02-01 Tom de Vries <tdevries@suse.de>
17393
17394 PR target/100428
17395 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
17396 insn.
17397
17398 2022-02-01 Tom de Vries <tdevries@suse.de>
17399
17400 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
17401 (define_insn "atomic_exchange<mode>")
17402 (define_insn "atomic_fetch_add<mode>")
17403 (define_insn "atomic_fetch_addsf")
17404 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
17405 if memory operands is frame-relative.
17406
17407 2022-02-01 Tom de Vries <tdevries@suse.de>
17408
17409 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
17410 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
17411 (VOID): New macro.
17412 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
17413 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
17414 NVPTX_BUILTIN_MEMBAR_CTA.
17415 (nvptx_lockfull_update): Add level parameter. Emit barriers.
17416 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
17417 nvptx_lockfull_update.
17418 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
17419 UNSPECV_MEMBAR_GL.
17420 (define_expand "nvptx_membar_gl"): New expand.
17421 (define_insn "*nvptx_membar_gl"): New insn.
17422
17423 2022-02-01 Martin Liska <mliska@suse.cz>
17424
17425 * doc/install.texi: Remove option for GCC < 4.8.
17426
17427 2022-02-01 Jakub Jelinek <jakub@redhat.com>
17428
17429 PR middle-end/104307
17430 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
17431 stmts to uses vector, just set vec_cond_expr_only to false for
17432 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
17433 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
17434 like non-VEC_COND_EXPRs.
17435
17436 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
17437
17438 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
17439 (VEC_BLENDV): Likewise.
17440 (VEC_BPERM): Likewise.
17441 (VEC_CFUGE): Likewise.
17442 (VEC_CIPHER_BE): Likewise.
17443 (VEC_CIPHERLAST_BE): Likewise.
17444 (VEC_CLRL): Likewise.
17445 (VEC_CLRR): Likewise.
17446 (VEC_CMPNEZ): Likewise.
17447 (VEC_CNTLZ): Likewise.
17448 (VEC_CNTLZM): Likewise.
17449 (VEC_CNTTZM): Likewise.
17450 (VEC_CNTLZ_LSBB): Likewise.
17451 (VEC_CNTM): Likewise.
17452 (VEC_CNTTZ): Likewise.
17453 (VEC_CNTTZ_LSBB): Likewise.
17454 (VEC_CONVERT_4F32_8F16): Likewise.
17455 (VEC_DIV): Likewise.
17456 (VEC_DIVE): Likewise.
17457 (VEC_EQV): Likewise.
17458 (VEC_EXPANDM): Likewise.
17459 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
17460 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
17461 (VEC_EXTRACTH): Likewise.
17462 (VEC_EXTRACTL): Likewise.
17463 (VEC_EXTRACTM): Likewise.
17464 (VEC_EXTRACT4B): Likewise.
17465 (VEC_EXTULX): Likewise.
17466 (VEC_EXTURX): Likewise.
17467 (VEC_FIRSTMATCHINDEX): Likewise.
17468 (VEC_FIRSTMACHOREOSINDEX): Likewise.
17469 (VEC_FIRSTMISMATCHINDEX): Likewise.
17470 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
17471 (VEC_GB): Likewise.
17472 (VEC_GENBM): Likewise.
17473 (VEC_GENHM): Likewise.
17474 (VEC_GENWM): Likewise.
17475 (VEC_GENDM): Likewise.
17476 (VEC_GENQM): Likewise.
17477 (VEC_GENPCVM): Likewise.
17478 (VEC_GNB): Likewise.
17479 (VEC_INSERTH): Likewise.
17480 (VEC_INSERTL): Likewise.
17481 (VEC_INSERT4B): Likewise.
17482 (VEC_LXVL): Likewise.
17483 (VEC_MERGEE): Likewise.
17484 (VEC_MERGEO): Likewise.
17485 (VEC_MOD): Likewise.
17486 (VEC_MSUB): Likewise.
17487 (VEC_MULH): Likewise.
17488 (VEC_NAND): Likewise.
17489 (VEC_NCIPHER_BE): Likewise.
17490 (VEC_NCIPHERLAST_BE): Likewise.
17491 (VEC_NEARBYINT): Likewise.
17492 (VEC_NMADD): Likewise.
17493 (VEC_ORC): Likewise.
17494 (VEC_PDEP): Likewise.
17495 (VEC_PERMX): Likewise.
17496 (VEC_PEXT): Likewise.
17497 (VEC_POPCNT): Likewise.
17498 (VEC_PARITY_LSBB): Likewise.
17499 (VEC_REPLACE_ELT): Likewise.
17500 (VEC_REPLACE_UN): Likewise.
17501 (VEC_REVB): Likewise.
17502 (VEC_RINT): Likewise.
17503 (VEC_RLMI): Likewise.
17504 (VEC_RLNM): Likewise.
17505 (VEC_SBOX_BE): Likewise.
17506 (VEC_SIGNEXTI): Likewise.
17507 (VEC_SIGNEXTLL): Likewise.
17508 (VEC_SIGNEXTQ): Likewise.
17509 (VEC_SLDB): Likewise.
17510 (VEC_SLV): Likewise.
17511 (VEC_SPLATI): Likewise.
17512 (VEC_SPLATID): Likewise.
17513 (VEC_SPLATI_INS): Likewise.
17514 (VEC_SQRT): Likewise.
17515 (VEC_SRDB): Likewise.
17516 (VEC_SRV): Likewise.
17517 (VEC_STRIL): Likewise.
17518 (VEC_STRIL_P): Likewise.
17519 (VEC_STRIR): Likewise.
17520 (VEC_STRIR_P): Likewise.
17521 (VEC_STXVL): Likewise.
17522 (VEC_TERNARYLOGIC): Likewise.
17523 (VEC_TEST_LSBB_ALL_ONES): Likewise.
17524 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
17525 (VEC_VEE): Likewise.
17526 (VEC_VES): Likewise.
17527 (VEC_VIE): Likewise.
17528 (VEC_VPRTYB): Likewise.
17529 (VEC_VSCEEQ): Likewise.
17530 (VEC_VSCEGT): Likewise.
17531 (VEC_VSCELT): Likewise.
17532 (VEC_VSCEUO): Likewise.
17533 (VEC_VSEE): Likewise.
17534 (VEC_VSES): Likewise.
17535 (VEC_VSIE): Likewise.
17536 (VEC_VSTDC): Likewise.
17537 (VEC_VSTDCN): Likewise.
17538 (VEC_VTDC): Likewise.
17539 (VEC_XL): Likewise.
17540 (VEC_XL_BE): Likewise.
17541 (VEC_XL_LEN_R): Likewise.
17542 (VEC_XL_SEXT): Likewise.
17543 (VEC_XL_ZEXT): Likewise.
17544 (VEC_XST): Likewise.
17545 (VEC_XST_BE): Likewise.
17546 (VEC_XST_LEN_R): Likewise.
17547 (VEC_XST_TRUNC): Likewise.
17548 (VEC_XXPERMDI): Likewise.
17549 (VEC_XXSLDWI): Likewise.
17550 (VEC_TSTSFI_EQ_DD): Likewise.
17551 (VEC_TSTSFI_EQ_TD): Likewise.
17552 (VEC_TSTSFI_GT_DD): Likewise.
17553 (VEC_TSTSFI_GT_TD): Likewise.
17554 (VEC_TSTSFI_LT_DD): Likewise.
17555 (VEC_TSTSFI_LT_TD): Likewise.
17556 (VEC_TSTSFI_OV_DD): Likewise.
17557 (VEC_TSTSFI_OV_TD): Likewise.
17558 (VEC_VADDCUQ): Likewise.
17559 (VEC_VADDECUQ): Likewise.
17560 (VEC_VADDEUQM): Likewise.
17561 (VEC_VADDUDM): Likewise.
17562 (VEC_VADDUQM): Likewise.
17563 (VEC_VBPERMQ): Likewise.
17564 (VEC_VCLZB): Likewise.
17565 (VEC_VCLZD): Likewise.
17566 (VEC_VCLZH): Likewise.
17567 (VEC_VCLZW): Likewise.
17568 (VEC_VCTZB): Likewise.
17569 (VEC_VCTZD): Likewise.
17570 (VEC_VCTZH): Likewise.
17571 (VEC_VCTZW): Likewise.
17572 (VEC_VEEDP): Likewise.
17573 (VEC_VEESP): Likewise.
17574 (VEC_VESDP): Likewise.
17575 (VEC_VESSP): Likewise.
17576 (VEC_VIEDP): Likewise.
17577 (VEC_VIESP): Likewise.
17578 (VEC_VPKSDSS): Likewise.
17579 (VEC_VPKSDUS): Likewise.
17580 (VEC_VPKUDUM): Likewise.
17581 (VEC_VPKUDUS): Likewise.
17582 (VEC_VPOPCNT): Likewise.
17583 (VEC_VPOPCNTB): Likewise.
17584 (VEC_VPOPCNTD): Likewise.
17585 (VEC_VPOPCNTH): Likewise.
17586 (VEC_VPOPCNTW): Likewise.
17587 (VEC_VPRTYBD): Likewise.
17588 (VEC_VPRTYBQ): Likewise.
17589 (VEC_VPRTYBW): Likewise.
17590 (VEC_VRLD): Likewise.
17591 (VEC_VSLD): Likewise.
17592 (VEC_VSRAD): Likewise.
17593 (VEC_VSRD): Likewise.
17594 (VEC_VSTDCDP): Likewise.
17595 (VEC_VSTDCNDP): Likewise.
17596 (VEC_VSTDCNQP): Likewise.
17597 (VEC_VSTDCNSP): Likewise.
17598 (VEC_VSTDCQP): Likewise.
17599 (VEC_VSTDCSP): Likewise.
17600 (VEC_VSUBECUQ): Likewise.
17601 (VEC_VSUBEUQM): Likewise.
17602 (VEC_VSUBUDM): Likewise.
17603 (VEC_VSUBUQM): Likewise.
17604 (VEC_VTDCDP): Likewise.
17605 (VEC_VTDCSP): Likewise.
17606 (VEC_VUPKHSW): Likewise.
17607 (VEC_VUPKLSW): Likewise.
17608
17609 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
17610
17611 PR rtl-optimization/101260
17612 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
17613 copy_regno.
17614
17615 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
17616
17617 PR middle-end/95115
17618 * fold-const.cc (const_binop): Do not fold NaN result from
17619 non-NaN operands.
17620
17621 2022-02-01 Tom de Vries <tdevries@suse.de>
17622
17623 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
17624 -ftree-loop-distribute-patterns.
17625 (loop_distribution::execute): Don't call transform_reduction_loop for
17626 -fno-tree-loop-distribute-patterns.
17627
17628 2022-01-31 Andrew Pinski <apinski@marvell.com>
17629
17630 * fold-const.h (operand_compare::operand_equal_p):
17631 Fix comment about OEP_* flags.
17632
17633 2022-01-31 Jakub Jelinek <jakub@redhat.com>
17634
17635 PR target/104298
17636 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
17637 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
17638 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
17639 if not already defined.
17640
17641 2022-01-31 Martin Sebor <msebor@redhat.com>
17642
17643 PR middle-end/104232
17644 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
17645 Handle PHIs. Add a synonymous overload.
17646 (pass_waccess::check_pointer_uses): Call pointers_related_p.
17647
17648 2022-01-31 Richard Biener <rguenther@suse.de>
17649
17650 PR tree-optimization/100499
17651 * fold-const.cc (multiple_of_p): Pass the correct type of
17652 the expression to the recursive invocation of multiple_of_p
17653 for conversions and use CASE_CONVERT.
17654
17655 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
17656
17657 PR target/104189
17658 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
17659
17660 2022-01-31 Richard Biener <rguenther@suse.de>
17661
17662 PR tree-optimization/100499
17663 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
17664 on poly-ints instead of multiple_of_p.
17665 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
17666 (non_rewritable_mem_ref_base): Likewise.
17667 (non_rewritable_lvalue_p): Likewise.
17668 (execute_update_addresses_taken): Likewise.
17669
17670 2022-01-29 Jakub Jelinek <jakub@redhat.com>
17671 Andrew Pinski <apinski@marvell.com>
17672
17673 PR tree-optimization/104279
17674 PR tree-optimization/104280
17675 PR tree-optimization/104281
17676 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
17677 boolean_type_node and convert to type. Formatting fixes.
17678
17679 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
17680
17681 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
17682
17683 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
17684
17685 PR tree-optimization/103514
17686 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
17687 (a & b) == (a ^ b) -> !(a | b): New optimization.
17688
17689 2022-01-28 Marek Polacek <polacek@redhat.com>
17690
17691 * doc/invoke.texi: Update -Wbidi-chars documentation.
17692
17693 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
17694
17695 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
17696
17697 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
17698
17699 PR tree-optimization/95424
17700 * match.pd: Simplify 1 / X where X is an integer.
17701
17702 2022-01-28 Jakub Jelinek <jakub@redhat.com>
17703
17704 PR tree-optimization/104263
17705 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
17706 cfun->can_throw_non_call_exceptions && cfun->eh test whether
17707 last non-debug stmt in the bb is store_valid_for_store_merging_p
17708 rather than last stmt.
17709
17710 2022-01-28 Martin Liska <mliska@suse.cz>
17711
17712 * diagnostic.cc (diagnostic_action_after_output): Remove extra
17713 newline.
17714
17715 2022-01-28 Martin Liska <mliska@suse.cz>
17716
17717 * config/rs6000/host-darwin.cc (segv_crash_handler):
17718 Do not use leading capital letter.
17719 (segv_handler): Likewise.
17720 * ipa-sra.cc (verify_splitting_accesses): Likewise.
17721 * varasm.cc (get_section): Likewise.
17722
17723 2022-01-28 Richard Biener <rguenther@suse.de>
17724
17725 PR tree-optimization/104267
17726 * tree-vect-stmts.cc (vectorizable_call): Properly use the
17727 per-argument determined vector type for externals and
17728 invariants.
17729
17730 2022-01-28 Richard Biener <rguenther@suse.de>
17731
17732 PR tree-optimization/104263
17733 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
17734 Purge edges also when !cfun->has_nonlocal_label
17735 and !cfun->calls_setjmp.
17736
17737 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
17738
17739 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
17740 attributes.
17741
17742 2022-01-28 Jakub Jelinek <jakub@redhat.com>
17743
17744 PR lto/104237
17745 * cfgrtl.cc (loc_equal): New function.
17746 (unique_locus_on_edge_between_p): Use it.
17747
17748 2022-01-28 Richard Biener <rguenther@suse.de>
17749
17750 * cfganal.h (mark_dfs_back_edges): Provide API with struct
17751 function argument.
17752 * cfganal.cc (mark_dfs_back_edges): Take a struct function
17753 to work on, add a wrapper passing cfun.
17754 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
17755 uses with fun which is already passed.
17756 (draw_cfg_edges): Likewise.
17757 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
17758 for fun != cfun.
17759
17760 2022-01-27 Patrick Palka <ppalka@redhat.com>
17761
17762 PR c++/99895
17763 * tree.cc (build_call_vec): Add const to second parameter.
17764 * tree.h (build_call_vec): Likewise.
17765
17766 2022-01-27 Martin Liska <mliska@suse.cz>
17767
17768 PR web/104254
17769 * diagnostic.cc (diagnostic_initialize):
17770 Initialize report_bug flag.
17771 (diagnostic_action_after_output):
17772 Explain that -freport-bug option can be used for pre-processed
17773 file creation. Make the message shorter.
17774 (error_recursion): Rename Internal to internal.
17775 * diagnostic.h (struct diagnostic_context): New field.
17776 * opts.cc (common_handle_option): Init the field here.
17777
17778 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
17779
17780 PR target/103702
17781 * config/rs6000/rs6000.cc
17782 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
17783 assertion with early return.
17784
17785 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
17786
17787 PR middle-end/103642
17788 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
17789 for non-pointer or non-reference-to-pointer cases.
17790
17791 2022-01-27 Jakub Jelinek <jakub@redhat.com>
17792
17793 PR tree-optimization/104196
17794 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
17795 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
17796 return NULL and emit needed stmts before and after stmt.
17797 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
17798 pick as operand_entry that will hold the merged test the one feeding
17799 earliest condition, ensure that by swapping range->idx with some
17800 other range's idx if needed. If seq is non-NULL, don't actually swap
17801 it but instead rewrite stmts with undefined overflow in between
17802 the two locations.
17803 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
17804 corresponding condition even if they have non-NULL ops[]->op.
17805 Formatting fix.
17806
17807 2022-01-26 Jakub Jelinek <jakub@redhat.com>
17808
17809 PR target/104239
17810 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
17811 asm.
17812 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
17813 before for loop instead of for init clause.
17814 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
17815
17816 2022-01-26 Jakub Jelinek <jakub@redhat.com>
17817
17818 PR target/104239
17819 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
17820 _X86INTRIN_H_INCLUDED and adjust #error wording.
17821 * config/rs6000/bmi2intrin.h: Likewise.
17822
17823 2022-01-26 Jakub Jelinek <jakub@redhat.com>
17824
17825 PR debug/104194
17826 * dwarf2out.cc (long_double_as_float128): New function.
17827 (modified_type_die): For powerpc64le IEEE 754 quad long double
17828 and complex long double emit those as DW_TAG_typedef to
17829 _Float128 or complex _Float128 base type.
17830
17831 2022-01-26 Marek Polacek <polacek@redhat.com>
17832
17833 PR target/104213
17834 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
17835 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
17836
17837 2022-01-26 Martin Liska <mliska@suse.cz>
17838
17839 * ipa-modref-tree.cc (modref_access_node::update):
17840 Remove "--param param=foo" with "--param foo".
17841 (modref_access_node::insert): Likewise.
17842 (modref_access_node::insert_kill): Likewise.
17843 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
17844 (struct modref_base_node): Likewise.
17845 (struct modref_tree): Likewise.
17846
17847 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
17848
17849 PR target/94193
17850 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
17851 predicate check.
17852
17853 2022-01-25 Martin Sebor <msebor@redhat.com>
17854
17855 PR tree-optimization/104203
17856 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
17857 TV_WARN_ACCESS.
17858 * pointer-query.cc (access_ref::merge_ref): Change return type.
17859 Convert failure to a conservative success.
17860 (access_ref::get_ref): Adjust to the change above. Short-circuit
17861 PHI evaluation after first failure turned into conservative success.
17862 * pointer-query.h (access_ref::merge_ref): Change return type.
17863 * timevar.def (TV_WARN_ACCESS): New timer variable.
17864
17865 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
17866
17867 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
17868
17869 2022-01-25 Richard Biener <rguenther@suse.de>
17870
17871 PR tree-optimization/104214
17872 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
17873 stronger guarantees for relational pointer compares when
17874 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
17875 BASE0 + STEP0 - STEP1 cmp BASE1.
17876
17877 2022-01-25 Jakub Jelinek <jakub@redhat.com>
17878
17879 PR target/104172
17880 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
17881 declare.
17882 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
17883 ieee128_mangling_gcc_8_1): Remove.
17884 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
17885 (rs6000_mangle_type): Return "u9__ieee128" instead of
17886 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
17887 (rs6000_globalize_decl_name): Remove.
17888 * config/rs6000/rs6000-call.cc (init_cumulative_args,
17889 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
17890
17891 2022-01-24 Martin Sebor <msebor@redhat.com>
17892
17893 * pointer-query.cc (pointer_query::dump): Remove duplicate
17894 block.
17895
17896 2022-01-24 Marek Polacek <polacek@redhat.com>
17897
17898 PR preprocessor/104030
17899 * doc/invoke.texi: Update documentation for -Wbidi-chars.
17900
17901 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
17902
17903 PR target/94193
17904 * builtins.cc (expand_builtin_fegetround): New function.
17905 (expand_builtin_feclear_feraise_except): New function.
17906 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
17907 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
17908 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
17909 (feclearexceptsi): New Pattern.
17910 (feraiseexceptsi): New Pattern.
17911 * doc/extend.texi: Add a new introductory paragraph about the
17912 new builtins.
17913 * doc/md.texi: (fegetround@var{m}): Document new optab.
17914 (feclearexcept@var{m}): Document new optab.
17915 (feraiseexcept@var{m}): Document new optab.
17916 * optabs.def (fegetround_optab): New optab.
17917 (feclearexcept_optab): New optab.
17918 (feraiseexcept_optab): New optab.
17919
17920 2022-01-24 Richard Biener <rguenther@suse.de>
17921 Jiufu Guo <guojiufu@linux.ibm.com>
17922
17923 PR tree-optimization/100740
17924 PR tree-optimization/101508
17925 PR tree-optimization/101972
17926 PR tree-optimization/102131
17927 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
17928 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
17929 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
17930
17931 2022-01-24 Jakub Jelinek <jakub@redhat.com>
17932
17933 PR sanitizer/104158
17934 * opt-functions.awk (var_set): Handle EnumBitSet property.
17935 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
17936 specified.
17937 * opts.h (enum cl_enum_var_value): New type.
17938 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
17939 Handle CLEV_BITSET.
17940 (cmdline_handle_error): Handle CLEV_BITSET.
17941 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
17942 * doc/options.texi (EnumBitSet): Document.
17943 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
17944 EnumSet.
17945 (trace-pc, trace-cmp): Drop Set properties.
17946
17947 2022-01-24 Jakub Jelinek <jakub@redhat.com>
17948
17949 PR sanitizer/104158
17950 * common.opt (flag_sanitize_coverage): Remove Variable entry.
17951 (fsanitize-coverage=): Remove RejectNegative property, add
17952 Var(flag_sanitize_coverage) and EnumSet properties.
17953 (trace-pc): Add Set(1) property.
17954 (trace-cmp): Add Set(2) property.
17955 * opts.cc (common_handle_option): Don't handle
17956 OPT_fsanitize_coverage_.
17957
17958 2022-01-24 Jakub Jelinek <jakub@redhat.com>
17959
17960 PR sanitizer/104158
17961 * opt-functions.awk (var_set): Handle EnumSet property.
17962 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
17963 specified.
17964 * opt-read.awk: Handle Set property.
17965 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
17966 (struct cl_decoded_option): Mention enum in value description.
17967 Add mask member.
17968 (set_option): Add mask argument defaulted to 0.
17969 * opts.cc (test_enum_sets): New function.
17970 (opts_cc_tests): Call it.
17971 * opts-common.cc (enum_arg_to_value): Change return argument
17972 from bool to int, on success return index into the cl_enum_arg
17973 array, on failure -1. Add len argument, if non-0, use strncmp
17974 instead of strcmp.
17975 (opt_enum_arg_to_value): Adjust caller.
17976 (decode_cmdline_option): Handle EnumSet represented as
17977 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
17978 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
17979 (handle_option): Pass decoded->mask to set_options last argument.
17980 (generate_option): Clear decoded->mask.
17981 (generate_option_input_file): Likewise.
17982 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
17983 (set_option): Add mask argument, use it for CLVC_ENUM.
17984 (control_warning_option): Adjust enum_arg_to_value caller.
17985 * doc/options.texi: Document Set and EnumSet properties.
17986
17987 2022-01-24 Jakub Jelinek <jakub@redhat.com>
17988
17989 PR bootstrap/104170
17990 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17991 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17992 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17993 using OPTION_*_P macros.
17994 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17995 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17996 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17997 using OPTION_*_P macros.
17998 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17999 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
18000 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
18001 using OPTION_*_P macros.
18002 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
18003 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
18004 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
18005 using OPTION_*_P macros.
18006 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
18007 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
18008 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
18009 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
18010 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
18011 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
18012 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
18013 otherwise assume if (true).
18014
18015 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
18016
18017 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
18018 Skip zicsr and zifencei if I-ext is 2.0.
18019
18020 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
18021
18022 * config.gcc: Modify default isa_spec version.
18023
18024 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
18025
18026 PR tree-optimization/102087
18027 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
18028 Correct PLUS result type.
18029
18030 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
18031
18032 PR target/104188
18033 * config/i386/predicates.md (bcst_mem_operand): Also check mode
18034 of memory broadcast.
18035
18036 2022-01-23 Andrew Pinski <apinski@marvell.com>
18037
18038 PR target/64821
18039 * config/aarch64/aarch64-builtins.cc
18040 (aarch64_general_gimple_fold_builtin): Handle
18041 __builtin_aarch64_sqrt* and simplify into SQRT internal
18042 function.
18043
18044 2022-01-22 Jakub Jelinek <jakub@redhat.com>
18045
18046 PR other/104176
18047 * opts-global.cc (handle_common_deferred_options): Quote
18048 --enable-plugin in diagnostics to avoid -Werror=format-diag.
18049
18050 2022-01-21 Michael Meissner <meissner@the-meissners.org>
18051
18052 PR target/104136
18053 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
18054 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
18055 * config/rs6000/rs6000.md (prefixed attribute): Delete section
18056 that sets the prefixed attribute for xxspltiw, xxspltidp, and
18057 xxsplti32dx instructions.
18058 (movsf_hardfloat): Explicitly set the prefixed attribute
18059 when xxspltiw and xxspltidp instructions are generated.
18060 (mov<mode>_hardfloat32): Likewise.
18061 (mov<mode>_hardfloat64): Likewise.
18062 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
18063 prefixed attribute for xxspltiw and xxspltidp instructions.
18064 (vsx_mov<mode>_32bit): Likewise.
18065
18066 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
18067
18068 PR bootstrap/104170
18069 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
18070 Return true only on glibc.
18071 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
18072 Revert commit c163647ffbc.
18073 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
18074
18075 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
18076
18077 * common/config/s390/s390-common.cc (s390_supports_split_stack):
18078 Only support split-stack on glibc targets.
18079 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
18080 * config/i386/gnu.h (defined): Ditto.
18081
18082 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
18083
18084 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
18085 vector float and vector double.
18086
18087 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
18088
18089 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
18090 Fix mention of ifunc in string.
18091
18092 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
18093
18094 PR middle-end/104140
18095 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
18096 operands of the widening multiplication are either both signed or
18097 both unsigned, and abort the conversion if mismatched.
18098 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
18099 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
18100 signedness.
18101 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
18102 integer types with the same precision and signedness.
18103 (WIDEN_MULT_EXPR): Document that operands must have integer types
18104 with the same precision, but possibly differing signedness.
18105 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
18106 riscv_current_subset_list returning a NULL pointer (empty list).
18107
18108 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
18109
18110 PR target/103676
18111 * ira.h (struct target_ira): Add member
18112 x_ira_exclude_class_mode_regs.
18113 (ira_exclude_class_mode_regs): New macro.
18114 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
18115 move from here ...
18116 * lra-int.h: ... to here.
18117 (lra_create_new_reg_with_unique_value): Add arg
18118 exclude_start_hard_regs.
18119 (class lra_reg): Add member exclude_start_hard_regs.
18120 * lra-assigns.cc (find_hard_regno_for_1): Setup
18121 impossible_start_hard_regs from exclude_start_hard_regs.
18122 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
18123 it lra_create_new_reg[_with_unique_value].
18124 (match_reload): Ditto.
18125 (check_and_process_move): Pass NULL
18126 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
18127 (goal_alt_exclude_start_hard_regs): New static variable.
18128 (process_addr_reg, simplify_operand_subreg): Pass NULL
18129 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
18130 and get_reload_reg.
18131 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
18132 Use this_alternative_exclude_start_hard_regs additionally to find
18133 winning operand alternative.
18134 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
18135 exclude_start_hard_regs to lra_create_new_reg.
18136 (process_address_1, emit_inc): Ditto.
18137 (curr_insn_transform): Pass exclude_start_hard_regs value to
18138 lra_create_new_reg, get_reload_reg, match_reload.
18139 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
18140 to lra_create_new_reg.
18141 (process_invariant_for_inheritance): Ditto.
18142 * lra-remat.cc (update_scratch_ops): Ditto.
18143 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
18144 exclude_start_hard_regs. Setup the corresponding member of
18145 lra reg info.
18146 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
18147 to lra_create_new_reg_with_unique_value.
18148 (initialize_lra_reg_info_element): Initialize member
18149 exclude_start_hard_regs.
18150 (get_scratch_reg): Pass NULL to lra_create_new_reg.
18151 * ira.cc (setup_prohibited_class_mode_regs): Rename to
18152 setup_prohibited_and_exclude_class_mode_regs and calculate
18153 ira_exclude_class_mode_regs.
18154
18155 2022-01-21 Martin Liska <mliska@suse.cz>
18156
18157 * configure.ac: Detect ld_is_mold and use it for
18158 comdat_group=yes and gcc_cv_ld_hidden=yes.
18159 * configure: Regenerate.
18160
18161 2022-01-21 Richard Biener <rguenther@suse.de>
18162
18163 PR tree-optimization/100089
18164 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
18165 of if-converted loops with unvectorized COND_EXPRs for
18166 all but the unlimited cost models.
18167
18168 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
18169
18170 * config/arm/arm-opts.h (enum stack_protector_guard): New.
18171 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
18172 New.
18173 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
18174 (arm_option_override_internal): Handle and put in error checks.
18175 for stack protector guard options.
18176 (arm_option_reconfigure_globals): Likewise.
18177 (arm_stack_protect_tls_canary_mem): New.
18178 (arm_stack_protect_guard): New.
18179 * config/arm/arm.md (stack_protect_set): New.
18180 (stack_protect_set_tls): Likewise.
18181 (stack_protect_test): Likewise.
18182 (stack_protect_test_tls): Likewise.
18183 (reload_tp_hard): Likewise.
18184 * config/arm/arm.opt (-mstack-protector-guard): New
18185 (-mstack-protector-guard-offset): New.
18186 * doc/invoke.texi: Document new options.
18187
18188 2022-01-21 Richard Biener <rguenther@suse.de>
18189
18190 PR tree-optimization/104156
18191 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
18192 Collect and reset debug stmts with out-of-loop uses when
18193 hoisting guards.
18194 (find_loop_guard): Adjust.
18195 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
18196 (used_outside_loop_p): Push debug uses to a vector of
18197 debug stmts to reset.
18198 (hoist_guard): Adjust -fopt-info category.
18199
18200 2022-01-21 Richard Biener <rguenther@suse.de>
18201
18202 PR tree-optimization/104152
18203 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
18204 can_duplicate_and_interleave_p check.
18205
18206 2022-01-21 Jakub Jelinek <jakub@redhat.com>
18207
18208 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
18209 Avoid passing var to warning_at when the format string doesn't
18210 refer to it.
18211
18212 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
18213
18214 PR tree-optimization/103721
18215 * gimple-range-path.cc
18216 (path_range_query::relations_may_be_invalidated): New.
18217 (path_range_query::compute_ranges_in_block): Reset relations if
18218 they may be invalidated.
18219 (path_range_query::maybe_register_phi_relation): Exit if relations
18220 may be invalidated on incoming edge.
18221 (path_range_query::compute_phi_relations): Pass incoming PHI edge
18222 to maybe_register_phi_relation.
18223 * gimple-range-path.h (relations_may_be_invalidated): New.
18224 (maybe_register_phi_relation): Pass edge instead of tree.
18225 * tree-ssa-threadbackward.cc (back_threader::back_threader):
18226 Mark DFS edges.
18227 * value-relation.cc (path_oracle::path_oracle): Call
18228 mark_dfs_back_edges.
18229 (path_oracle::register_relation): Add SSA names to m_registered
18230 bitmap.
18231 (path_oracle::reset_path): Clear m_registered bitmap.
18232 * value-relation.h (path_oracle::set_root_oracle): New.
18233
18234 2022-01-21 Jakub Jelinek <jakub@redhat.com>
18235
18236 PR rtl-optimization/102478
18237 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
18238 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
18239 would be needed.
18240
18241 2022-01-20 Richard Biener <rguenther@suse.de>
18242
18243 PR middle-end/100786
18244 * gimple-fold.cc (get_symbol_constant_value): Only return
18245 values of compatible type to the symbol.
18246
18247 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
18248
18249 * value-relation.cc (relation_oracle::valid_equivs): Query and add
18250 if valid members of a set.
18251 (equiv_oracle::register_equiv): Call valid_equivs rather than
18252 bitmap direct operations.
18253 (path_oracle::register_equiv): Ditto.
18254 * value-relation.h (relation_oracle::valid_equivs): New prototype.
18255
18256 2022-01-20 Richard Biener <rguenther@suse.de>
18257
18258 PR target/100784
18259 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
18260 LHS before folding __builtin_ia32_shufpd and friends.
18261
18262 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
18263
18264 * config/arm/crypto.md (aes_op_protect): Allow moves from core
18265 registers and from memory.
18266 (aes_op_protect_misalign_load): New pattern.
18267 (aes_op_protect_neon_vld1v16qi): New pattern.
18268
18269 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
18270
18271 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
18272 New pattern.
18273 (aarch32_crypto_aese_fused_protected): Likewise.
18274 (aarch32_crypto_aesd_fused_protected): Likewise.
18275
18276 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
18277
18278 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
18279 to define_expand. Add mitigation for the Cortex-A AES erratum
18280 when enabled.
18281 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
18282 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
18283 (aes_op_protect): New pattern.
18284 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
18285
18286 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
18287
18288 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
18289 (ALL_QUIRKS): Add it.
18290 (cortex-a57, cortex-a72): Enable it.
18291 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
18292 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
18293 option.
18294 (mfix-cortex-a72-aes-1655431): New option alias.
18295 * config/arm/arm.cc (arm_option_override): Handle default settings
18296 for AES erratum switch.
18297 * doc/invoke.texi (Arm Options): Document new options.
18298
18299 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
18300
18301 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
18302 <crypto_mode> rather than hard-coding the mode.
18303 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
18304 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
18305 (*aarch32_crypto_aese_fused): Likewise.
18306 (*aarch32_crypto_aesd_fused): Likewise.
18307 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
18308 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
18309 (crypto_sha1h_lb): Likewise.
18310 (crypto_vmullp64): Likewise.
18311 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
18312 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
18313
18314 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
18315
18316 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
18317 iterator to pattern name to disambiguate.
18318 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
18319 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
18320 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
18321 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
18322 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
18323
18324 2022-01-20 Martin Liska <mliska@suse.cz>
18325
18326 PR bootstrap/104135
18327 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
18328 * rtl.cc: Partially disable -Wformat-diag for RTL checking
18329 error messages.
18330
18331 2022-01-20 Jakub Jelinek <jakub@redhat.com>
18332
18333 PR debug/103874
18334 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
18335 block_num > 0, index entry even if !have_multiple_function_sections.
18336
18337 2022-01-20 liuhongt <hongtao.liu@intel.com>
18338
18339 PR target/103771
18340 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
18341 integral mode mask pack by multi steps which takes
18342 vec_pack_sbool_trunc_optab as start when elements number is
18343 less than BITS_PER_UNITS.
18344
18345 2022-01-20 Richard Biener <rguenther@suse.de>
18346
18347 PR tree-optimization/104114
18348 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
18349 single element vector decomposition.
18350
18351 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
18352
18353 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
18354 (noce_convert_multiple_sets): Call function a second time if we can
18355 improve the first try.
18356
18357 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
18358
18359 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
18360 reversed comparison.
18361 (try_emit_cmove_seq): New function to facilitate creating a cmov
18362 sequence.
18363 (noce_convert_multiple_sets): Create two sequences and use the less
18364 expensive one.
18365
18366 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
18367
18368 * rtl.h (struct rtx_comparison): New struct that holds an rtx
18369 comparison.
18370 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
18371 single parameters.
18372 (rs6000_emit_swsqrt): Likewise.
18373 * expmed.cc (expand_sdiv_pow2): Likewise.
18374 (emit_store_flag): Likewise.
18375 * expr.cc (expand_cond_expr_using_cmove): Likewise.
18376 (expand_expr_real_2): Likewise.
18377 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
18378 parameters.
18379 * optabs.cc (emit_conditional_move_1): New function.
18380 (expand_doubleword_shift_condmove): Use struct.
18381 (emit_conditional_move): Use struct and allow to call directly
18382 without going through preparation steps.
18383 * optabs.h (emit_conditional_move): Use struct.
18384
18385 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
18386
18387 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
18388 (noce_process_if_block): Use potential costs.
18389
18390 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
18391
18392 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
18393 (bb_ok_for_noce_convert_multiple_sets): Likewise.
18394
18395 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
18396
18397 * ifcvt.cc (need_cmov_or_rewire): New function.
18398 (noce_convert_multiple_sets): Call it.
18399
18400 2022-01-19 David Malcolm <dmalcolm@redhat.com>
18401
18402 * attribs.cc (attribute_c_tests): Rename to...
18403 (attribs_cc_tests): ...this.
18404 * bitmap.cc (bitmap_c_tests): Rename to...
18405 (bitmap_cc_tests): ...this.
18406 * cgraph.cc (cgraph_c_finalize): Rename to...
18407 (cgraph_cc_finalize): ...this.
18408 (cgraph_c_tests): Rename to...
18409 (cgraph_cc_tests): ...this.
18410 * cgraph.h (cgraph_c_finalize): Rename to...
18411 (cgraph_cc_finalize): ...this.
18412 (cgraphunit_c_finalize): Rename to...
18413 (cgraphunit_cc_finalize): ...this.
18414 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
18415 (cgraphunit_cc_finalize): ...this.
18416 * convert.cc (convert_c_tests): Rename to...
18417 (convert_cc_tests): ...this.
18418 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
18419 (dbgcnt_cc_tests): ...this.
18420 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
18421 (diagnostic_show_locus_cc_tests): ...this.
18422 * diagnostic.cc (diagnostic_c_tests): Rename to...
18423 (diagnostic_cc_tests): ...this.
18424 * dumpfile.cc (dumpfile_c_tests): Rename to...
18425 (dumpfile_cc_tests): ...this.
18426 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
18427 (dwarf2out_cc_finalize): ...this.
18428 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
18429 (dwarf2out_cc_finalize): ...this.
18430 * edit-context.cc (edit_context_c_tests): Rename to...
18431 (edit_context_cc_tests): ...this.
18432 * et-forest.cc (et_forest_c_tests): Rename to...
18433 (et_forest_cc_tests): ...this.
18434 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
18435 (fibonacci_heap_cc_tests): ...this.
18436 * fold-const.cc (fold_const_c_tests): Rename to...
18437 (fold_const_cc_tests): ...this.
18438 * function-tests.cc (function_tests_c_tests): Rename to...
18439 (function_tests_cc_tests): ...this.
18440 * gcse.cc (gcse_c_finalize): Rename to...
18441 (gcse_cc_finalize): ...this.
18442 * gcse.h (gcse_c_finalize): Rename to...
18443 (gcse_cc_finalize): ...this.
18444 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
18445 (ggc_tests_cc_tests): ...this.
18446 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
18447 (store_merging_cc_tests): ...this.
18448 * gimple.cc (gimple_c_tests): Rename to...
18449 (gimple_cc_tests): ...this.
18450 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
18451 (hash_map_tests_cc_tests): ...this.
18452 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
18453 (hash_set_tests_cc_tests): ...this.
18454 * input.cc (input_c_tests): Rename to...
18455 (input_cc_tests): ...this.
18456 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
18457 (ipa_cp_cc_finalize): ...this.
18458 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
18459 (ipa_fnsummary_cc_finalize): ...this.
18460 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
18461 (ipa_fnsummary_cc_finalize): ...this.
18462 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
18463 (ipa_modref_tree_cc_tests): ...this.
18464 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
18465 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
18466 (ipa_modref_cc_finalize): ...this.
18467 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
18468 (ipa_modref_cc_finalize): ...this.
18469 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
18470 (ipa_cp_cc_finalize): ...this.
18471 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
18472 (ipa_reference_cc_finalize): ...this.
18473 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
18474 (ipa_reference_cc_finalize): ...this.
18475 * ira-costs.cc (ira_costs_c_finalize): Rename to...
18476 (ira_costs_cc_finalize): ...this.
18477 * ira.h (ira_costs_c_finalize): Rename to...
18478 (ira_costs_cc_finalize): ...this.
18479 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
18480 (opt_suggestions_cc_tests): ...this.
18481 * opts.cc (opts_c_tests): Rename to...
18482 (opts_cc_tests): ...this.
18483 * predict.cc (predict_c_tests): Rename to...
18484 (predict_cc_tests): ...this.
18485 * pretty-print.cc (pretty_print_c_tests): Rename to...
18486 (pretty_print_cc_tests): ...this.
18487 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
18488 (read_rtl_function_cc_tests): ...this.
18489 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
18490 (rtl_tests_cc_tests): ...this.
18491 * sbitmap.cc (sbitmap_c_tests): Rename to...
18492 (sbitmap_cc_tests): ...this.
18493 * selftest-run-tests.cc (selftest::run_tests): Update calls for
18494 _c_ to _cc_ function renamings; fix names of attribs and
18495 opt-suggestions tests.
18496 * selftest.cc (selftest_c_tests): Rename to...
18497 (selftest_cc_tests): ...this.
18498 * selftest.h (attribute_c_tests): Rename to...
18499 (attribs_cc_tests): ...this.
18500 (bitmap_c_tests): Rename to...
18501 (bitmap_cc_tests): ...this.
18502 (cgraph_c_tests): Rename to...
18503 (cgraph_cc_tests): ...this.
18504 (convert_c_tests): Rename to...
18505 (convert_cc_tests): ...this.
18506 (diagnostic_c_tests): Rename to...
18507 (diagnostic_cc_tests): ...this.
18508 (diagnostic_show_locus_c_tests): Rename to...
18509 (diagnostic_show_locus_cc_tests): ...this.
18510 (dumpfile_c_tests): Rename to...
18511 (dumpfile_cc_tests): ...this.
18512 (edit_context_c_tests): Rename to...
18513 (edit_context_cc_tests): ...this.
18514 (et_forest_c_tests): Rename to...
18515 (et_forest_cc_tests): ...this.
18516 (fibonacci_heap_c_tests): Rename to...
18517 (fibonacci_heap_cc_tests): ...this.
18518 (fold_const_c_tests): Rename to...
18519 (fold_const_cc_tests): ...this.
18520 (function_tests_c_tests): Rename to...
18521 (function_tests_cc_tests): ...this.
18522 (ggc_tests_c_tests): Rename to...
18523 (ggc_tests_cc_tests): ...this.
18524 (gimple_c_tests): Rename to...
18525 (gimple_cc_tests): ...this.
18526 (hash_map_tests_c_tests): Rename to...
18527 (hash_map_tests_cc_tests): ...this.
18528 (hash_set_tests_c_tests): Rename to...
18529 (hash_set_tests_cc_tests): ...this.
18530 (input_c_tests): Rename to...
18531 (input_cc_tests): ...this.
18532 (opts_c_tests): Rename to...
18533 (opts_cc_tests): ...this.
18534 (predict_c_tests): Rename to...
18535 (predict_cc_tests): ...this.
18536 (pretty_print_c_tests): Rename to...
18537 (pretty_print_cc_tests): ...this.
18538 (read_rtl_function_c_tests): Rename to...
18539 (read_rtl_function_cc_tests): ...this.
18540 (rtl_tests_c_tests): Rename to...
18541 (rtl_tests_cc_tests): ...this.
18542 (sbitmap_c_tests): Rename to...
18543 (sbitmap_cc_tests): ...this.
18544 (selftest_c_tests): Rename to...
18545 (selftest_cc_tests): ...this.
18546 (simplify_rtx_c_tests): Rename to...
18547 (simplify_rtx_cc_tests): ...this.
18548 (spellcheck_c_tests): Rename to...
18549 (spellcheck_cc_tests): ...this.
18550 (spellcheck_tree_c_tests): Rename to...
18551 (spellcheck_tree_cc_tests): ...this.
18552 (sreal_c_tests): Rename to...
18553 (sreal_cc_tests): ...this.
18554 (store_merging_c_tests): Rename to...
18555 (store_merging_cc_tests): ...this.
18556 (tree_c_tests): Rename to...
18557 (tree_cc_tests): ...this.
18558 (tree_cfg_c_tests): Rename to...
18559 (tree_cfg_cc_tests): ...this.
18560 (typed_splay_tree_c_tests): Rename to...
18561 (typed_splay_tree_cc_tests): ...this.
18562 (vec_c_tests): Rename to...
18563 (vec_cc_tests): ...this.
18564 (vec_perm_indices_c_tests): Rename to...
18565 (vec_perm_indices_cc_tests): ..this.
18566 (opt_proposer_c_tests): Rename to...
18567 (opt_suggestions_cc_tests): ...this.
18568 (dbgcnt_c_tests): Rename to...
18569 (dbgcnt_cc_tests): ...this.
18570 (ipa_modref_tree_c_tests): Rename to...
18571 (ipa_modref_tree_cc_tests): ...this.
18572 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
18573 (simplify_rtx_cc_tests): ...this.
18574 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
18575 (spellcheck_tree_cc_tests): ...this.
18576 * spellcheck.cc (spellcheck_c_tests): Rename to...
18577 (spellcheck_cc_tests): ...this.
18578 * sreal.cc (sreal_c_tests): Rename to...
18579 (sreal_cc_tests): ...this.
18580 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
18581 function renamings.
18582 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
18583 (tree_cfg_cc_tests): ...this.
18584 * tree.cc (tree_c_tests): Rename to...
18585 (tree_cc_tests): ...this.
18586 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
18587 (typed_splay_tree_cc_tests): ...this.
18588 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
18589 (vec_perm_indices_cc_tests): ...this.
18590 * vec.cc (vec_c_tests): Rename to...
18591 (vec_cc_tests): ...this.
18592
18593 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
18594
18595 PR tree-optimization/103997
18596 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
18597 vectorization.
18598
18599 2022-01-19 Jakub Jelinek <jakub@redhat.com>
18600
18601 PR middle-end/102860
18602 * match.pd (x %[fl] y -> x % y): New simplification for
18603 unsigned integral types.
18604 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
18605 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
18606
18607 2022-01-19 Richard Biener <rguenther@suse.de>
18608
18609 PR tree-optimization/104112
18610 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
18611 for required intermediate vector types.
18612
18613 2022-01-19 Jakub Jelinek <jakub@redhat.com>
18614
18615 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
18616
18617 2022-01-19 Martin Liska <mliska@suse.cz>
18618
18619 * configure.ac: Remove -Wno-error=format-diag.
18620 * configure: Regenerate.
18621
18622 2022-01-19 Martin Liska <mliska@suse.cz>
18623
18624 * config/riscv/riscv.cc (riscv_handle_type_attribute):
18625 Update one -Wformat-diag string in warning message.
18626
18627 2022-01-19 Jakub Jelinek <jakub@redhat.com>
18628
18629 PR middle-end/104103
18630 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
18631 .ASAN_MARK calls.
18632
18633 2022-01-19 Jakub Jelinek <jakub@redhat.com>
18634
18635 PR c++/89074
18636 * fold-const.cc (address_compare): Consider different STRING_CSTs
18637 with the same lengths that memcmp the same as equal, not different.
18638
18639 2022-01-19 Jakub Jelinek <jakub@redhat.com>
18640
18641 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
18642 {%0}.
18643
18644 2022-01-19 Martin Liska <mliska@suse.cz>
18645 Thomas Schwinge <thomas@codesourcery.com>
18646
18647 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
18648 warning messages.
18649
18650 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
18651
18652 PR target/104090
18653 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
18654 rs6000_cpu.
18655
18656 2022-01-19 Jakub Jelinek <jakub@redhat.com>
18657
18658 PR target/104104
18659 * config/i386/sse.md
18660 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
18661 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
18662 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
18663 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
18664 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
18665 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
18666 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
18667 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
18668 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
18669
18670 2022-01-19 Martin Sebor <msebor@redhat.com>
18671
18672 PR middle-end/104069
18673 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
18674 an unknown result as documented.
18675
18676 2022-01-18 Andrew Pinski <apinski@marvell.com>
18677
18678 * ipa-split.cc (visit_bb): Fix comment before the
18679 warning/error attribute checking code.
18680
18681 2022-01-18 David Faust <david.faust@oracle.com>
18682
18683 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
18684 for base strtab offset yet as it may change.
18685 (output_asm_btfext_core_reloc): Do so here instead.
18686 (output_btfext_core_sections): Likewise.
18687
18688 2022-01-18 David Faust <david.faust@oracle.com>
18689
18690 * config/bpf/coreout.cc (output_btfext_header): Account for
18691 4-byte record size in core_relo_len.
18692 (output_btfext_core_sections): Only write record size once.
18693 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
18694 member.
18695
18696 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
18697
18698 * common/config/riscv/riscv-common.cc
18699 (riscv_subset_list::parse_multiletter_ext): Move pointer
18700 arithmetic ahead of `free'.
18701
18702 2022-01-18 Jason Merrill <jason@redhat.com>
18703
18704 PR c++/104007
18705 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
18706 context.
18707
18708 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
18709
18710 PR middle-end/103163
18711 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
18712 (init_emit_once): ...not here.
18713
18714 2022-01-18 Martin Liska <mliska@suse.cz>
18715
18716 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
18717 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
18718 * config/arc/arc.md: Likewise.
18719 * config/avr/avr.cc (avr_section_type_flags): Likewise.
18720 * config/bfin/bfin.cc (bfin_option_override): Likewise.
18721 (bfin_handle_longcall_attribute): Likewise.
18722 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
18723 * config/frv/frv.cc (frv_expand_builtin): Likewise.
18724 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
18725 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
18726 (iq2000_print_operand_address): Likewise.
18727 (iq2000_print_operand): Likewise.
18728 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
18729 (m32c_pragma_address): Likewise.
18730 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
18731 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
18732 (mips_set_compression_mode): Likewise.
18733 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
18734 (mmix_print_operand): Likewise.
18735 (mmix_output_shiftvalue_op_from_str): Likewise.
18736 (mmix_output_shifted_value): Likewise.
18737 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
18738 * config/msp430/msp430.cc (msp430_option_override): Likewise.
18739 (msp430_attr): Likewise.
18740 (msp430_expand_delay_cycles): Likewise.
18741 (msp430_expand_builtin): Likewise.
18742 * config/rs6000/aix73.h: Likewise.
18743 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
18744 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
18745 (valid_psw_flag): Likewise.
18746 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
18747 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
18748 (xstormy16_expand_builtin_va_start): Likewise.
18749 (xstormy16_handle_below100_attribute): Likewise.
18750
18751 2022-01-18 Martin Liska <mliska@suse.cz>
18752
18753 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
18754 warning.
18755 (vms_pragma_standard): Likewise.
18756 (vms_pragma_extern_prefix): Likewise.
18757
18758 2022-01-18 Martin Liska <mliska@suse.cz>
18759
18760 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
18761 (print_operand_address): Likewise.
18762 (xtensa_multibss_section_type_flags): Likewise.
18763
18764 2022-01-18 Martin Liska <mliska@suse.cz>
18765
18766 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
18767 wording of an error message.
18768
18769 2022-01-18 Martin Liska <mliska@suse.cz>
18770
18771 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
18772 warning.
18773 (ghs_pragma_section): Likewise.
18774 (ghs_pragma_interrupt): Likewise.
18775 (ghs_pragma_starttda): Likewise.
18776 (ghs_pragma_startsda): Likewise.
18777 (ghs_pragma_startzda): Likewise.
18778 (ghs_pragma_endtda): Likewise.
18779 (ghs_pragma_endsda): Likewise.
18780 (ghs_pragma_endzda): Likewise.
18781
18782 2022-01-18 Martin Liska <mliska@suse.cz>
18783
18784 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
18785 Fix warnings.
18786 * config/nds32/nds32-intrinsic.md: Likewise.
18787 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
18788 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
18789 (nds32_insert_attributes): Likewise.
18790
18791 2022-01-18 Martin Liska <mliska@suse.cz>
18792
18793 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
18794 keyword.
18795 * config/nvptx/nvptx.md: Remove trailing dot.
18796
18797 2022-01-18 Martin Liska <mliska@suse.cz>
18798
18799 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
18800 Wrap keywords with quotes and remove trailing dots.
18801 (riscv_subset_list::parsing_subset_version): Likewise.
18802 (riscv_subset_list::parse_std_ext): Likewise.
18803 (riscv_subset_list::parse_multiletter_ext): Likewise.
18804 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
18805
18806 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
18807
18808 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
18809 argument suggested_unroll_factor.
18810 (vect_analyze_loop_costing): Likewise.
18811 (_loop_vec_info::_loop_vec_info): Initialize new member
18812 suggested_unroll_factor.
18813 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
18814 main loop use partial vectors.
18815 (vect_analyze_loop_2): Pass and use new argument
18816 suggested_unroll_factor.
18817 (vect_analyze_loop_1): Change to intialize local
18818 suggested_unroll_factor and use it.
18819 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
18820 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
18821 suggested_unroll_factor.
18822 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
18823 (vector_costs::suggested_unroll_factor): New getter function.
18824 (finish_cost): Set return argument suggested_unroll_factor.
18825
18826 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
18827
18828 PR tree-optimization/104038
18829 * doc/invoke.texi (relation-block-limit): New.
18830 * params.opt (relation-block-limit): New.
18831 * value-relation.cc (dom_oracle::register_relation): Check for NULL
18832 record before invoking transitive registery.
18833 (dom_oracle::set_one_relation): Check limit before creating record.
18834 (dom_oracle::register_transitives): Stop when no record created.
18835 * value-relation.h (relation_chain_head::m_num_relations): New.
18836
18837 2022-01-18 Richard Biener <rguenther@suse.de>
18838
18839 PR ipa/103989
18840 * ipa-inline.cc (inline_small_functions): Do not enqueue call
18841 edges originating in functions compiled with -Og.
18842
18843 2022-01-18 Richard Biener <rguenther@suse.de>
18844
18845 PR ipa/103989
18846 * passes.def (pass_all_optimizations_g): Remove pass_modref
18847 and pass_local_pure_const.
18848
18849 2022-01-18 Martin Liska <mliska@suse.cz>
18850
18851 * config/s390/s390.cc: Fix -Wformat-diag warnings.
18852
18853 2022-01-18 Martin Liska <mliska@suse.cz>
18854
18855 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
18856 keyword in quotes.
18857 (s390_resolve_overloaded_builtin): Remove trailing dot.
18858 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
18859 (s390_expand_builtin): Remove trailing dot.
18860 (s390_emit_prologue): Likewise, use semicolon.
18861 (s390_option_override_internal): Update keyword.
18862 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
18863
18864 2022-01-18 Martin Liska <mliska@suse.cz>
18865
18866 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
18867 keywords and use %qs instead of %<%s%>.
18868
18869 2022-01-18 Richard Biener <rguenther@suse.de>
18870
18871 PR tree-optimization/103987
18872 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
18873 query with a pointer check.
18874
18875 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
18876
18877 PR target/104005
18878 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
18879 When using MEM_EXPR, require the base to be a decl.
18880
18881 2022-01-18 Richard Biener <rguenther@suse.de>
18882
18883 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
18884 avoid padding.
18885 * function.h (struct function): Likewise.
18886
18887 2022-01-18 Arnaud Charlet <charlet@adacore.com>
18888
18889 * doc/install.texi: Update prerequisites for GNAT
18890
18891 2022-01-18 Andrew Pinski <apinski@marvell.com>
18892
18893 PR tree-optimization/101941
18894 * ipa-split.cc (visit_bb): Disallow function calls where
18895 the function has either error or warning attribute.
18896
18897 2022-01-18 Richard Biener <rguenther@suse.de>
18898
18899 PR tree-optimization/104064
18900 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
18901 DR_INIT fits in a signed HWI, represent the difference from the
18902 first DR in unsigned.
18903
18904 2022-01-17 Martin Liska <mliska@suse.cz>
18905
18906 * Makefile.in: Rename .c names to .cc.
18907 * config.gcc: Likewise.
18908 * configure: Regenerate. Likewise.
18909 * configure.ac: Likewise.
18910 * gengtype.cc (set_gc_used): Likewise.
18911 (source_dot_c_frul): Likewise.
18912 (source_dot_cc_frul): Likewise.
18913 (struct file_rule_st): Likewise.
18914 (close_output_files): Likewise.
18915 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
18916
18917 2022-01-17 Martin Liska <mliska@suse.cz>
18918
18919 * Makefile.in: Rename .c names to .cc.
18920 * alias.h: Likewise.
18921 * asan.cc: Likewise.
18922 * auto-profile.h: Likewise.
18923 * basic-block.h (struct basic_block_d): Likewise.
18924 * btfout.cc: Likewise.
18925 * builtins.cc (expand_builtin_longjmp): Likewise.
18926 (validate_arg): Likewise.
18927 (access_ref::offset_bounded): Likewise.
18928 * caller-save.cc (reg_restore_code): Likewise.
18929 (setup_save_areas): Likewise.
18930 * calls.cc (initialize_argument_information): Likewise.
18931 (expand_call): Likewise.
18932 (emit_library_call_value_1): Likewise.
18933 * cfg-flags.def (RTL): Likewise.
18934 (SIBCALL): Likewise.
18935 (CAN_FALLTHRU): Likewise.
18936 * cfganal.cc (post_order_compute): Likewise.
18937 * cfgcleanup.cc (try_simplify_condjump): Likewise.
18938 (merge_blocks_move_predecessor_nojumps): Likewise.
18939 (merge_blocks_move_successor_nojumps): Likewise.
18940 (merge_blocks_move): Likewise.
18941 (old_insns_match_p): Likewise.
18942 (try_crossjump_bb): Likewise.
18943 * cfgexpand.cc (expand_gimple_stmt): Likewise.
18944 * cfghooks.cc (split_block_before_cond_jump): Likewise.
18945 (profile_record_check_consistency): Likewise.
18946 * cfghooks.h: Likewise.
18947 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
18948 (rtl_can_merge_blocks): Likewise.
18949 (try_redirect_by_replacing_jump): Likewise.
18950 (make_pass_outof_cfg_layout_mode): Likewise.
18951 (cfg_layout_can_merge_blocks_p): Likewise.
18952 * cgraph.cc (release_function_body): Likewise.
18953 (cgraph_node::get_fun): Likewise.
18954 * cgraph.h (struct cgraph_node): Likewise.
18955 (asmname_hasher::equal): Likewise.
18956 (cgraph_inline_failed_type): Likewise.
18957 (thunk_adjust): Likewise.
18958 (dump_callgraph_transformation): Likewise.
18959 (record_references_in_initializer): Likewise.
18960 (ipa_discover_variable_flags): Likewise.
18961 * cgraphclones.cc (GTY): Likewise.
18962 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
18963 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
18964 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
18965 * collect2.cc (maybe_run_lto_and_relink): Likewise.
18966 * combine-stack-adj.cc: Likewise.
18967 * combine.cc (setup_incoming_promotions): Likewise.
18968 (combine_simplify_rtx): Likewise.
18969 (count_rtxs): Likewise.
18970 * common.opt: Likewise.
18971 * common/config/aarch64/aarch64-common.cc: Likewise.
18972 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
18973 * common/config/avr/avr-common.cc: Likewise.
18974 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
18975 * conditions.h: Likewise.
18976 * config.gcc: Likewise.
18977 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
18978 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
18979 (aarch64_get_extension_string_for_isa_flags): Likewise.
18980 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
18981 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
18982 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
18983 (aarch64_option_valid_attribute_p): Likewise.
18984 (aarch64_short_vector_p): Likewise.
18985 (aarch64_float_const_representable_p): Likewise.
18986 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
18987 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
18988 (GTY): Likewise.
18989 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
18990 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
18991 * config/aarch64/t-aarch64: Likewise.
18992 * config/aarch64/x-aarch64: Likewise.
18993 * config/aarch64/x-darwin: Likewise.
18994 * config/alpha/alpha-protos.h: Likewise.
18995 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
18996 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
18997 (enum reg_class): Likewise.
18998 * config/alpha/alpha.md: Likewise.
18999 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
19000 * config/alpha/x-alpha: Likewise.
19001 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
19002 * config/arc/arc.cc (ARC_OPT): Likewise.
19003 (arc_ccfsm_advance): Likewise.
19004 (arc_arg_partial_bytes): Likewise.
19005 (conditionalize_nonjump): Likewise.
19006 * config/arc/arc.md: Likewise.
19007 * config/arc/builtins.def: Likewise.
19008 * config/arc/t-arc: Likewise.
19009 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
19010 (arm_pragma_target_parse): Likewise.
19011 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
19012 (arm_cpu_cpp_builtins): Likewise.
19013 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
19014 (shift_op): Likewise.
19015 (thumb2_final_prescan_insn): Likewise.
19016 (arm_final_prescan_insn): Likewise.
19017 (arm_asm_output_labelref): Likewise.
19018 (arm_small_register_classes_for_mode_p): Likewise.
19019 * config/arm/arm.h: Likewise.
19020 * config/arm/arm.md: Likewise.
19021 * config/arm/driver-arm.cc: Likewise.
19022 * config/arm/symbian.h: Likewise.
19023 * config/arm/t-arm: Likewise.
19024 * config/arm/thumb1.md: Likewise.
19025 * config/arm/x-arm: Likewise.
19026 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
19027 * config/avr/avr-fixed.md: Likewise.
19028 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
19029 * config/avr/avr-mcus.def: Likewise.
19030 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
19031 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
19032 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
19033 * config/avr/avr.cc (avr_option_override): Likewise.
19034 (avr_build_builtin_va_list): Likewise.
19035 (avr_mode_dependent_address_p): Likewise.
19036 (avr_function_arg_advance): Likewise.
19037 (avr_asm_output_aligned_decl_common): Likewise.
19038 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
19039 (SUPPORTS_INIT_PRIORITY): Likewise.
19040 * config/avr/avr.md: Likewise.
19041 * config/avr/builtins.def: Likewise.
19042 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
19043 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
19044 (main): Likewise.
19045 * config/avr/t-avr: Likewise.
19046 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
19047 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
19048 * config/bpf/bpf.h (enum reg_class): Likewise.
19049 * config/bpf/t-bpf: Likewise.
19050 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
19051 * config/cr16/cr16-protos.h: Likewise.
19052 * config/cris/cris.cc (cris_address_cost): Likewise.
19053 (cris_side_effect_mode_ok): Likewise.
19054 (cris_init_machine_status): Likewise.
19055 (cris_emit_movem_store): Likewise.
19056 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
19057 (enum reg_class): Likewise.
19058 (struct cum_args): Likewise.
19059 * config/cris/cris.opt: Likewise.
19060 * config/cris/sync.md: Likewise.
19061 * config/csky/csky.cc (csky_expand_prologue): Likewise.
19062 * config/darwin-c.cc: Likewise.
19063 * config/darwin-f.cc: Likewise.
19064 * config/darwin-sections.def (zobj_const_section): Likewise.
19065 * config/darwin.cc (output_objc_section_asm_op): Likewise.
19066 (fprintf): Likewise.
19067 * config/darwin.h (GTY): Likewise.
19068 * config/elfos.h: Likewise.
19069 * config/epiphany/epiphany-sched.md: Likewise.
19070 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
19071 * config/epiphany/epiphany.h (GTY): Likewise.
19072 (NO_FUNCTION_CSE): Likewise.
19073 * config/epiphany/mode-switch-use.cc: Likewise.
19074 * config/epiphany/predicates.md: Likewise.
19075 * config/epiphany/t-epiphany: Likewise.
19076 * config/fr30/fr30-protos.h: Likewise.
19077 * config/frv/frv-protos.h: Likewise.
19078 * config/frv/frv.cc (TLS_BIAS): Likewise.
19079 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
19080 * config/ft32/ft32-protos.h: Likewise.
19081 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
19082 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
19083 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
19084 * config/gcn/t-gcn-hsa: Likewise.
19085 * config/gcn/t-omp-device: Likewise.
19086 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
19087 (same_cmp_following_p): Likewise.
19088 * config/h8300/h8300.cc (F): Likewise.
19089 * config/h8300/h8300.h (struct cum_arg): Likewise.
19090 (BRANCH_COST): Likewise.
19091 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
19092 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
19093 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
19094 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
19095 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
19096 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
19097 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
19098 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
19099 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
19100 (ix86_register_pragmas): Likewise.
19101 (ix86_d_has_stdcall_convention): Likewise.
19102 (i386_pe_seh_init_sections): Likewise.
19103 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
19104 (ix86_function_value_regno_p): Likewise.
19105 (ix86_compute_frame_layout): Likewise.
19106 (legitimize_pe_coff_symbol): Likewise.
19107 (output_pic_addr_const): Likewise.
19108 * config/i386/i386.h (defined): Likewise.
19109 (host_detect_local_cpu): Likewise.
19110 (CONSTANT_ADDRESS_P): Likewise.
19111 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
19112 (struct machine_frame_state): Likewise.
19113 * config/i386/i386.md: Likewise.
19114 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
19115 * config/i386/mmx.md: Likewise.
19116 * config/i386/sse.md: Likewise.
19117 * config/i386/t-cygming: Likewise.
19118 * config/i386/t-djgpp: Likewise.
19119 * config/i386/t-gnu-property: Likewise.
19120 * config/i386/t-i386: Likewise.
19121 * config/i386/t-intelmic: Likewise.
19122 * config/i386/t-omp-device: Likewise.
19123 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
19124 (i386_pe_adjust_class_at_definition): Likewise.
19125 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
19126 (i386_pe_mangle_decl_assembler_name): Likewise.
19127 (i386_pe_encode_section_info): Likewise.
19128 * config/i386/x-cygwin: Likewise.
19129 * config/i386/x-darwin: Likewise.
19130 * config/i386/x-i386: Likewise.
19131 * config/i386/x-mingw32: Likewise.
19132 * config/i386/x86-tune-sched-core.cc: Likewise.
19133 * config/i386/x86-tune.def: Likewise.
19134 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
19135 * config/ia64/freebsd.h: Likewise.
19136 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
19137 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
19138 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
19139 (ia64_secondary_reload_class): Likewise.
19140 (bundling): Likewise.
19141 * config/ia64/ia64.h: Likewise.
19142 * config/ia64/ia64.md: Likewise.
19143 * config/ia64/predicates.md: Likewise.
19144 * config/ia64/sysv4.h: Likewise.
19145 * config/ia64/t-ia64: Likewise.
19146 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
19147 * config/iq2000/iq2000.md: Likewise.
19148 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
19149 (if): Likewise.
19150 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
19151 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
19152 * config/m32c/t-m32c: Likewise.
19153 * config/m32r/m32r-protos.h: Likewise.
19154 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
19155 * config/m32r/m32r.h: Likewise.
19156 * config/m32r/m32r.md: Likewise.
19157 * config/m68k/m68k-isas.def: Likewise.
19158 * config/m68k/m68k-microarchs.def: Likewise.
19159 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
19160 (m68k_epilogue_uses): Likewise.
19161 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
19162 (m68k_sched_adjust_cost): Likewise.
19163 (m68k_sched_md_init): Likewise.
19164 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
19165 (enum m68k_function_kind): Likewise.
19166 * config/m68k/m68k.md: Likewise.
19167 * config/m68k/m68kemb.h: Likewise.
19168 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
19169 * config/mcore/mcore-protos.h: Likewise.
19170 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
19171 (mcore_expand_prolog): Likewise.
19172 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
19173 * config/mcore/mcore.md: Likewise.
19174 * config/microblaze/microblaze-protos.h: Likewise.
19175 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
19176 (microblaze_function_prologue): Likewise.
19177 (microblaze_function_epilogue): Likewise.
19178 (microblaze_select_section): Likewise.
19179 (microblaze_asm_output_mi_thunk): Likewise.
19180 (microblaze_eh_return): Likewise.
19181 * config/microblaze/microblaze.h: Likewise.
19182 * config/microblaze/microblaze.md: Likewise.
19183 * config/microblaze/t-microblaze: Likewise.
19184 * config/mips/driver-native.cc: Likewise.
19185 * config/mips/loongson2ef.md: Likewise.
19186 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
19187 * config/mips/mips.cc (mips_rtx_costs): Likewise.
19188 (mips_output_filename): Likewise.
19189 (mips_output_function_prologue): Likewise.
19190 (mips_output_function_epilogue): Likewise.
19191 (mips_output_mi_thunk): Likewise.
19192 * config/mips/mips.h: Likewise.
19193 * config/mips/mips.md: Likewise.
19194 * config/mips/t-mips: Likewise.
19195 * config/mips/x-native: Likewise.
19196 * config/mmix/mmix-protos.h: Likewise.
19197 * config/mmix/mmix.cc (mmix_option_override): Likewise.
19198 (mmix_dbx_register_number): Likewise.
19199 (mmix_expand_prologue): Likewise.
19200 * config/mmix/mmix.h: Likewise.
19201 * config/mmix/mmix.md: Likewise.
19202 * config/mmix/predicates.md: Likewise.
19203 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
19204 (mn10300_legitimate_pic_operand_p): Likewise.
19205 * config/mn10300/mn10300.h (enum reg_class): Likewise.
19206 (NO_FUNCTION_CSE): Likewise.
19207 * config/moxie/moxie-protos.h: Likewise.
19208 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
19209 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
19210 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
19211 (msp430_incoming_return_addr_rtx): Likewise.
19212 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
19213 * config/msp430/t-msp430: Likewise.
19214 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
19215 (nds32_rtx_costs_size_prefer): Likewise.
19216 (nds32_init_rtx_costs): Likewise.
19217 * config/nds32/nds32-doubleword.md: Likewise.
19218 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
19219 (nds32_builtin_decl): Likewise.
19220 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
19221 (enum nds32_isr_nested_type): Likewise.
19222 (enum reg_class): Likewise.
19223 * config/nds32/predicates.md: Likewise.
19224 * config/nds32/t-nds32: Likewise.
19225 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
19226 * config/nvptx/nvptx-protos.h: Likewise.
19227 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
19228 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
19229 * config/nvptx/t-nvptx: Likewise.
19230 * config/nvptx/t-omp-device: Likewise.
19231 * config/pa/elf.h: Likewise.
19232 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
19233 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
19234 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
19235 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
19236 (pa_legitimize_reload_address): Likewise.
19237 (pa_can_use_return_insn): Likewise.
19238 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
19239 (som_output_text_section_asm_op): Likewise.
19240 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
19241 * config/pa/pa.md: Likewise.
19242 * config/pa/som.h: Likewise.
19243 * config/pa/t-pa: Likewise.
19244 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
19245 * config/pdp11/pdp11.h: Likewise.
19246 * config/pdp11/pdp11.md: Likewise.
19247 * config/pdp11/t-pdp11: Likewise.
19248 * config/pru/pru.md: Likewise.
19249 * config/pru/t-pru: Likewise.
19250 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
19251 (riscv_gpr_save_operation_p): Likewise.
19252 (riscv_d_register_target_info): Likewise.
19253 (riscv_init_builtins): Likewise.
19254 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
19255 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
19256 * config/riscv/t-riscv: Likewise.
19257 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
19258 * config/rl78/t-rl78: Likewise.
19259 * config/rs6000/aix.h: Likewise.
19260 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
19261 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
19262 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
19263 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
19264 * config/rs6000/driver-rs6000.cc: Likewise.
19265 * config/rs6000/freebsd.h: Likewise.
19266 * config/rs6000/freebsd64.h: Likewise.
19267 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
19268 * config/rs6000/rbtree.cc: Likewise.
19269 * config/rs6000/rbtree.h: Likewise.
19270 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
19271 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
19272 (rs6000_expand_builtin): Likewise.
19273 (rs6000_init_builtins): Likewise.
19274 * config/rs6000/rs6000-cpus.def: Likewise.
19275 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
19276 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
19277 (quad_address_offset_p): Likewise.
19278 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
19279 (rs6000_emit_epilogue): Likewise.
19280 * config/rs6000/rs6000-overload.def: Likewise.
19281 * config/rs6000/rs6000-p8swap.cc: Likewise.
19282 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
19283 (rs6000_const_f32_to_i32): Likewise.
19284 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
19285 (rs6000_debug_legitimize_address): Likewise.
19286 (rs6000_mode_dependent_address): Likewise.
19287 (rs6000_adjust_priority): Likewise.
19288 (rs6000_c_mode_for_suffix): Likewise.
19289 * config/rs6000/rs6000.h (defined): Likewise.
19290 (LONG_DOUBLE_TYPE_SIZE): Likewise.
19291 * config/rs6000/rs6000.md: Likewise.
19292 * config/rs6000/sysv4.h: Likewise.
19293 * config/rs6000/t-linux: Likewise.
19294 * config/rs6000/t-linux64: Likewise.
19295 * config/rs6000/t-rs6000: Likewise.
19296 * config/rs6000/x-darwin: Likewise.
19297 * config/rs6000/x-darwin64: Likewise.
19298 * config/rs6000/x-rs6000: Likewise.
19299 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
19300 * config/rx/rx.cc (rx_expand_builtin): Likewise.
19301 * config/s390/constraints.md: Likewise.
19302 * config/s390/driver-native.cc: Likewise.
19303 * config/s390/htmxlintrin.h: Likewise.
19304 * config/s390/s390-builtins.def (B_DEF): Likewise.
19305 (OB_DEF_VAR): Likewise.
19306 * config/s390/s390-builtins.h: Likewise.
19307 * config/s390/s390-c.cc: Likewise.
19308 * config/s390/s390-opts.h: Likewise.
19309 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
19310 (s390_register_target_pragmas): Likewise.
19311 * config/s390/s390.cc (s390_init_builtins): Likewise.
19312 (s390_expand_plus_operand): Likewise.
19313 (s390_expand_atomic): Likewise.
19314 (s390_valid_target_attribute_inner_p): Likewise.
19315 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
19316 * config/s390/s390.md: Likewise.
19317 * config/s390/t-s390: Likewise.
19318 * config/s390/vx-builtins.md: Likewise.
19319 * config/s390/x-native: Likewise.
19320 * config/sh/divtab-sh4-300.cc (main): Likewise.
19321 * config/sh/divtab-sh4.cc (main): Likewise.
19322 * config/sh/divtab.cc (main): Likewise.
19323 * config/sh/elf.h: Likewise.
19324 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
19325 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
19326 (sh_struct_value_rtx): Likewise.
19327 (sh_remove_reg_dead_or_unused_notes): Likewise.
19328 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
19329 * config/sh/t-sh: Likewise.
19330 * config/sol2-protos.h (solaris_override_options): Likewise.
19331 * config/sol2.h: Likewise.
19332 * config/sparc/driver-sparc.cc: Likewise.
19333 * config/sparc/freebsd.h: Likewise.
19334 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
19335 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
19336 (sparc_asan_shadow_offset): Likewise.
19337 * config/sparc/sparc.h: Likewise.
19338 * config/sparc/sparc.md: Likewise.
19339 * config/sparc/t-sparc: Likewise.
19340 * config/sparc/x-sparc: Likewise.
19341 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
19342 * config/t-darwin: Likewise.
19343 * config/t-dragonfly: Likewise.
19344 * config/t-freebsd: Likewise.
19345 * config/t-glibc: Likewise.
19346 * config/t-linux: Likewise.
19347 * config/t-netbsd: Likewise.
19348 * config/t-openbsd: Likewise.
19349 * config/t-pnt16-warn: Likewise.
19350 * config/t-sol2: Likewise.
19351 * config/t-vxworks: Likewise.
19352 * config/t-winnt: Likewise.
19353 * config/tilegx/t-tilegx: Likewise.
19354 * config/tilegx/tilegx-c.cc: Likewise.
19355 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
19356 * config/tilegx/tilegx.md: Likewise.
19357 * config/tilepro/t-tilepro: Likewise.
19358 * config/tilepro/tilepro-c.cc: Likewise.
19359 * config/v850/t-v850: Likewise.
19360 * config/v850/v850-protos.h: Likewise.
19361 * config/v850/v850.cc (F): Likewise.
19362 * config/v850/v850.h (enum reg_class): Likewise.
19363 (SLOW_BYTE_ACCESS): Likewise.
19364 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
19365 * config/vax/vax.h (enum reg_class): Likewise.
19366 * config/vax/vax.md: Likewise.
19367 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
19368 * config/visium/visium.h: Likewise.
19369 * config/vms/t-vms: Likewise.
19370 * config/vms/vms-crtlmap.map: Likewise.
19371 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
19372 * config/vx-common.h: Likewise.
19373 * config/x-darwin: Likewise.
19374 * config/x-hpux: Likewise.
19375 * config/x-linux: Likewise.
19376 * config/x-netbsd: Likewise.
19377 * config/x-openbsd: Likewise.
19378 * config/x-solaris: Likewise.
19379 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
19380 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
19381 * config/xtensa/xtensa.h: Likewise.
19382 * configure.ac: Likewise.
19383 * context.cc: Likewise.
19384 * convert.h: Likewise.
19385 * coretypes.h: Likewise.
19386 * coverage.cc: Likewise.
19387 * coverage.h: Likewise.
19388 * cppdefault.h (struct default_include): Likewise.
19389 * cprop.cc (local_cprop_pass): Likewise.
19390 (one_cprop_pass): Likewise.
19391 * cse.cc (hash_rtx_cb): Likewise.
19392 (fold_rtx): Likewise.
19393 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
19394 * data-streamer.h (bp_unpack_var_len_int): Likewise.
19395 (streamer_write_widest_int): Likewise.
19396 * dbgcnt.def: Likewise.
19397 * dbxout.cc (dbxout_early_global_decl): Likewise.
19398 (dbxout_common_check): Likewise.
19399 * dbxout.h: Likewise.
19400 * debug.h (struct gcc_debug_hooks): Likewise.
19401 (dump_go_spec_init): Likewise.
19402 * df-core.cc: Likewise.
19403 * df-scan.cc (df_insn_info_delete): Likewise.
19404 (df_insn_delete): Likewise.
19405 * df.h (debug_df_chain): Likewise.
19406 (can_move_insns_across): Likewise.
19407 * dfp.cc (decimal_from_binary): Likewise.
19408 * diagnostic-color.cc: Likewise.
19409 * diagnostic-event-id.h: Likewise.
19410 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
19411 * diagnostic.cc (bt_callback): Likewise.
19412 (num_digits): Likewise.
19413 * doc/avr-mmcu.texi: Likewise.
19414 * doc/cfg.texi: Likewise.
19415 * doc/contrib.texi: Likewise.
19416 * doc/cppinternals.texi: Likewise.
19417 * doc/extend.texi: Likewise.
19418 * doc/generic.texi: Likewise.
19419 * doc/gimple.texi: Likewise.
19420 * doc/gty.texi: Likewise.
19421 * doc/invoke.texi: Likewise.
19422 * doc/loop.texi: Likewise.
19423 * doc/lto.texi: Likewise.
19424 * doc/match-and-simplify.texi: Likewise.
19425 * doc/md.texi: Likewise.
19426 * doc/optinfo.texi: Likewise.
19427 * doc/options.texi: Likewise.
19428 * doc/passes.texi: Likewise.
19429 * doc/plugins.texi: Likewise.
19430 * doc/rtl.texi: Likewise.
19431 * doc/sourcebuild.texi: Likewise.
19432 * doc/tm.texi: Likewise.
19433 * doc/tm.texi.in: Likewise.
19434 * doc/tree-ssa.texi: Likewise.
19435 * dojump.cc (do_jump): Likewise.
19436 * dojump.h: Likewise.
19437 * dumpfile.cc (test_impl_location): Likewise.
19438 (test_capture_of_dump_calls): Likewise.
19439 * dumpfile.h (enum dump_kind): Likewise.
19440 (class dump_location_t): Likewise.
19441 (dump_enabled_p): Likewise.
19442 (enable_rtl_dump_file): Likewise.
19443 (dump_combine_total_stats): Likewise.
19444 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
19445 * dwarf2ctf.h (ctf_debug_finish): Likewise.
19446 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
19447 (struct loc_descr_context): Likewise.
19448 (rtl_for_decl_location): Likewise.
19449 (gen_subprogram_die): Likewise.
19450 (gen_label_die): Likewise.
19451 (is_trivial_indirect_ref): Likewise.
19452 (dwarf2out_late_global_decl): Likewise.
19453 (dwarf_file_hasher::hash): Likewise.
19454 (dwarf2out_end_source_file): Likewise.
19455 (dwarf2out_define): Likewise.
19456 (dwarf2out_early_finish): Likewise.
19457 * dwarf2out.h (struct dw_fde_node): Likewise.
19458 (struct dw_discr_list_node): Likewise.
19459 (output_loc_sequence_raw): Likewise.
19460 * emit-rtl.cc (gen_raw_REG): Likewise.
19461 (maybe_set_max_label_num): Likewise.
19462 * emit-rtl.h (struct rtl_data): Likewise.
19463 * errors.cc (internal_error): Likewise.
19464 (trim_filename): Likewise.
19465 * et-forest.cc: Likewise.
19466 * except.cc (init_eh_for_function): Likewise.
19467 * explow.cc (promote_ssa_mode): Likewise.
19468 (get_dynamic_stack_size): Likewise.
19469 * explow.h: Likewise.
19470 * expmed.h: Likewise.
19471 * expr.cc (safe_from_p): Likewise.
19472 (expand_expr_real_2): Likewise.
19473 (expand_expr_real_1): Likewise.
19474 * file-prefix-map.cc (remap_filename): Likewise.
19475 * final.cc (app_enable): Likewise.
19476 (make_pass_compute_alignments): Likewise.
19477 (final_scan_insn_1): Likewise.
19478 (final_scan_insn): Likewise.
19479 * fixed-value.h (fixed_from_string): Likewise.
19480 * flag-types.h (NO_DEBUG): Likewise.
19481 (DWARF2_DEBUG): Likewise.
19482 (VMS_DEBUG): Likewise.
19483 (BTF_DEBUG): Likewise.
19484 (enum ctf_debug_info_levels): Likewise.
19485 * fold-const.cc (const_binop): Likewise.
19486 (fold_binary_loc): Likewise.
19487 (fold_checksum_tree): Likewise.
19488 * fp-test.cc: Likewise.
19489 * function.cc (expand_function_end): Likewise.
19490 * function.h (struct function): Likewise.
19491 * fwprop.cc (should_replace_address): Likewise.
19492 * gcc-main.cc: Likewise.
19493 * gcc-rich-location.h (class gcc_rich_location): Likewise.
19494 * gcc-symtab.h: Likewise.
19495 * gcc.cc (MIN_FATAL_STATUS): Likewise.
19496 (driver_handle_option): Likewise.
19497 (quote_spec_arg): Likewise.
19498 (driver::finalize): Likewise.
19499 * gcc.h (set_input): Likewise.
19500 * gcov-dump.cc: Likewise.
19501 * gcov.cc (solve_flow_graph): Likewise.
19502 * gcse-common.cc: Likewise.
19503 * gcse.cc (make_pass_rtl_hoist): Likewise.
19504 * genattr-common.cc: Likewise.
19505 * genattrtab.cc (min_fn): Likewise.
19506 (write_const_num_delay_slots): Likewise.
19507 * genautomata.cc: Likewise.
19508 * genconditions.cc (write_one_condition): Likewise.
19509 * genconstants.cc: Likewise.
19510 * genemit.cc (gen_exp): Likewise.
19511 * generic-match-head.cc: Likewise.
19512 * genextract.cc: Likewise.
19513 * gengenrtl.cc (always_void_p): Likewise.
19514 * gengtype-parse.cc (gtymarker_opt): Likewise.
19515 * gengtype-state.cc (state_writer::state_writer): Likewise.
19516 (write_state_trailer): Likewise.
19517 (equals_type_number): Likewise.
19518 (read_state): Likewise.
19519 * gengtype.cc (open_base_files): Likewise.
19520 (struct file_rule_st): Likewise.
19521 (header_dot_h_frul): Likewise.
19522 * gengtype.h: Likewise.
19523 * genmatch.cc (main): Likewise.
19524 * genmddeps.cc: Likewise.
19525 * genmodes.cc (emit_mode_inner): Likewise.
19526 (emit_mode_unit_size): Likewise.
19527 * genpeep.cc (gen_peephole): Likewise.
19528 * genpreds.cc (write_tm_preds_h): Likewise.
19529 * genrecog.cc (validate_pattern): Likewise.
19530 (write_header): Likewise.
19531 (main): Likewise.
19532 * gensupport.cc (change_subst_attribute): Likewise.
19533 (traverse_c_tests): Likewise.
19534 (add_predicate): Likewise.
19535 (init_predicate_table): Likewise.
19536 * gensupport.h (struct optab_pattern): Likewise.
19537 (get_num_insn_codes): Likewise.
19538 (maybe_eval_c_test): Likewise.
19539 (struct pred_data): Likewise.
19540 * ggc-internal.h: Likewise.
19541 * gimple-fold.cc (maybe_fold_reference): Likewise.
19542 (get_range_strlen_tree): Likewise.
19543 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
19544 * gimple-low.cc: Likewise.
19545 * gimple-match-head.cc (directly_supported_p): Likewise.
19546 * gimple-pretty-print.h: Likewise.
19547 * gimple-ssa-sprintf.cc (format_percent): Likewise.
19548 (adjust_range_for_overflow): Likewise.
19549 * gimple-streamer.h: Likewise.
19550 * gimple.h (struct GTY): Likewise.
19551 (is_gimple_resx): Likewise.
19552 * gimplify.cc (gimplify_expr): Likewise.
19553 (gimplify_init_constructor): Likewise.
19554 (omp_construct_selector_matches): Likewise.
19555 (gimplify_omp_target_update): Likewise.
19556 (gimplify_omp_ordered): Likewise.
19557 (gimplify_va_arg_expr): Likewise.
19558 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
19559 * haifa-sched.cc (increase_insn_priority): Likewise.
19560 (try_ready): Likewise.
19561 (sched_create_recovery_edges): Likewise.
19562 * ifcvt.cc (find_if_case_1): Likewise.
19563 (find_if_case_2): Likewise.
19564 * inchash.h: Likewise.
19565 * incpath.cc (add_env_var_paths): Likewise.
19566 * input.cc (dump_location_info): Likewise.
19567 (assert_loceq): Likewise.
19568 (test_lexer_string_locations_concatenation_1): Likewise.
19569 (test_lexer_string_locations_concatenation_2): Likewise.
19570 (test_lexer_string_locations_concatenation_3): Likewise.
19571 * input.h (BUILTINS_LOCATION): Likewise.
19572 (class string_concat_db): Likewise.
19573 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
19574 (expand_LOOP_VECTORIZED): Likewise.
19575 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
19576 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
19577 (ipa_fn_summary_t::duplicate): Likewise.
19578 (make_pass_ipa_fn_summary): Likewise.
19579 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
19580 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
19581 (free_lang_data_in_decl): Likewise.
19582 * ipa-inline.cc (compute_inlined_call_time): Likewise.
19583 (inline_always_inline_functions): Likewise.
19584 * ipa-inline.h (free_growth_caches): Likewise.
19585 (inline_account_function_p): Likewise.
19586 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
19587 (modref_eaf_analysis::analyze_ssa_name): Likewise.
19588 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
19589 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
19590 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
19591 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
19592 (unadjusted_ptr_and_unit_offset): Likewise.
19593 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
19594 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
19595 * ipa-split.cc (consider_split): Likewise.
19596 * ipa-sra.cc (isra_read_node_info): Likewise.
19597 * ipa-utils.h (struct ipa_dfs_info): Likewise.
19598 (recursive_call_p): Likewise.
19599 (ipa_make_function_pure): Likewise.
19600 * ira-build.cc (ira_create_allocno): Likewise.
19601 (ira_flattening): Likewise.
19602 * ira-color.cc (do_coloring): Likewise.
19603 (update_curr_costs): Likewise.
19604 * ira-conflicts.cc (process_regs_for_copy): Likewise.
19605 * ira-int.h (struct ira_emit_data): Likewise.
19606 (ira_prohibited_mode_move_regs): Likewise.
19607 (ira_get_dup_out_num): Likewise.
19608 (ira_destroy): Likewise.
19609 (ira_tune_allocno_costs): Likewise.
19610 (ira_implicitly_set_insn_hard_regs): Likewise.
19611 (ira_build_conflicts): Likewise.
19612 (ira_color): Likewise.
19613 * ira-lives.cc (process_bb_node_lives): Likewise.
19614 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
19615 (setup_uniform_class_p): Likewise.
19616 (def_dominates_uses): Likewise.
19617 * ira.h (ira_nullify_asm_goto): Likewise.
19618 * langhooks.cc (lhd_post_options): Likewise.
19619 * langhooks.h (class substring_loc): Likewise.
19620 (struct lang_hooks_for_tree_inlining): Likewise.
19621 (struct lang_hooks_for_types): Likewise.
19622 (struct lang_hooks): Likewise.
19623 * libfuncs.h (synchronize_libfunc): Likewise.
19624 * loop-doloop.cc (doloop_condition_get): Likewise.
19625 * loop-init.cc (fix_loop_structure): Likewise.
19626 * loop-invariant.cc: Likewise.
19627 * lower-subreg.h: Likewise.
19628 * lra-constraints.cc (curr_insn_transform): Likewise.
19629 * lra-int.h (struct lra_insn_reg): Likewise.
19630 (lra_undo_inheritance): Likewise.
19631 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
19632 (lra_split_hard_reg_for): Likewise.
19633 (lra_coalesce): Likewise.
19634 (lra_final_code_change): Likewise.
19635 * lra-spills.cc (lra_final_code_change): Likewise.
19636 * lra.cc (lra_process_new_insns): Likewise.
19637 * lto-compress.h (struct lto_compression_stream): Likewise.
19638 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
19639 (write_symbol): Likewise.
19640 * lto-streamer.h (enum LTO_tags): Likewise.
19641 (lto_value_range_error): Likewise.
19642 (lto_append_block): Likewise.
19643 (lto_streamer_hooks_init): Likewise.
19644 (stream_read_tree_ref): Likewise.
19645 (lto_prepare_function_for_streaming): Likewise.
19646 (select_what_to_stream): Likewise.
19647 (omp_lto_input_declare_variant_alt): Likewise.
19648 (cl_optimization_stream_in): Likewise.
19649 * lto-wrapper.cc (append_compiler_options): Likewise.
19650 * machmode.def: Likewise.
19651 * machmode.h (struct int_n_data_t): Likewise.
19652 * main.cc (main): Likewise.
19653 * match.pd: Likewise.
19654 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
19655 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
19656 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
19657 (make_pass_expand_omp_ssa): Likewise.
19658 * omp-low.cc (struct omp_context): Likewise.
19659 (struct omp_taskcopy_context): Likewise.
19660 (lower_omp): Likewise.
19661 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
19662 (mask_name): Likewise.
19663 (omp_sese_dump_pars): Likewise.
19664 (worker_single_simple): Likewise.
19665 * omp-offload.cc (omp_finish_file): Likewise.
19666 (execute_oacc_loop_designation): Likewise.
19667 * optabs-query.cc (lshift_cheap_p): Likewise.
19668 * optc-gen.awk: Likewise.
19669 * optc-save-gen.awk: Likewise.
19670 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
19671 * opts-common.cc: Likewise.
19672 * output.h (app_enable): Likewise.
19673 (output_operand_lossage): Likewise.
19674 (insn_current_reference_address): Likewise.
19675 (get_insn_template): Likewise.
19676 (output_quoted_string): Likewise.
19677 * pass_manager.h (struct register_pass_info): Likewise.
19678 * plugin.cc: Likewise.
19679 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
19680 * plugin.h (invoke_plugin_callbacks): Likewise.
19681 * pointer-query.cc (handle_mem_ref): Likewise.
19682 * postreload-gcse.cc (alloc_mem): Likewise.
19683 * predict.h (enum prediction): Likewise.
19684 (add_reg_br_prob_note): Likewise.
19685 * prefix.h: Likewise.
19686 * profile.h (get_working_sets): Likewise.
19687 * read-md.cc: Likewise.
19688 * read-md.h (struct mapping): Likewise.
19689 (class md_reader): Likewise.
19690 (class noop_reader): Likewise.
19691 * read-rtl-function.cc (function_reader::create_function): Likewise.
19692 (function_reader::extra_parsing_for_operand_code_0): Likewise.
19693 * read-rtl.cc (initialize_iterators): Likewise.
19694 * real.cc: Likewise.
19695 * real.h (struct real_value): Likewise.
19696 (format_helper::format_helper): Likewise.
19697 (real_hash): Likewise.
19698 (real_can_shorten_arithmetic): Likewise.
19699 * recog.cc (struct target_recog): Likewise.
19700 (offsettable_nonstrict_memref_p): Likewise.
19701 (constrain_operands): Likewise.
19702 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
19703 (which_op_alt): Likewise.
19704 (struct insn_gen_fn): Likewise.
19705 * reg-notes.def (REG_NOTE): Likewise.
19706 * reg-stack.cc: Likewise.
19707 * regs.h (reg_is_parm_p): Likewise.
19708 * regset.h: Likewise.
19709 * reload.cc (push_reload): Likewise.
19710 (find_reloads): Likewise.
19711 (find_reloads_address_1): Likewise.
19712 (find_replacement): Likewise.
19713 (refers_to_regno_for_reload_p): Likewise.
19714 (refers_to_mem_for_reload_p): Likewise.
19715 * reload.h (push_reload): Likewise.
19716 (deallocate_reload_reg): Likewise.
19717 * reload1.cc (emit_input_reload_insns): Likewise.
19718 * reorg.cc (relax_delay_slots): Likewise.
19719 * rtl.def (UNKNOWN): Likewise.
19720 (SEQUENCE): Likewise.
19721 (BARRIER): Likewise.
19722 (ASM_OPERANDS): Likewise.
19723 (EQ_ATTR_ALT): Likewise.
19724 * rtl.h (struct GTY): Likewise.
19725 (LABEL_NAME): Likewise.
19726 (LABEL_ALT_ENTRY_P): Likewise.
19727 (SUBREG_BYTE): Likewise.
19728 (get_stack_check_protect): Likewise.
19729 (dump_rtx_statistics): Likewise.
19730 (unwrap_const_vec_duplicate): Likewise.
19731 (subreg_promoted_mode): Likewise.
19732 (gen_lowpart_common): Likewise.
19733 (operand_subword): Likewise.
19734 (immed_wide_int_const): Likewise.
19735 (decide_function_section): Likewise.
19736 (active_insn_p): Likewise.
19737 (delete_related_insns): Likewise.
19738 (try_split): Likewise.
19739 (val_signbit_known_clear_p): Likewise.
19740 (simplifiable_subregs): Likewise.
19741 (set_insn_deleted): Likewise.
19742 (subreg_get_info): Likewise.
19743 (remove_free_EXPR_LIST_node): Likewise.
19744 (finish_subregs_of_mode): Likewise.
19745 (get_mem_attrs): Likewise.
19746 (lookup_constant_def): Likewise.
19747 (rtx_to_tree_code): Likewise.
19748 (hash_rtx): Likewise.
19749 (condjump_in_parallel_p): Likewise.
19750 (validate_subreg): Likewise.
19751 (make_compound_operation): Likewise.
19752 (schedule_ebbs): Likewise.
19753 (print_inline_rtx): Likewise.
19754 (fixup_args_size_notes): Likewise.
19755 (expand_dec): Likewise.
19756 (prepare_copy_insn): Likewise.
19757 (mark_elimination): Likewise.
19758 (valid_mode_changes_for_regno): Likewise.
19759 (make_debug_expr_from_rtl): Likewise.
19760 (delete_vta_debug_insns): Likewise.
19761 (simplify_using_condition): Likewise.
19762 (set_insn_locations): Likewise.
19763 (fatal_insn_not_found): Likewise.
19764 (word_register_operation_p): Likewise.
19765 * rtlanal.cc (get_call_fndecl): Likewise.
19766 (side_effects_p): Likewise.
19767 (subreg_nregs): Likewise.
19768 (rtx_cost): Likewise.
19769 (canonicalize_condition): Likewise.
19770 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
19771 * run-rtl-passes.cc (run_rtl_passes): Likewise.
19772 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
19773 * sched-deps.cc (add_dependence_1): Likewise.
19774 * sched-ebb.cc (begin_move_insn): Likewise.
19775 (add_deps_for_risky_insns): Likewise.
19776 (advance_target_bb): Likewise.
19777 * sched-int.h (reemit_notes): Likewise.
19778 (struct _haifa_insn_data): Likewise.
19779 (HID): Likewise.
19780 (DEP_CANCELLED): Likewise.
19781 (debug_ds): Likewise.
19782 (number_in_ready): Likewise.
19783 (schedule_ebbs_finish): Likewise.
19784 (find_modifiable_mems): Likewise.
19785 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
19786 * sel-sched-dump.cc (dump_lv_set): Likewise.
19787 * sel-sched-dump.h: Likewise.
19788 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
19789 (setup_id_reg_sets): Likewise.
19790 (has_dependence_p): Likewise.
19791 (sel_num_cfg_preds_gt_1): Likewise.
19792 (bb_ends_ebb_p): Likewise.
19793 * sel-sched-ir.h (struct _list_node): Likewise.
19794 (struct idata_def): Likewise.
19795 (bb_next_bb): Likewise.
19796 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
19797 (choose_best_pseudo_reg): Likewise.
19798 (verify_target_availability): Likewise.
19799 (can_speculate_dep_p): Likewise.
19800 (sel_rank_for_schedule): Likewise.
19801 * selftest-run-tests.cc (selftest::run_tests): Likewise.
19802 * selftest.h (class auto_fix_quotes): Likewise.
19803 * shrink-wrap.cc (handle_simple_exit): Likewise.
19804 * shrink-wrap.h: Likewise.
19805 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
19806 (simplify_context::simplify_gen_vec_select): Likewise.
19807 * spellcheck-tree.h: Likewise.
19808 * spellcheck.h: Likewise.
19809 * statistics.h (struct function): Likewise.
19810 * stmt.cc (conditional_probability): Likewise.
19811 * stmt.h: Likewise.
19812 * stor-layout.h: Likewise.
19813 * streamer-hooks.h: Likewise.
19814 * stringpool.h: Likewise.
19815 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
19816 * target.def (HOOK_VECTOR_END): Likewise.
19817 (type.): Likewise.
19818 * target.h (union cumulative_args_t): Likewise.
19819 (by_pieces_ninsns): Likewise.
19820 (class predefined_function_abi): Likewise.
19821 * targhooks.cc (default_translate_mode_attribute): Likewise.
19822 * timevar.def: Likewise.
19823 * timevar.h (class timer): Likewise.
19824 * toplev.h (enable_rtl_dump_file): Likewise.
19825 * trans-mem.cc (collect_bb2reg): Likewise.
19826 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
19827 * tree-cfg.cc (remove_bb): Likewise.
19828 (verify_gimple_debug): Likewise.
19829 (remove_edge_and_dominated_blocks): Likewise.
19830 (push_fndecl): Likewise.
19831 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
19832 * tree-complex.cc (expand_complex_multiplication): Likewise.
19833 (expand_complex_div_straight): Likewise.
19834 * tree-core.h (enum tree_index): Likewise.
19835 (enum operand_equal_flag): Likewise.
19836 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
19837 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
19838 * tree-inline.cc (initialize_inlined_parameters): Likewise.
19839 * tree-inline.h (force_value_to_type): Likewise.
19840 * tree-nested.cc (get_chain_decl): Likewise.
19841 (walk_all_functions): Likewise.
19842 * tree-object-size.h: Likewise.
19843 * tree-outof-ssa.cc: Likewise.
19844 * tree-parloops.cc (create_parallel_loop): Likewise.
19845 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
19846 (dump_generic_node): Likewise.
19847 * tree-profile.cc (tree_profiling): Likewise.
19848 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
19849 * tree-ssa-address.cc: Likewise.
19850 * tree-ssa-alias.cc: Likewise.
19851 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
19852 (dump_alias_stats): Likewise.
19853 * tree-ssa-ccp.cc: Likewise.
19854 * tree-ssa-coalesce.h: Likewise.
19855 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
19856 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
19857 * tree-ssa-loop-unswitch.cc: Likewise.
19858 * tree-ssa-math-opts.cc: Likewise.
19859 * tree-ssa-operands.cc (class operands_scanner): Likewise.
19860 * tree-ssa-pre.cc: Likewise.
19861 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
19862 (debug_range_entry): Likewise.
19863 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
19864 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
19865 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
19866 (equal_mem_array_ref_p): Likewise.
19867 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
19868 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
19869 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
19870 * tree-ssa-ter.h: Likewise.
19871 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
19872 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
19873 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
19874 (write_ts_block_tree_pointers): Likewise.
19875 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
19876 (streamer_read_tree_bitfields): Likewise.
19877 (streamer_write_integer_cst): Likewise.
19878 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
19879 (vect_synth_mult_by_constant): Likewise.
19880 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
19881 * tree-vectorizer.cc: Likewise.
19882 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
19883 (vect_update_inits_of_drs): Likewise.
19884 (vect_get_mask_type_for_stmt): Likewise.
19885 (vect_rgroup_iv_might_wrap_p): Likewise.
19886 (cse_and_gimplify_to_preheader): Likewise.
19887 (vect_free_slp_tree): Likewise.
19888 (vect_pattern_recog): Likewise.
19889 (vect_stmt_dominates_stmt_p): Likewise.
19890 * tree.cc (initialize_tree_contains_struct): Likewise.
19891 (need_assembler_name_p): Likewise.
19892 (type_with_interoperable_signedness): Likewise.
19893 * tree.def (SWITCH_EXPR): Likewise.
19894 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
19895 (poly_int_tree_p): Likewise.
19896 (inlined_function_outer_scope_p): Likewise.
19897 (tree_code_for_canonical_type_merging): Likewise.
19898 * value-prof.cc: Likewise.
19899 * value-prof.h (get_nth_most_common_value): Likewise.
19900 (find_func_by_profile_id): Likewise.
19901 * value-range.cc (vrp_operand_equal_p): Likewise.
19902 * value-range.h: Likewise.
19903 * var-tracking.cc: Likewise.
19904 * varasm.cc (default_function_section): Likewise.
19905 (function_section_1): Likewise.
19906 (assemble_variable): Likewise.
19907 (handle_vtv_comdat_section): Likewise.
19908 * vec.h (struct vec_prefix): Likewise.
19909 * vmsdbgout.cc (full_name): Likewise.
19910 * vtable-verify.cc: Likewise.
19911 * vtable-verify.h (struct vtv_graph_node): Likewise.
19912 * xcoffout.cc: Likewise.
19913 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
19914
19915 2022-01-17 Martin Liska <mliska@suse.cz>
19916
19917 * adjust-alignment.c: Moved to...
19918 * adjust-alignment.cc: ...here.
19919 * alias.c: Moved to...
19920 * alias.cc: ...here.
19921 * alloc-pool.c: Moved to...
19922 * alloc-pool.cc: ...here.
19923 * asan.c: Moved to...
19924 * asan.cc: ...here.
19925 * attribs.c: Moved to...
19926 * attribs.cc: ...here.
19927 * auto-inc-dec.c: Moved to...
19928 * auto-inc-dec.cc: ...here.
19929 * auto-profile.c: Moved to...
19930 * auto-profile.cc: ...here.
19931 * bb-reorder.c: Moved to...
19932 * bb-reorder.cc: ...here.
19933 * bitmap.c: Moved to...
19934 * bitmap.cc: ...here.
19935 * btfout.c: Moved to...
19936 * btfout.cc: ...here.
19937 * builtins.c: Moved to...
19938 * builtins.cc: ...here.
19939 * caller-save.c: Moved to...
19940 * caller-save.cc: ...here.
19941 * calls.c: Moved to...
19942 * calls.cc: ...here.
19943 * ccmp.c: Moved to...
19944 * ccmp.cc: ...here.
19945 * cfg.c: Moved to...
19946 * cfg.cc: ...here.
19947 * cfganal.c: Moved to...
19948 * cfganal.cc: ...here.
19949 * cfgbuild.c: Moved to...
19950 * cfgbuild.cc: ...here.
19951 * cfgcleanup.c: Moved to...
19952 * cfgcleanup.cc: ...here.
19953 * cfgexpand.c: Moved to...
19954 * cfgexpand.cc: ...here.
19955 * cfghooks.c: Moved to...
19956 * cfghooks.cc: ...here.
19957 * cfgloop.c: Moved to...
19958 * cfgloop.cc: ...here.
19959 * cfgloopanal.c: Moved to...
19960 * cfgloopanal.cc: ...here.
19961 * cfgloopmanip.c: Moved to...
19962 * cfgloopmanip.cc: ...here.
19963 * cfgrtl.c: Moved to...
19964 * cfgrtl.cc: ...here.
19965 * cgraph.c: Moved to...
19966 * cgraph.cc: ...here.
19967 * cgraphbuild.c: Moved to...
19968 * cgraphbuild.cc: ...here.
19969 * cgraphclones.c: Moved to...
19970 * cgraphclones.cc: ...here.
19971 * cgraphunit.c: Moved to...
19972 * cgraphunit.cc: ...here.
19973 * collect-utils.c: Moved to...
19974 * collect-utils.cc: ...here.
19975 * collect2-aix.c: Moved to...
19976 * collect2-aix.cc: ...here.
19977 * collect2.c: Moved to...
19978 * collect2.cc: ...here.
19979 * combine-stack-adj.c: Moved to...
19980 * combine-stack-adj.cc: ...here.
19981 * combine.c: Moved to...
19982 * combine.cc: ...here.
19983 * common/common-targhooks.c: Moved to...
19984 * common/common-targhooks.cc: ...here.
19985 * common/config/aarch64/aarch64-common.c: Moved to...
19986 * common/config/aarch64/aarch64-common.cc: ...here.
19987 * common/config/alpha/alpha-common.c: Moved to...
19988 * common/config/alpha/alpha-common.cc: ...here.
19989 * common/config/arc/arc-common.c: Moved to...
19990 * common/config/arc/arc-common.cc: ...here.
19991 * common/config/arm/arm-common.c: Moved to...
19992 * common/config/arm/arm-common.cc: ...here.
19993 * common/config/avr/avr-common.c: Moved to...
19994 * common/config/avr/avr-common.cc: ...here.
19995 * common/config/bfin/bfin-common.c: Moved to...
19996 * common/config/bfin/bfin-common.cc: ...here.
19997 * common/config/bpf/bpf-common.c: Moved to...
19998 * common/config/bpf/bpf-common.cc: ...here.
19999 * common/config/c6x/c6x-common.c: Moved to...
20000 * common/config/c6x/c6x-common.cc: ...here.
20001 * common/config/cr16/cr16-common.c: Moved to...
20002 * common/config/cr16/cr16-common.cc: ...here.
20003 * common/config/cris/cris-common.c: Moved to...
20004 * common/config/cris/cris-common.cc: ...here.
20005 * common/config/csky/csky-common.c: Moved to...
20006 * common/config/csky/csky-common.cc: ...here.
20007 * common/config/default-common.c: Moved to...
20008 * common/config/default-common.cc: ...here.
20009 * common/config/epiphany/epiphany-common.c: Moved to...
20010 * common/config/epiphany/epiphany-common.cc: ...here.
20011 * common/config/fr30/fr30-common.c: Moved to...
20012 * common/config/fr30/fr30-common.cc: ...here.
20013 * common/config/frv/frv-common.c: Moved to...
20014 * common/config/frv/frv-common.cc: ...here.
20015 * common/config/gcn/gcn-common.c: Moved to...
20016 * common/config/gcn/gcn-common.cc: ...here.
20017 * common/config/h8300/h8300-common.c: Moved to...
20018 * common/config/h8300/h8300-common.cc: ...here.
20019 * common/config/i386/i386-common.c: Moved to...
20020 * common/config/i386/i386-common.cc: ...here.
20021 * common/config/ia64/ia64-common.c: Moved to...
20022 * common/config/ia64/ia64-common.cc: ...here.
20023 * common/config/iq2000/iq2000-common.c: Moved to...
20024 * common/config/iq2000/iq2000-common.cc: ...here.
20025 * common/config/lm32/lm32-common.c: Moved to...
20026 * common/config/lm32/lm32-common.cc: ...here.
20027 * common/config/m32r/m32r-common.c: Moved to...
20028 * common/config/m32r/m32r-common.cc: ...here.
20029 * common/config/m68k/m68k-common.c: Moved to...
20030 * common/config/m68k/m68k-common.cc: ...here.
20031 * common/config/mcore/mcore-common.c: Moved to...
20032 * common/config/mcore/mcore-common.cc: ...here.
20033 * common/config/microblaze/microblaze-common.c: Moved to...
20034 * common/config/microblaze/microblaze-common.cc: ...here.
20035 * common/config/mips/mips-common.c: Moved to...
20036 * common/config/mips/mips-common.cc: ...here.
20037 * common/config/mmix/mmix-common.c: Moved to...
20038 * common/config/mmix/mmix-common.cc: ...here.
20039 * common/config/mn10300/mn10300-common.c: Moved to...
20040 * common/config/mn10300/mn10300-common.cc: ...here.
20041 * common/config/msp430/msp430-common.c: Moved to...
20042 * common/config/msp430/msp430-common.cc: ...here.
20043 * common/config/nds32/nds32-common.c: Moved to...
20044 * common/config/nds32/nds32-common.cc: ...here.
20045 * common/config/nios2/nios2-common.c: Moved to...
20046 * common/config/nios2/nios2-common.cc: ...here.
20047 * common/config/nvptx/nvptx-common.c: Moved to...
20048 * common/config/nvptx/nvptx-common.cc: ...here.
20049 * common/config/or1k/or1k-common.c: Moved to...
20050 * common/config/or1k/or1k-common.cc: ...here.
20051 * common/config/pa/pa-common.c: Moved to...
20052 * common/config/pa/pa-common.cc: ...here.
20053 * common/config/pdp11/pdp11-common.c: Moved to...
20054 * common/config/pdp11/pdp11-common.cc: ...here.
20055 * common/config/pru/pru-common.c: Moved to...
20056 * common/config/pru/pru-common.cc: ...here.
20057 * common/config/riscv/riscv-common.c: Moved to...
20058 * common/config/riscv/riscv-common.cc: ...here.
20059 * common/config/rs6000/rs6000-common.c: Moved to...
20060 * common/config/rs6000/rs6000-common.cc: ...here.
20061 * common/config/rx/rx-common.c: Moved to...
20062 * common/config/rx/rx-common.cc: ...here.
20063 * common/config/s390/s390-common.c: Moved to...
20064 * common/config/s390/s390-common.cc: ...here.
20065 * common/config/sh/sh-common.c: Moved to...
20066 * common/config/sh/sh-common.cc: ...here.
20067 * common/config/sparc/sparc-common.c: Moved to...
20068 * common/config/sparc/sparc-common.cc: ...here.
20069 * common/config/tilegx/tilegx-common.c: Moved to...
20070 * common/config/tilegx/tilegx-common.cc: ...here.
20071 * common/config/tilepro/tilepro-common.c: Moved to...
20072 * common/config/tilepro/tilepro-common.cc: ...here.
20073 * common/config/v850/v850-common.c: Moved to...
20074 * common/config/v850/v850-common.cc: ...here.
20075 * common/config/vax/vax-common.c: Moved to...
20076 * common/config/vax/vax-common.cc: ...here.
20077 * common/config/visium/visium-common.c: Moved to...
20078 * common/config/visium/visium-common.cc: ...here.
20079 * common/config/xstormy16/xstormy16-common.c: Moved to...
20080 * common/config/xstormy16/xstormy16-common.cc: ...here.
20081 * common/config/xtensa/xtensa-common.c: Moved to...
20082 * common/config/xtensa/xtensa-common.cc: ...here.
20083 * compare-elim.c: Moved to...
20084 * compare-elim.cc: ...here.
20085 * config/aarch64/aarch64-bti-insert.c: Moved to...
20086 * config/aarch64/aarch64-bti-insert.cc: ...here.
20087 * config/aarch64/aarch64-builtins.c: Moved to...
20088 * config/aarch64/aarch64-builtins.cc: ...here.
20089 * config/aarch64/aarch64-c.c: Moved to...
20090 * config/aarch64/aarch64-c.cc: ...here.
20091 * config/aarch64/aarch64-d.c: Moved to...
20092 * config/aarch64/aarch64-d.cc: ...here.
20093 * config/aarch64/aarch64.c: Moved to...
20094 * config/aarch64/aarch64.cc: ...here.
20095 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
20096 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
20097 * config/aarch64/driver-aarch64.c: Moved to...
20098 * config/aarch64/driver-aarch64.cc: ...here.
20099 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
20100 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
20101 * config/aarch64/host-aarch64-darwin.c: Moved to...
20102 * config/aarch64/host-aarch64-darwin.cc: ...here.
20103 * config/alpha/alpha.c: Moved to...
20104 * config/alpha/alpha.cc: ...here.
20105 * config/alpha/driver-alpha.c: Moved to...
20106 * config/alpha/driver-alpha.cc: ...here.
20107 * config/arc/arc-c.c: Moved to...
20108 * config/arc/arc-c.cc: ...here.
20109 * config/arc/arc.c: Moved to...
20110 * config/arc/arc.cc: ...here.
20111 * config/arc/driver-arc.c: Moved to...
20112 * config/arc/driver-arc.cc: ...here.
20113 * config/arm/aarch-common.c: Moved to...
20114 * config/arm/aarch-common.cc: ...here.
20115 * config/arm/arm-builtins.c: Moved to...
20116 * config/arm/arm-builtins.cc: ...here.
20117 * config/arm/arm-c.c: Moved to...
20118 * config/arm/arm-c.cc: ...here.
20119 * config/arm/arm-d.c: Moved to...
20120 * config/arm/arm-d.cc: ...here.
20121 * config/arm/arm.c: Moved to...
20122 * config/arm/arm.cc: ...here.
20123 * config/arm/driver-arm.c: Moved to...
20124 * config/arm/driver-arm.cc: ...here.
20125 * config/avr/avr-c.c: Moved to...
20126 * config/avr/avr-c.cc: ...here.
20127 * config/avr/avr-devices.c: Moved to...
20128 * config/avr/avr-devices.cc: ...here.
20129 * config/avr/avr-log.c: Moved to...
20130 * config/avr/avr-log.cc: ...here.
20131 * config/avr/avr.c: Moved to...
20132 * config/avr/avr.cc: ...here.
20133 * config/avr/driver-avr.c: Moved to...
20134 * config/avr/driver-avr.cc: ...here.
20135 * config/avr/gen-avr-mmcu-specs.c: Moved to...
20136 * config/avr/gen-avr-mmcu-specs.cc: ...here.
20137 * config/avr/gen-avr-mmcu-texi.c: Moved to...
20138 * config/avr/gen-avr-mmcu-texi.cc: ...here.
20139 * config/bfin/bfin.c: Moved to...
20140 * config/bfin/bfin.cc: ...here.
20141 * config/bpf/bpf.c: Moved to...
20142 * config/bpf/bpf.cc: ...here.
20143 * config/bpf/coreout.c: Moved to...
20144 * config/bpf/coreout.cc: ...here.
20145 * config/c6x/c6x.c: Moved to...
20146 * config/c6x/c6x.cc: ...here.
20147 * config/cr16/cr16.c: Moved to...
20148 * config/cr16/cr16.cc: ...here.
20149 * config/cris/cris.c: Moved to...
20150 * config/cris/cris.cc: ...here.
20151 * config/csky/csky.c: Moved to...
20152 * config/csky/csky.cc: ...here.
20153 * config/darwin-c.c: Moved to...
20154 * config/darwin-c.cc: ...here.
20155 * config/darwin-d.c: Moved to...
20156 * config/darwin-d.cc: ...here.
20157 * config/darwin-driver.c: Moved to...
20158 * config/darwin-driver.cc: ...here.
20159 * config/darwin-f.c: Moved to...
20160 * config/darwin-f.cc: ...here.
20161 * config/darwin.c: Moved to...
20162 * config/darwin.cc: ...here.
20163 * config/default-c.c: Moved to...
20164 * config/default-c.cc: ...here.
20165 * config/default-d.c: Moved to...
20166 * config/default-d.cc: ...here.
20167 * config/dragonfly-d.c: Moved to...
20168 * config/dragonfly-d.cc: ...here.
20169 * config/epiphany/epiphany.c: Moved to...
20170 * config/epiphany/epiphany.cc: ...here.
20171 * config/epiphany/mode-switch-use.c: Moved to...
20172 * config/epiphany/mode-switch-use.cc: ...here.
20173 * config/epiphany/resolve-sw-modes.c: Moved to...
20174 * config/epiphany/resolve-sw-modes.cc: ...here.
20175 * config/fr30/fr30.c: Moved to...
20176 * config/fr30/fr30.cc: ...here.
20177 * config/freebsd-d.c: Moved to...
20178 * config/freebsd-d.cc: ...here.
20179 * config/frv/frv.c: Moved to...
20180 * config/frv/frv.cc: ...here.
20181 * config/ft32/ft32.c: Moved to...
20182 * config/ft32/ft32.cc: ...here.
20183 * config/gcn/driver-gcn.c: Moved to...
20184 * config/gcn/driver-gcn.cc: ...here.
20185 * config/gcn/gcn-run.c: Moved to...
20186 * config/gcn/gcn-run.cc: ...here.
20187 * config/gcn/gcn-tree.c: Moved to...
20188 * config/gcn/gcn-tree.cc: ...here.
20189 * config/gcn/gcn.c: Moved to...
20190 * config/gcn/gcn.cc: ...here.
20191 * config/gcn/mkoffload.c: Moved to...
20192 * config/gcn/mkoffload.cc: ...here.
20193 * config/glibc-c.c: Moved to...
20194 * config/glibc-c.cc: ...here.
20195 * config/glibc-d.c: Moved to...
20196 * config/glibc-d.cc: ...here.
20197 * config/h8300/h8300.c: Moved to...
20198 * config/h8300/h8300.cc: ...here.
20199 * config/host-darwin.c: Moved to...
20200 * config/host-darwin.cc: ...here.
20201 * config/host-hpux.c: Moved to...
20202 * config/host-hpux.cc: ...here.
20203 * config/host-linux.c: Moved to...
20204 * config/host-linux.cc: ...here.
20205 * config/host-netbsd.c: Moved to...
20206 * config/host-netbsd.cc: ...here.
20207 * config/host-openbsd.c: Moved to...
20208 * config/host-openbsd.cc: ...here.
20209 * config/host-solaris.c: Moved to...
20210 * config/host-solaris.cc: ...here.
20211 * config/i386/djgpp.c: Moved to...
20212 * config/i386/djgpp.cc: ...here.
20213 * config/i386/driver-i386.c: Moved to...
20214 * config/i386/driver-i386.cc: ...here.
20215 * config/i386/driver-mingw32.c: Moved to...
20216 * config/i386/driver-mingw32.cc: ...here.
20217 * config/i386/gnu-property.c: Moved to...
20218 * config/i386/gnu-property.cc: ...here.
20219 * config/i386/host-cygwin.c: Moved to...
20220 * config/i386/host-cygwin.cc: ...here.
20221 * config/i386/host-i386-darwin.c: Moved to...
20222 * config/i386/host-i386-darwin.cc: ...here.
20223 * config/i386/host-mingw32.c: Moved to...
20224 * config/i386/host-mingw32.cc: ...here.
20225 * config/i386/i386-builtins.c: Moved to...
20226 * config/i386/i386-builtins.cc: ...here.
20227 * config/i386/i386-c.c: Moved to...
20228 * config/i386/i386-c.cc: ...here.
20229 * config/i386/i386-d.c: Moved to...
20230 * config/i386/i386-d.cc: ...here.
20231 * config/i386/i386-expand.c: Moved to...
20232 * config/i386/i386-expand.cc: ...here.
20233 * config/i386/i386-features.c: Moved to...
20234 * config/i386/i386-features.cc: ...here.
20235 * config/i386/i386-options.c: Moved to...
20236 * config/i386/i386-options.cc: ...here.
20237 * config/i386/i386.c: Moved to...
20238 * config/i386/i386.cc: ...here.
20239 * config/i386/intelmic-mkoffload.c: Moved to...
20240 * config/i386/intelmic-mkoffload.cc: ...here.
20241 * config/i386/msformat-c.c: Moved to...
20242 * config/i386/msformat-c.cc: ...here.
20243 * config/i386/winnt-cxx.c: Moved to...
20244 * config/i386/winnt-cxx.cc: ...here.
20245 * config/i386/winnt-d.c: Moved to...
20246 * config/i386/winnt-d.cc: ...here.
20247 * config/i386/winnt-stubs.c: Moved to...
20248 * config/i386/winnt-stubs.cc: ...here.
20249 * config/i386/winnt.c: Moved to...
20250 * config/i386/winnt.cc: ...here.
20251 * config/i386/x86-tune-sched-atom.c: Moved to...
20252 * config/i386/x86-tune-sched-atom.cc: ...here.
20253 * config/i386/x86-tune-sched-bd.c: Moved to...
20254 * config/i386/x86-tune-sched-bd.cc: ...here.
20255 * config/i386/x86-tune-sched-core.c: Moved to...
20256 * config/i386/x86-tune-sched-core.cc: ...here.
20257 * config/i386/x86-tune-sched.c: Moved to...
20258 * config/i386/x86-tune-sched.cc: ...here.
20259 * config/ia64/ia64-c.c: Moved to...
20260 * config/ia64/ia64-c.cc: ...here.
20261 * config/ia64/ia64.c: Moved to...
20262 * config/ia64/ia64.cc: ...here.
20263 * config/iq2000/iq2000.c: Moved to...
20264 * config/iq2000/iq2000.cc: ...here.
20265 * config/linux.c: Moved to...
20266 * config/linux.cc: ...here.
20267 * config/lm32/lm32.c: Moved to...
20268 * config/lm32/lm32.cc: ...here.
20269 * config/m32c/m32c-pragma.c: Moved to...
20270 * config/m32c/m32c-pragma.cc: ...here.
20271 * config/m32c/m32c.c: Moved to...
20272 * config/m32c/m32c.cc: ...here.
20273 * config/m32r/m32r.c: Moved to...
20274 * config/m32r/m32r.cc: ...here.
20275 * config/m68k/m68k.c: Moved to...
20276 * config/m68k/m68k.cc: ...here.
20277 * config/mcore/mcore.c: Moved to...
20278 * config/mcore/mcore.cc: ...here.
20279 * config/microblaze/microblaze-c.c: Moved to...
20280 * config/microblaze/microblaze-c.cc: ...here.
20281 * config/microblaze/microblaze.c: Moved to...
20282 * config/microblaze/microblaze.cc: ...here.
20283 * config/mips/driver-native.c: Moved to...
20284 * config/mips/driver-native.cc: ...here.
20285 * config/mips/frame-header-opt.c: Moved to...
20286 * config/mips/frame-header-opt.cc: ...here.
20287 * config/mips/mips-d.c: Moved to...
20288 * config/mips/mips-d.cc: ...here.
20289 * config/mips/mips.c: Moved to...
20290 * config/mips/mips.cc: ...here.
20291 * config/mmix/mmix.c: Moved to...
20292 * config/mmix/mmix.cc: ...here.
20293 * config/mn10300/mn10300.c: Moved to...
20294 * config/mn10300/mn10300.cc: ...here.
20295 * config/moxie/moxie.c: Moved to...
20296 * config/moxie/moxie.cc: ...here.
20297 * config/msp430/driver-msp430.c: Moved to...
20298 * config/msp430/driver-msp430.cc: ...here.
20299 * config/msp430/msp430-c.c: Moved to...
20300 * config/msp430/msp430-c.cc: ...here.
20301 * config/msp430/msp430-devices.c: Moved to...
20302 * config/msp430/msp430-devices.cc: ...here.
20303 * config/msp430/msp430.c: Moved to...
20304 * config/msp430/msp430.cc: ...here.
20305 * config/nds32/nds32-cost.c: Moved to...
20306 * config/nds32/nds32-cost.cc: ...here.
20307 * config/nds32/nds32-fp-as-gp.c: Moved to...
20308 * config/nds32/nds32-fp-as-gp.cc: ...here.
20309 * config/nds32/nds32-intrinsic.c: Moved to...
20310 * config/nds32/nds32-intrinsic.cc: ...here.
20311 * config/nds32/nds32-isr.c: Moved to...
20312 * config/nds32/nds32-isr.cc: ...here.
20313 * config/nds32/nds32-md-auxiliary.c: Moved to...
20314 * config/nds32/nds32-md-auxiliary.cc: ...here.
20315 * config/nds32/nds32-memory-manipulation.c: Moved to...
20316 * config/nds32/nds32-memory-manipulation.cc: ...here.
20317 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
20318 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
20319 * config/nds32/nds32-predicates.c: Moved to...
20320 * config/nds32/nds32-predicates.cc: ...here.
20321 * config/nds32/nds32-relax-opt.c: Moved to...
20322 * config/nds32/nds32-relax-opt.cc: ...here.
20323 * config/nds32/nds32-utils.c: Moved to...
20324 * config/nds32/nds32-utils.cc: ...here.
20325 * config/nds32/nds32.c: Moved to...
20326 * config/nds32/nds32.cc: ...here.
20327 * config/netbsd-d.c: Moved to...
20328 * config/netbsd-d.cc: ...here.
20329 * config/netbsd.c: Moved to...
20330 * config/netbsd.cc: ...here.
20331 * config/nios2/nios2.c: Moved to...
20332 * config/nios2/nios2.cc: ...here.
20333 * config/nvptx/mkoffload.c: Moved to...
20334 * config/nvptx/mkoffload.cc: ...here.
20335 * config/nvptx/nvptx-c.c: Moved to...
20336 * config/nvptx/nvptx-c.cc: ...here.
20337 * config/nvptx/nvptx.c: Moved to...
20338 * config/nvptx/nvptx.cc: ...here.
20339 * config/openbsd-d.c: Moved to...
20340 * config/openbsd-d.cc: ...here.
20341 * config/or1k/or1k.c: Moved to...
20342 * config/or1k/or1k.cc: ...here.
20343 * config/pa/pa-d.c: Moved to...
20344 * config/pa/pa-d.cc: ...here.
20345 * config/pa/pa.c: Moved to...
20346 * config/pa/pa.cc: ...here.
20347 * config/pdp11/pdp11.c: Moved to...
20348 * config/pdp11/pdp11.cc: ...here.
20349 * config/pru/pru-passes.c: Moved to...
20350 * config/pru/pru-passes.cc: ...here.
20351 * config/pru/pru-pragma.c: Moved to...
20352 * config/pru/pru-pragma.cc: ...here.
20353 * config/pru/pru.c: Moved to...
20354 * config/pru/pru.cc: ...here.
20355 * config/riscv/riscv-builtins.c: Moved to...
20356 * config/riscv/riscv-builtins.cc: ...here.
20357 * config/riscv/riscv-c.c: Moved to...
20358 * config/riscv/riscv-c.cc: ...here.
20359 * config/riscv/riscv-d.c: Moved to...
20360 * config/riscv/riscv-d.cc: ...here.
20361 * config/riscv/riscv-shorten-memrefs.c: Moved to...
20362 * config/riscv/riscv-shorten-memrefs.cc: ...here.
20363 * config/riscv/riscv-sr.c: Moved to...
20364 * config/riscv/riscv-sr.cc: ...here.
20365 * config/riscv/riscv.c: Moved to...
20366 * config/riscv/riscv.cc: ...here.
20367 * config/rl78/rl78-c.c: Moved to...
20368 * config/rl78/rl78-c.cc: ...here.
20369 * config/rl78/rl78.c: Moved to...
20370 * config/rl78/rl78.cc: ...here.
20371 * config/rs6000/driver-rs6000.c: Moved to...
20372 * config/rs6000/driver-rs6000.cc: ...here.
20373 * config/rs6000/host-darwin.c: Moved to...
20374 * config/rs6000/host-darwin.cc: ...here.
20375 * config/rs6000/host-ppc64-darwin.c: Moved to...
20376 * config/rs6000/host-ppc64-darwin.cc: ...here.
20377 * config/rs6000/rbtree.c: Moved to...
20378 * config/rs6000/rbtree.cc: ...here.
20379 * config/rs6000/rs6000-c.c: Moved to...
20380 * config/rs6000/rs6000-c.cc: ...here.
20381 * config/rs6000/rs6000-call.c: Moved to...
20382 * config/rs6000/rs6000-call.cc: ...here.
20383 * config/rs6000/rs6000-d.c: Moved to...
20384 * config/rs6000/rs6000-d.cc: ...here.
20385 * config/rs6000/rs6000-gen-builtins.c: Moved to...
20386 * config/rs6000/rs6000-gen-builtins.cc: ...here.
20387 * config/rs6000/rs6000-linux.c: Moved to...
20388 * config/rs6000/rs6000-linux.cc: ...here.
20389 * config/rs6000/rs6000-logue.c: Moved to...
20390 * config/rs6000/rs6000-logue.cc: ...here.
20391 * config/rs6000/rs6000-p8swap.c: Moved to...
20392 * config/rs6000/rs6000-p8swap.cc: ...here.
20393 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
20394 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
20395 * config/rs6000/rs6000-string.c: Moved to...
20396 * config/rs6000/rs6000-string.cc: ...here.
20397 * config/rs6000/rs6000.c: Moved to...
20398 * config/rs6000/rs6000.cc: ...here.
20399 * config/rx/rx.c: Moved to...
20400 * config/rx/rx.cc: ...here.
20401 * config/s390/driver-native.c: Moved to...
20402 * config/s390/driver-native.cc: ...here.
20403 * config/s390/s390-c.c: Moved to...
20404 * config/s390/s390-c.cc: ...here.
20405 * config/s390/s390-d.c: Moved to...
20406 * config/s390/s390-d.cc: ...here.
20407 * config/s390/s390.c: Moved to...
20408 * config/s390/s390.cc: ...here.
20409 * config/sh/divtab-sh4-300.c: Moved to...
20410 * config/sh/divtab-sh4-300.cc: ...here.
20411 * config/sh/divtab-sh4.c: Moved to...
20412 * config/sh/divtab-sh4.cc: ...here.
20413 * config/sh/divtab.c: Moved to...
20414 * config/sh/divtab.cc: ...here.
20415 * config/sh/sh-c.c: Moved to...
20416 * config/sh/sh-c.cc: ...here.
20417 * config/sh/sh.c: Moved to...
20418 * config/sh/sh.cc: ...here.
20419 * config/sol2-c.c: Moved to...
20420 * config/sol2-c.cc: ...here.
20421 * config/sol2-cxx.c: Moved to...
20422 * config/sol2-cxx.cc: ...here.
20423 * config/sol2-d.c: Moved to...
20424 * config/sol2-d.cc: ...here.
20425 * config/sol2-stubs.c: Moved to...
20426 * config/sol2-stubs.cc: ...here.
20427 * config/sol2.c: Moved to...
20428 * config/sol2.cc: ...here.
20429 * config/sparc/driver-sparc.c: Moved to...
20430 * config/sparc/driver-sparc.cc: ...here.
20431 * config/sparc/sparc-c.c: Moved to...
20432 * config/sparc/sparc-c.cc: ...here.
20433 * config/sparc/sparc-d.c: Moved to...
20434 * config/sparc/sparc-d.cc: ...here.
20435 * config/sparc/sparc.c: Moved to...
20436 * config/sparc/sparc.cc: ...here.
20437 * config/stormy16/stormy16.c: Moved to...
20438 * config/stormy16/stormy16.cc: ...here.
20439 * config/tilegx/mul-tables.c: Moved to...
20440 * config/tilegx/mul-tables.cc: ...here.
20441 * config/tilegx/tilegx-c.c: Moved to...
20442 * config/tilegx/tilegx-c.cc: ...here.
20443 * config/tilegx/tilegx.c: Moved to...
20444 * config/tilegx/tilegx.cc: ...here.
20445 * config/tilepro/mul-tables.c: Moved to...
20446 * config/tilepro/mul-tables.cc: ...here.
20447 * config/tilepro/tilepro-c.c: Moved to...
20448 * config/tilepro/tilepro-c.cc: ...here.
20449 * config/tilepro/tilepro.c: Moved to...
20450 * config/tilepro/tilepro.cc: ...here.
20451 * config/v850/v850-c.c: Moved to...
20452 * config/v850/v850-c.cc: ...here.
20453 * config/v850/v850.c: Moved to...
20454 * config/v850/v850.cc: ...here.
20455 * config/vax/vax.c: Moved to...
20456 * config/vax/vax.cc: ...here.
20457 * config/visium/visium.c: Moved to...
20458 * config/visium/visium.cc: ...here.
20459 * config/vms/vms-c.c: Moved to...
20460 * config/vms/vms-c.cc: ...here.
20461 * config/vms/vms-f.c: Moved to...
20462 * config/vms/vms-f.cc: ...here.
20463 * config/vms/vms.c: Moved to...
20464 * config/vms/vms.cc: ...here.
20465 * config/vxworks-c.c: Moved to...
20466 * config/vxworks-c.cc: ...here.
20467 * config/vxworks.c: Moved to...
20468 * config/vxworks.cc: ...here.
20469 * config/winnt-c.c: Moved to...
20470 * config/winnt-c.cc: ...here.
20471 * config/xtensa/xtensa.c: Moved to...
20472 * config/xtensa/xtensa.cc: ...here.
20473 * context.c: Moved to...
20474 * context.cc: ...here.
20475 * convert.c: Moved to...
20476 * convert.cc: ...here.
20477 * coverage.c: Moved to...
20478 * coverage.cc: ...here.
20479 * cppbuiltin.c: Moved to...
20480 * cppbuiltin.cc: ...here.
20481 * cppdefault.c: Moved to...
20482 * cppdefault.cc: ...here.
20483 * cprop.c: Moved to...
20484 * cprop.cc: ...here.
20485 * cse.c: Moved to...
20486 * cse.cc: ...here.
20487 * cselib.c: Moved to...
20488 * cselib.cc: ...here.
20489 * ctfc.c: Moved to...
20490 * ctfc.cc: ...here.
20491 * ctfout.c: Moved to...
20492 * ctfout.cc: ...here.
20493 * data-streamer-in.c: Moved to...
20494 * data-streamer-in.cc: ...here.
20495 * data-streamer-out.c: Moved to...
20496 * data-streamer-out.cc: ...here.
20497 * data-streamer.c: Moved to...
20498 * data-streamer.cc: ...here.
20499 * dbgcnt.c: Moved to...
20500 * dbgcnt.cc: ...here.
20501 * dbxout.c: Moved to...
20502 * dbxout.cc: ...here.
20503 * dce.c: Moved to...
20504 * dce.cc: ...here.
20505 * ddg.c: Moved to...
20506 * ddg.cc: ...here.
20507 * debug.c: Moved to...
20508 * debug.cc: ...here.
20509 * df-core.c: Moved to...
20510 * df-core.cc: ...here.
20511 * df-problems.c: Moved to...
20512 * df-problems.cc: ...here.
20513 * df-scan.c: Moved to...
20514 * df-scan.cc: ...here.
20515 * dfp.c: Moved to...
20516 * dfp.cc: ...here.
20517 * diagnostic-color.c: Moved to...
20518 * diagnostic-color.cc: ...here.
20519 * diagnostic-show-locus.c: Moved to...
20520 * diagnostic-show-locus.cc: ...here.
20521 * diagnostic-spec.c: Moved to...
20522 * diagnostic-spec.cc: ...here.
20523 * diagnostic.c: Moved to...
20524 * diagnostic.cc: ...here.
20525 * dojump.c: Moved to...
20526 * dojump.cc: ...here.
20527 * dominance.c: Moved to...
20528 * dominance.cc: ...here.
20529 * domwalk.c: Moved to...
20530 * domwalk.cc: ...here.
20531 * double-int.c: Moved to...
20532 * double-int.cc: ...here.
20533 * dse.c: Moved to...
20534 * dse.cc: ...here.
20535 * dumpfile.c: Moved to...
20536 * dumpfile.cc: ...here.
20537 * dwarf2asm.c: Moved to...
20538 * dwarf2asm.cc: ...here.
20539 * dwarf2cfi.c: Moved to...
20540 * dwarf2cfi.cc: ...here.
20541 * dwarf2ctf.c: Moved to...
20542 * dwarf2ctf.cc: ...here.
20543 * dwarf2out.c: Moved to...
20544 * dwarf2out.cc: ...here.
20545 * early-remat.c: Moved to...
20546 * early-remat.cc: ...here.
20547 * edit-context.c: Moved to...
20548 * edit-context.cc: ...here.
20549 * emit-rtl.c: Moved to...
20550 * emit-rtl.cc: ...here.
20551 * errors.c: Moved to...
20552 * errors.cc: ...here.
20553 * et-forest.c: Moved to...
20554 * et-forest.cc: ...here.
20555 * except.c: Moved to...
20556 * except.cc: ...here.
20557 * explow.c: Moved to...
20558 * explow.cc: ...here.
20559 * expmed.c: Moved to...
20560 * expmed.cc: ...here.
20561 * expr.c: Moved to...
20562 * expr.cc: ...here.
20563 * fibonacci_heap.c: Moved to...
20564 * fibonacci_heap.cc: ...here.
20565 * file-find.c: Moved to...
20566 * file-find.cc: ...here.
20567 * file-prefix-map.c: Moved to...
20568 * file-prefix-map.cc: ...here.
20569 * final.c: Moved to...
20570 * final.cc: ...here.
20571 * fixed-value.c: Moved to...
20572 * fixed-value.cc: ...here.
20573 * fold-const-call.c: Moved to...
20574 * fold-const-call.cc: ...here.
20575 * fold-const.c: Moved to...
20576 * fold-const.cc: ...here.
20577 * fp-test.c: Moved to...
20578 * fp-test.cc: ...here.
20579 * function-tests.c: Moved to...
20580 * function-tests.cc: ...here.
20581 * function.c: Moved to...
20582 * function.cc: ...here.
20583 * fwprop.c: Moved to...
20584 * fwprop.cc: ...here.
20585 * gcc-ar.c: Moved to...
20586 * gcc-ar.cc: ...here.
20587 * gcc-main.c: Moved to...
20588 * gcc-main.cc: ...here.
20589 * gcc-rich-location.c: Moved to...
20590 * gcc-rich-location.cc: ...here.
20591 * gcc.c: Moved to...
20592 * gcc.cc: ...here.
20593 * gcov-dump.c: Moved to...
20594 * gcov-dump.cc: ...here.
20595 * gcov-io.c: Moved to...
20596 * gcov-io.cc: ...here.
20597 * gcov-tool.c: Moved to...
20598 * gcov-tool.cc: ...here.
20599 * gcov.c: Moved to...
20600 * gcov.cc: ...here.
20601 * gcse-common.c: Moved to...
20602 * gcse-common.cc: ...here.
20603 * gcse.c: Moved to...
20604 * gcse.cc: ...here.
20605 * genattr-common.c: Moved to...
20606 * genattr-common.cc: ...here.
20607 * genattr.c: Moved to...
20608 * genattr.cc: ...here.
20609 * genattrtab.c: Moved to...
20610 * genattrtab.cc: ...here.
20611 * genautomata.c: Moved to...
20612 * genautomata.cc: ...here.
20613 * gencfn-macros.c: Moved to...
20614 * gencfn-macros.cc: ...here.
20615 * gencheck.c: Moved to...
20616 * gencheck.cc: ...here.
20617 * genchecksum.c: Moved to...
20618 * genchecksum.cc: ...here.
20619 * gencodes.c: Moved to...
20620 * gencodes.cc: ...here.
20621 * genconditions.c: Moved to...
20622 * genconditions.cc: ...here.
20623 * genconfig.c: Moved to...
20624 * genconfig.cc: ...here.
20625 * genconstants.c: Moved to...
20626 * genconstants.cc: ...here.
20627 * genemit.c: Moved to...
20628 * genemit.cc: ...here.
20629 * genenums.c: Moved to...
20630 * genenums.cc: ...here.
20631 * generic-match-head.c: Moved to...
20632 * generic-match-head.cc: ...here.
20633 * genextract.c: Moved to...
20634 * genextract.cc: ...here.
20635 * genflags.c: Moved to...
20636 * genflags.cc: ...here.
20637 * gengenrtl.c: Moved to...
20638 * gengenrtl.cc: ...here.
20639 * gengtype-parse.c: Moved to...
20640 * gengtype-parse.cc: ...here.
20641 * gengtype-state.c: Moved to...
20642 * gengtype-state.cc: ...here.
20643 * gengtype.c: Moved to...
20644 * gengtype.cc: ...here.
20645 * genhooks.c: Moved to...
20646 * genhooks.cc: ...here.
20647 * genmatch.c: Moved to...
20648 * genmatch.cc: ...here.
20649 * genmddeps.c: Moved to...
20650 * genmddeps.cc: ...here.
20651 * genmddump.c: Moved to...
20652 * genmddump.cc: ...here.
20653 * genmodes.c: Moved to...
20654 * genmodes.cc: ...here.
20655 * genopinit.c: Moved to...
20656 * genopinit.cc: ...here.
20657 * genoutput.c: Moved to...
20658 * genoutput.cc: ...here.
20659 * genpeep.c: Moved to...
20660 * genpeep.cc: ...here.
20661 * genpreds.c: Moved to...
20662 * genpreds.cc: ...here.
20663 * genrecog.c: Moved to...
20664 * genrecog.cc: ...here.
20665 * gensupport.c: Moved to...
20666 * gensupport.cc: ...here.
20667 * gentarget-def.c: Moved to...
20668 * gentarget-def.cc: ...here.
20669 * genversion.c: Moved to...
20670 * genversion.cc: ...here.
20671 * ggc-common.c: Moved to...
20672 * ggc-common.cc: ...here.
20673 * ggc-none.c: Moved to...
20674 * ggc-none.cc: ...here.
20675 * ggc-page.c: Moved to...
20676 * ggc-page.cc: ...here.
20677 * ggc-tests.c: Moved to...
20678 * ggc-tests.cc: ...here.
20679 * gimple-builder.c: Moved to...
20680 * gimple-builder.cc: ...here.
20681 * gimple-expr.c: Moved to...
20682 * gimple-expr.cc: ...here.
20683 * gimple-fold.c: Moved to...
20684 * gimple-fold.cc: ...here.
20685 * gimple-iterator.c: Moved to...
20686 * gimple-iterator.cc: ...here.
20687 * gimple-laddress.c: Moved to...
20688 * gimple-laddress.cc: ...here.
20689 * gimple-loop-jam.c: Moved to...
20690 * gimple-loop-jam.cc: ...here.
20691 * gimple-low.c: Moved to...
20692 * gimple-low.cc: ...here.
20693 * gimple-match-head.c: Moved to...
20694 * gimple-match-head.cc: ...here.
20695 * gimple-pretty-print.c: Moved to...
20696 * gimple-pretty-print.cc: ...here.
20697 * gimple-ssa-backprop.c: Moved to...
20698 * gimple-ssa-backprop.cc: ...here.
20699 * gimple-ssa-evrp-analyze.c: Moved to...
20700 * gimple-ssa-evrp-analyze.cc: ...here.
20701 * gimple-ssa-evrp.c: Moved to...
20702 * gimple-ssa-evrp.cc: ...here.
20703 * gimple-ssa-isolate-paths.c: Moved to...
20704 * gimple-ssa-isolate-paths.cc: ...here.
20705 * gimple-ssa-nonnull-compare.c: Moved to...
20706 * gimple-ssa-nonnull-compare.cc: ...here.
20707 * gimple-ssa-split-paths.c: Moved to...
20708 * gimple-ssa-split-paths.cc: ...here.
20709 * gimple-ssa-sprintf.c: Moved to...
20710 * gimple-ssa-sprintf.cc: ...here.
20711 * gimple-ssa-store-merging.c: Moved to...
20712 * gimple-ssa-store-merging.cc: ...here.
20713 * gimple-ssa-strength-reduction.c: Moved to...
20714 * gimple-ssa-strength-reduction.cc: ...here.
20715 * gimple-ssa-warn-alloca.c: Moved to...
20716 * gimple-ssa-warn-alloca.cc: ...here.
20717 * gimple-ssa-warn-restrict.c: Moved to...
20718 * gimple-ssa-warn-restrict.cc: ...here.
20719 * gimple-streamer-in.c: Moved to...
20720 * gimple-streamer-in.cc: ...here.
20721 * gimple-streamer-out.c: Moved to...
20722 * gimple-streamer-out.cc: ...here.
20723 * gimple-walk.c: Moved to...
20724 * gimple-walk.cc: ...here.
20725 * gimple-warn-recursion.c: Moved to...
20726 * gimple-warn-recursion.cc: ...here.
20727 * gimple.c: Moved to...
20728 * gimple.cc: ...here.
20729 * gimplify-me.c: Moved to...
20730 * gimplify-me.cc: ...here.
20731 * gimplify.c: Moved to...
20732 * gimplify.cc: ...here.
20733 * godump.c: Moved to...
20734 * godump.cc: ...here.
20735 * graph.c: Moved to...
20736 * graph.cc: ...here.
20737 * graphds.c: Moved to...
20738 * graphds.cc: ...here.
20739 * graphite-dependences.c: Moved to...
20740 * graphite-dependences.cc: ...here.
20741 * graphite-isl-ast-to-gimple.c: Moved to...
20742 * graphite-isl-ast-to-gimple.cc: ...here.
20743 * graphite-optimize-isl.c: Moved to...
20744 * graphite-optimize-isl.cc: ...here.
20745 * graphite-poly.c: Moved to...
20746 * graphite-poly.cc: ...here.
20747 * graphite-scop-detection.c: Moved to...
20748 * graphite-scop-detection.cc: ...here.
20749 * graphite-sese-to-poly.c: Moved to...
20750 * graphite-sese-to-poly.cc: ...here.
20751 * graphite.c: Moved to...
20752 * graphite.cc: ...here.
20753 * haifa-sched.c: Moved to...
20754 * haifa-sched.cc: ...here.
20755 * hash-map-tests.c: Moved to...
20756 * hash-map-tests.cc: ...here.
20757 * hash-set-tests.c: Moved to...
20758 * hash-set-tests.cc: ...here.
20759 * hash-table.c: Moved to...
20760 * hash-table.cc: ...here.
20761 * hooks.c: Moved to...
20762 * hooks.cc: ...here.
20763 * host-default.c: Moved to...
20764 * host-default.cc: ...here.
20765 * hw-doloop.c: Moved to...
20766 * hw-doloop.cc: ...here.
20767 * hwint.c: Moved to...
20768 * hwint.cc: ...here.
20769 * ifcvt.c: Moved to...
20770 * ifcvt.cc: ...here.
20771 * inchash.c: Moved to...
20772 * inchash.cc: ...here.
20773 * incpath.c: Moved to...
20774 * incpath.cc: ...here.
20775 * init-regs.c: Moved to...
20776 * init-regs.cc: ...here.
20777 * input.c: Moved to...
20778 * input.cc: ...here.
20779 * internal-fn.c: Moved to...
20780 * internal-fn.cc: ...here.
20781 * intl.c: Moved to...
20782 * intl.cc: ...here.
20783 * ipa-comdats.c: Moved to...
20784 * ipa-comdats.cc: ...here.
20785 * ipa-cp.c: Moved to...
20786 * ipa-cp.cc: ...here.
20787 * ipa-devirt.c: Moved to...
20788 * ipa-devirt.cc: ...here.
20789 * ipa-fnsummary.c: Moved to...
20790 * ipa-fnsummary.cc: ...here.
20791 * ipa-icf-gimple.c: Moved to...
20792 * ipa-icf-gimple.cc: ...here.
20793 * ipa-icf.c: Moved to...
20794 * ipa-icf.cc: ...here.
20795 * ipa-inline-analysis.c: Moved to...
20796 * ipa-inline-analysis.cc: ...here.
20797 * ipa-inline-transform.c: Moved to...
20798 * ipa-inline-transform.cc: ...here.
20799 * ipa-inline.c: Moved to...
20800 * ipa-inline.cc: ...here.
20801 * ipa-modref-tree.c: Moved to...
20802 * ipa-modref-tree.cc: ...here.
20803 * ipa-modref.c: Moved to...
20804 * ipa-modref.cc: ...here.
20805 * ipa-param-manipulation.c: Moved to...
20806 * ipa-param-manipulation.cc: ...here.
20807 * ipa-polymorphic-call.c: Moved to...
20808 * ipa-polymorphic-call.cc: ...here.
20809 * ipa-predicate.c: Moved to...
20810 * ipa-predicate.cc: ...here.
20811 * ipa-profile.c: Moved to...
20812 * ipa-profile.cc: ...here.
20813 * ipa-prop.c: Moved to...
20814 * ipa-prop.cc: ...here.
20815 * ipa-pure-const.c: Moved to...
20816 * ipa-pure-const.cc: ...here.
20817 * ipa-ref.c: Moved to...
20818 * ipa-ref.cc: ...here.
20819 * ipa-reference.c: Moved to...
20820 * ipa-reference.cc: ...here.
20821 * ipa-split.c: Moved to...
20822 * ipa-split.cc: ...here.
20823 * ipa-sra.c: Moved to...
20824 * ipa-sra.cc: ...here.
20825 * ipa-utils.c: Moved to...
20826 * ipa-utils.cc: ...here.
20827 * ipa-visibility.c: Moved to...
20828 * ipa-visibility.cc: ...here.
20829 * ipa.c: Moved to...
20830 * ipa.cc: ...here.
20831 * ira-build.c: Moved to...
20832 * ira-build.cc: ...here.
20833 * ira-color.c: Moved to...
20834 * ira-color.cc: ...here.
20835 * ira-conflicts.c: Moved to...
20836 * ira-conflicts.cc: ...here.
20837 * ira-costs.c: Moved to...
20838 * ira-costs.cc: ...here.
20839 * ira-emit.c: Moved to...
20840 * ira-emit.cc: ...here.
20841 * ira-lives.c: Moved to...
20842 * ira-lives.cc: ...here.
20843 * ira.c: Moved to...
20844 * ira.cc: ...here.
20845 * jump.c: Moved to...
20846 * jump.cc: ...here.
20847 * langhooks.c: Moved to...
20848 * langhooks.cc: ...here.
20849 * lcm.c: Moved to...
20850 * lcm.cc: ...here.
20851 * lists.c: Moved to...
20852 * lists.cc: ...here.
20853 * loop-doloop.c: Moved to...
20854 * loop-doloop.cc: ...here.
20855 * loop-init.c: Moved to...
20856 * loop-init.cc: ...here.
20857 * loop-invariant.c: Moved to...
20858 * loop-invariant.cc: ...here.
20859 * loop-iv.c: Moved to...
20860 * loop-iv.cc: ...here.
20861 * loop-unroll.c: Moved to...
20862 * loop-unroll.cc: ...here.
20863 * lower-subreg.c: Moved to...
20864 * lower-subreg.cc: ...here.
20865 * lra-assigns.c: Moved to...
20866 * lra-assigns.cc: ...here.
20867 * lra-coalesce.c: Moved to...
20868 * lra-coalesce.cc: ...here.
20869 * lra-constraints.c: Moved to...
20870 * lra-constraints.cc: ...here.
20871 * lra-eliminations.c: Moved to...
20872 * lra-eliminations.cc: ...here.
20873 * lra-lives.c: Moved to...
20874 * lra-lives.cc: ...here.
20875 * lra-remat.c: Moved to...
20876 * lra-remat.cc: ...here.
20877 * lra-spills.c: Moved to...
20878 * lra-spills.cc: ...here.
20879 * lra.c: Moved to...
20880 * lra.cc: ...here.
20881 * lto-cgraph.c: Moved to...
20882 * lto-cgraph.cc: ...here.
20883 * lto-compress.c: Moved to...
20884 * lto-compress.cc: ...here.
20885 * lto-opts.c: Moved to...
20886 * lto-opts.cc: ...here.
20887 * lto-section-in.c: Moved to...
20888 * lto-section-in.cc: ...here.
20889 * lto-section-out.c: Moved to...
20890 * lto-section-out.cc: ...here.
20891 * lto-streamer-in.c: Moved to...
20892 * lto-streamer-in.cc: ...here.
20893 * lto-streamer-out.c: Moved to...
20894 * lto-streamer-out.cc: ...here.
20895 * lto-streamer.c: Moved to...
20896 * lto-streamer.cc: ...here.
20897 * lto-wrapper.c: Moved to...
20898 * lto-wrapper.cc: ...here.
20899 * main.c: Moved to...
20900 * main.cc: ...here.
20901 * mcf.c: Moved to...
20902 * mcf.cc: ...here.
20903 * mode-switching.c: Moved to...
20904 * mode-switching.cc: ...here.
20905 * modulo-sched.c: Moved to...
20906 * modulo-sched.cc: ...here.
20907 * multiple_target.c: Moved to...
20908 * multiple_target.cc: ...here.
20909 * omp-expand.c: Moved to...
20910 * omp-expand.cc: ...here.
20911 * omp-general.c: Moved to...
20912 * omp-general.cc: ...here.
20913 * omp-low.c: Moved to...
20914 * omp-low.cc: ...here.
20915 * omp-offload.c: Moved to...
20916 * omp-offload.cc: ...here.
20917 * omp-simd-clone.c: Moved to...
20918 * omp-simd-clone.cc: ...here.
20919 * opt-suggestions.c: Moved to...
20920 * opt-suggestions.cc: ...here.
20921 * optabs-libfuncs.c: Moved to...
20922 * optabs-libfuncs.cc: ...here.
20923 * optabs-query.c: Moved to...
20924 * optabs-query.cc: ...here.
20925 * optabs-tree.c: Moved to...
20926 * optabs-tree.cc: ...here.
20927 * optabs.c: Moved to...
20928 * optabs.cc: ...here.
20929 * opts-common.c: Moved to...
20930 * opts-common.cc: ...here.
20931 * opts-global.c: Moved to...
20932 * opts-global.cc: ...here.
20933 * opts.c: Moved to...
20934 * opts.cc: ...here.
20935 * passes.c: Moved to...
20936 * passes.cc: ...here.
20937 * plugin.c: Moved to...
20938 * plugin.cc: ...here.
20939 * postreload-gcse.c: Moved to...
20940 * postreload-gcse.cc: ...here.
20941 * postreload.c: Moved to...
20942 * postreload.cc: ...here.
20943 * predict.c: Moved to...
20944 * predict.cc: ...here.
20945 * prefix.c: Moved to...
20946 * prefix.cc: ...here.
20947 * pretty-print.c: Moved to...
20948 * pretty-print.cc: ...here.
20949 * print-rtl-function.c: Moved to...
20950 * print-rtl-function.cc: ...here.
20951 * print-rtl.c: Moved to...
20952 * print-rtl.cc: ...here.
20953 * print-tree.c: Moved to...
20954 * print-tree.cc: ...here.
20955 * profile-count.c: Moved to...
20956 * profile-count.cc: ...here.
20957 * profile.c: Moved to...
20958 * profile.cc: ...here.
20959 * read-md.c: Moved to...
20960 * read-md.cc: ...here.
20961 * read-rtl-function.c: Moved to...
20962 * read-rtl-function.cc: ...here.
20963 * read-rtl.c: Moved to...
20964 * read-rtl.cc: ...here.
20965 * real.c: Moved to...
20966 * real.cc: ...here.
20967 * realmpfr.c: Moved to...
20968 * realmpfr.cc: ...here.
20969 * recog.c: Moved to...
20970 * recog.cc: ...here.
20971 * ree.c: Moved to...
20972 * ree.cc: ...here.
20973 * reg-stack.c: Moved to...
20974 * reg-stack.cc: ...here.
20975 * regcprop.c: Moved to...
20976 * regcprop.cc: ...here.
20977 * reginfo.c: Moved to...
20978 * reginfo.cc: ...here.
20979 * regrename.c: Moved to...
20980 * regrename.cc: ...here.
20981 * regstat.c: Moved to...
20982 * regstat.cc: ...here.
20983 * reload.c: Moved to...
20984 * reload.cc: ...here.
20985 * reload1.c: Moved to...
20986 * reload1.cc: ...here.
20987 * reorg.c: Moved to...
20988 * reorg.cc: ...here.
20989 * resource.c: Moved to...
20990 * resource.cc: ...here.
20991 * rtl-error.c: Moved to...
20992 * rtl-error.cc: ...here.
20993 * rtl-tests.c: Moved to...
20994 * rtl-tests.cc: ...here.
20995 * rtl.c: Moved to...
20996 * rtl.cc: ...here.
20997 * rtlanal.c: Moved to...
20998 * rtlanal.cc: ...here.
20999 * rtlhash.c: Moved to...
21000 * rtlhash.cc: ...here.
21001 * rtlhooks.c: Moved to...
21002 * rtlhooks.cc: ...here.
21003 * rtx-vector-builder.c: Moved to...
21004 * rtx-vector-builder.cc: ...here.
21005 * run-rtl-passes.c: Moved to...
21006 * run-rtl-passes.cc: ...here.
21007 * sancov.c: Moved to...
21008 * sancov.cc: ...here.
21009 * sanopt.c: Moved to...
21010 * sanopt.cc: ...here.
21011 * sbitmap.c: Moved to...
21012 * sbitmap.cc: ...here.
21013 * sched-deps.c: Moved to...
21014 * sched-deps.cc: ...here.
21015 * sched-ebb.c: Moved to...
21016 * sched-ebb.cc: ...here.
21017 * sched-rgn.c: Moved to...
21018 * sched-rgn.cc: ...here.
21019 * sel-sched-dump.c: Moved to...
21020 * sel-sched-dump.cc: ...here.
21021 * sel-sched-ir.c: Moved to...
21022 * sel-sched-ir.cc: ...here.
21023 * sel-sched.c: Moved to...
21024 * sel-sched.cc: ...here.
21025 * selftest-diagnostic.c: Moved to...
21026 * selftest-diagnostic.cc: ...here.
21027 * selftest-rtl.c: Moved to...
21028 * selftest-rtl.cc: ...here.
21029 * selftest-run-tests.c: Moved to...
21030 * selftest-run-tests.cc: ...here.
21031 * selftest.c: Moved to...
21032 * selftest.cc: ...here.
21033 * sese.c: Moved to...
21034 * sese.cc: ...here.
21035 * shrink-wrap.c: Moved to...
21036 * shrink-wrap.cc: ...here.
21037 * simplify-rtx.c: Moved to...
21038 * simplify-rtx.cc: ...here.
21039 * sparseset.c: Moved to...
21040 * sparseset.cc: ...here.
21041 * spellcheck-tree.c: Moved to...
21042 * spellcheck-tree.cc: ...here.
21043 * spellcheck.c: Moved to...
21044 * spellcheck.cc: ...here.
21045 * sreal.c: Moved to...
21046 * sreal.cc: ...here.
21047 * stack-ptr-mod.c: Moved to...
21048 * stack-ptr-mod.cc: ...here.
21049 * statistics.c: Moved to...
21050 * statistics.cc: ...here.
21051 * stmt.c: Moved to...
21052 * stmt.cc: ...here.
21053 * stor-layout.c: Moved to...
21054 * stor-layout.cc: ...here.
21055 * store-motion.c: Moved to...
21056 * store-motion.cc: ...here.
21057 * streamer-hooks.c: Moved to...
21058 * streamer-hooks.cc: ...here.
21059 * stringpool.c: Moved to...
21060 * stringpool.cc: ...here.
21061 * substring-locations.c: Moved to...
21062 * substring-locations.cc: ...here.
21063 * symtab.c: Moved to...
21064 * symtab.cc: ...here.
21065 * target-globals.c: Moved to...
21066 * target-globals.cc: ...here.
21067 * targhooks.c: Moved to...
21068 * targhooks.cc: ...here.
21069 * timevar.c: Moved to...
21070 * timevar.cc: ...here.
21071 * toplev.c: Moved to...
21072 * toplev.cc: ...here.
21073 * tracer.c: Moved to...
21074 * tracer.cc: ...here.
21075 * trans-mem.c: Moved to...
21076 * trans-mem.cc: ...here.
21077 * tree-affine.c: Moved to...
21078 * tree-affine.cc: ...here.
21079 * tree-call-cdce.c: Moved to...
21080 * tree-call-cdce.cc: ...here.
21081 * tree-cfg.c: Moved to...
21082 * tree-cfg.cc: ...here.
21083 * tree-cfgcleanup.c: Moved to...
21084 * tree-cfgcleanup.cc: ...here.
21085 * tree-chrec.c: Moved to...
21086 * tree-chrec.cc: ...here.
21087 * tree-complex.c: Moved to...
21088 * tree-complex.cc: ...here.
21089 * tree-data-ref.c: Moved to...
21090 * tree-data-ref.cc: ...here.
21091 * tree-dfa.c: Moved to...
21092 * tree-dfa.cc: ...here.
21093 * tree-diagnostic.c: Moved to...
21094 * tree-diagnostic.cc: ...here.
21095 * tree-dump.c: Moved to...
21096 * tree-dump.cc: ...here.
21097 * tree-eh.c: Moved to...
21098 * tree-eh.cc: ...here.
21099 * tree-emutls.c: Moved to...
21100 * tree-emutls.cc: ...here.
21101 * tree-if-conv.c: Moved to...
21102 * tree-if-conv.cc: ...here.
21103 * tree-inline.c: Moved to...
21104 * tree-inline.cc: ...here.
21105 * tree-into-ssa.c: Moved to...
21106 * tree-into-ssa.cc: ...here.
21107 * tree-iterator.c: Moved to...
21108 * tree-iterator.cc: ...here.
21109 * tree-loop-distribution.c: Moved to...
21110 * tree-loop-distribution.cc: ...here.
21111 * tree-nested.c: Moved to...
21112 * tree-nested.cc: ...here.
21113 * tree-nrv.c: Moved to...
21114 * tree-nrv.cc: ...here.
21115 * tree-object-size.c: Moved to...
21116 * tree-object-size.cc: ...here.
21117 * tree-outof-ssa.c: Moved to...
21118 * tree-outof-ssa.cc: ...here.
21119 * tree-parloops.c: Moved to...
21120 * tree-parloops.cc: ...here.
21121 * tree-phinodes.c: Moved to...
21122 * tree-phinodes.cc: ...here.
21123 * tree-predcom.c: Moved to...
21124 * tree-predcom.cc: ...here.
21125 * tree-pretty-print.c: Moved to...
21126 * tree-pretty-print.cc: ...here.
21127 * tree-profile.c: Moved to...
21128 * tree-profile.cc: ...here.
21129 * tree-scalar-evolution.c: Moved to...
21130 * tree-scalar-evolution.cc: ...here.
21131 * tree-sra.c: Moved to...
21132 * tree-sra.cc: ...here.
21133 * tree-ssa-address.c: Moved to...
21134 * tree-ssa-address.cc: ...here.
21135 * tree-ssa-alias.c: Moved to...
21136 * tree-ssa-alias.cc: ...here.
21137 * tree-ssa-ccp.c: Moved to...
21138 * tree-ssa-ccp.cc: ...here.
21139 * tree-ssa-coalesce.c: Moved to...
21140 * tree-ssa-coalesce.cc: ...here.
21141 * tree-ssa-copy.c: Moved to...
21142 * tree-ssa-copy.cc: ...here.
21143 * tree-ssa-dce.c: Moved to...
21144 * tree-ssa-dce.cc: ...here.
21145 * tree-ssa-dom.c: Moved to...
21146 * tree-ssa-dom.cc: ...here.
21147 * tree-ssa-dse.c: Moved to...
21148 * tree-ssa-dse.cc: ...here.
21149 * tree-ssa-forwprop.c: Moved to...
21150 * tree-ssa-forwprop.cc: ...here.
21151 * tree-ssa-ifcombine.c: Moved to...
21152 * tree-ssa-ifcombine.cc: ...here.
21153 * tree-ssa-live.c: Moved to...
21154 * tree-ssa-live.cc: ...here.
21155 * tree-ssa-loop-ch.c: Moved to...
21156 * tree-ssa-loop-ch.cc: ...here.
21157 * tree-ssa-loop-im.c: Moved to...
21158 * tree-ssa-loop-im.cc: ...here.
21159 * tree-ssa-loop-ivcanon.c: Moved to...
21160 * tree-ssa-loop-ivcanon.cc: ...here.
21161 * tree-ssa-loop-ivopts.c: Moved to...
21162 * tree-ssa-loop-ivopts.cc: ...here.
21163 * tree-ssa-loop-manip.c: Moved to...
21164 * tree-ssa-loop-manip.cc: ...here.
21165 * tree-ssa-loop-niter.c: Moved to...
21166 * tree-ssa-loop-niter.cc: ...here.
21167 * tree-ssa-loop-prefetch.c: Moved to...
21168 * tree-ssa-loop-prefetch.cc: ...here.
21169 * tree-ssa-loop-split.c: Moved to...
21170 * tree-ssa-loop-split.cc: ...here.
21171 * tree-ssa-loop-unswitch.c: Moved to...
21172 * tree-ssa-loop-unswitch.cc: ...here.
21173 * tree-ssa-loop.c: Moved to...
21174 * tree-ssa-loop.cc: ...here.
21175 * tree-ssa-math-opts.c: Moved to...
21176 * tree-ssa-math-opts.cc: ...here.
21177 * tree-ssa-operands.c: Moved to...
21178 * tree-ssa-operands.cc: ...here.
21179 * tree-ssa-phiopt.c: Moved to...
21180 * tree-ssa-phiopt.cc: ...here.
21181 * tree-ssa-phiprop.c: Moved to...
21182 * tree-ssa-phiprop.cc: ...here.
21183 * tree-ssa-pre.c: Moved to...
21184 * tree-ssa-pre.cc: ...here.
21185 * tree-ssa-propagate.c: Moved to...
21186 * tree-ssa-propagate.cc: ...here.
21187 * tree-ssa-reassoc.c: Moved to...
21188 * tree-ssa-reassoc.cc: ...here.
21189 * tree-ssa-sccvn.c: Moved to...
21190 * tree-ssa-sccvn.cc: ...here.
21191 * tree-ssa-scopedtables.c: Moved to...
21192 * tree-ssa-scopedtables.cc: ...here.
21193 * tree-ssa-sink.c: Moved to...
21194 * tree-ssa-sink.cc: ...here.
21195 * tree-ssa-strlen.c: Moved to...
21196 * tree-ssa-strlen.cc: ...here.
21197 * tree-ssa-structalias.c: Moved to...
21198 * tree-ssa-structalias.cc: ...here.
21199 * tree-ssa-tail-merge.c: Moved to...
21200 * tree-ssa-tail-merge.cc: ...here.
21201 * tree-ssa-ter.c: Moved to...
21202 * tree-ssa-ter.cc: ...here.
21203 * tree-ssa-threadbackward.c: Moved to...
21204 * tree-ssa-threadbackward.cc: ...here.
21205 * tree-ssa-threadedge.c: Moved to...
21206 * tree-ssa-threadedge.cc: ...here.
21207 * tree-ssa-threadupdate.c: Moved to...
21208 * tree-ssa-threadupdate.cc: ...here.
21209 * tree-ssa-uncprop.c: Moved to...
21210 * tree-ssa-uncprop.cc: ...here.
21211 * tree-ssa-uninit.c: Moved to...
21212 * tree-ssa-uninit.cc: ...here.
21213 * tree-ssa.c: Moved to...
21214 * tree-ssa.cc: ...here.
21215 * tree-ssanames.c: Moved to...
21216 * tree-ssanames.cc: ...here.
21217 * tree-stdarg.c: Moved to...
21218 * tree-stdarg.cc: ...here.
21219 * tree-streamer-in.c: Moved to...
21220 * tree-streamer-in.cc: ...here.
21221 * tree-streamer-out.c: Moved to...
21222 * tree-streamer-out.cc: ...here.
21223 * tree-streamer.c: Moved to...
21224 * tree-streamer.cc: ...here.
21225 * tree-switch-conversion.c: Moved to...
21226 * tree-switch-conversion.cc: ...here.
21227 * tree-tailcall.c: Moved to...
21228 * tree-tailcall.cc: ...here.
21229 * tree-vect-data-refs.c: Moved to...
21230 * tree-vect-data-refs.cc: ...here.
21231 * tree-vect-generic.c: Moved to...
21232 * tree-vect-generic.cc: ...here.
21233 * tree-vect-loop-manip.c: Moved to...
21234 * tree-vect-loop-manip.cc: ...here.
21235 * tree-vect-loop.c: Moved to...
21236 * tree-vect-loop.cc: ...here.
21237 * tree-vect-patterns.c: Moved to...
21238 * tree-vect-patterns.cc: ...here.
21239 * tree-vect-slp-patterns.c: Moved to...
21240 * tree-vect-slp-patterns.cc: ...here.
21241 * tree-vect-slp.c: Moved to...
21242 * tree-vect-slp.cc: ...here.
21243 * tree-vect-stmts.c: Moved to...
21244 * tree-vect-stmts.cc: ...here.
21245 * tree-vector-builder.c: Moved to...
21246 * tree-vector-builder.cc: ...here.
21247 * tree-vectorizer.c: Moved to...
21248 * tree-vectorizer.cc: ...here.
21249 * tree-vrp.c: Moved to...
21250 * tree-vrp.cc: ...here.
21251 * tree.c: Moved to...
21252 * tree.cc: ...here.
21253 * tsan.c: Moved to...
21254 * tsan.cc: ...here.
21255 * typed-splay-tree.c: Moved to...
21256 * typed-splay-tree.cc: ...here.
21257 * ubsan.c: Moved to...
21258 * ubsan.cc: ...here.
21259 * valtrack.c: Moved to...
21260 * valtrack.cc: ...here.
21261 * value-prof.c: Moved to...
21262 * value-prof.cc: ...here.
21263 * var-tracking.c: Moved to...
21264 * var-tracking.cc: ...here.
21265 * varasm.c: Moved to...
21266 * varasm.cc: ...here.
21267 * varpool.c: Moved to...
21268 * varpool.cc: ...here.
21269 * vec-perm-indices.c: Moved to...
21270 * vec-perm-indices.cc: ...here.
21271 * vec.c: Moved to...
21272 * vec.cc: ...here.
21273 * vmsdbgout.c: Moved to...
21274 * vmsdbgout.cc: ...here.
21275 * vr-values.c: Moved to...
21276 * vr-values.cc: ...here.
21277 * vtable-verify.c: Moved to...
21278 * vtable-verify.cc: ...here.
21279 * web.c: Moved to...
21280 * web.cc: ...here.
21281 * xcoffout.c: Moved to...
21282 * xcoffout.cc: ...here.
21283
21284 2022-01-17 qing zhao <qing.zhao@oracle.com>
21285
21286 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
21287 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
21288 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
21289 specially.
21290 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
21291 (warn_uninitialized_vars): Likewise.
21292 (warn_uninitialized_phi): Likewise.
21293
21294 2022-01-17 Jason Merrill <jason@redhat.com>
21295
21296 * diagnostic.h (struct diagnostic_context): Add includes_seen.
21297 * diagnostic.c (diagnostic_initialize): Initialize it.
21298 (diagnostic_finish): Clean it up.
21299 (includes_seen): New function.
21300 (diagnostic_report_current_module): Use it.
21301
21302 2022-01-17 Richard Biener <rguenther@suse.de>
21303
21304 PR middle-end/101292
21305 * diagnostic-spec.c (copy_warning): Make sure to not
21306 reference old hashtable content on possible resize.
21307 * warning-control.cc (copy_warning): Likewise.
21308
21309 2022-01-17 Jakub Jelinek <jakub@redhat.com>
21310
21311 PR target/103973
21312 * tree-cfg.h (cond_only_block_p): Declare.
21313 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
21314 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
21315 * optabs.def (spaceship_optab): New optab.
21316 * internal-fn.def (SPACESHIP): New internal function.
21317 * internal-fn.h (expand_SPACESHIP): Declare.
21318 * internal-fn.c (expand_PHI): Formatting fix.
21319 (expand_SPACESHIP): New function.
21320 * tree-ssa-math-opts.c (optimize_spaceship): New function.
21321 (math_opts_dom_walker::after_dom_children): Use it.
21322 * config/i386/i386.md (spaceship<mode>3): New define_expand.
21323 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
21324 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
21325 * doc/md.texi (spaceship@var{m}3): Document.
21326
21327 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
21328
21329 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
21330 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
21331 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
21332 known constant values to simplify code.
21333
21334 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
21335
21336 PR target/103124
21337 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
21338
21339 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
21340
21341 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
21342 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
21343 Insert zero-idiom in output template when attr enabled, set new attribute to
21344 true for non-mask/maskz insn.
21345 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
21346 Likewise.
21347 (avx512dq_mul<mode>3<mask_name>): Likewise.
21348 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
21349 (avx2_perm<mode>_1<mask_name>): Likewise.
21350 (avx512f_perm<mode>_1<mask_name>): Likewise.
21351 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
21352 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
21353 Likewise.
21354 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
21355 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
21356 Likewise.
21357 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
21358 subst_attr.
21359 (mask4_dest_false_dep_for_glc_cond): Likewise.
21360 (mask6_dest_false_dep_for_glc_cond): Likewise.
21361 (mask10_dest_false_dep_for_glc_cond): Likewise.
21362 (maskc_dest_false_dep_for_glc_cond): Likewise.
21363 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
21364 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
21365 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
21366 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
21367
21368 2022-01-15 Martin Sebor <msebor@redhat.com>
21369
21370 PR c/63272
21371 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
21372 -Wdangling-pointer.
21373 * doc/invoke.texi (-Wdangling-pointer): Document new option.
21374 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
21375 (pass_waccess::check_pointer_uses): New function.
21376 (pass_waccess::gimple_call_return_arg): New function.
21377 (pass_waccess::gimple_call_return_arg_ref): New function.
21378 (pass_waccess::check_call_dangling): New function.
21379 (pass_waccess::check_dangling_uses): New function overloads.
21380 (pass_waccess::check_dangling_stores): New function.
21381 (pass_waccess::check_dangling_stores): New function.
21382 (pass_waccess::m_clobbers): New data member.
21383 (pass_waccess::m_func): New data member.
21384 (pass_waccess::m_run_number): New data member.
21385 (pass_waccess::m_check_dangling_p): New data member.
21386 (pass_waccess::check_alloca): Check m_early_checks_p.
21387 (pass_waccess::check_alloc_size_call): Same.
21388 (pass_waccess::check_strcat): Same.
21389 (pass_waccess::check_strncat): Same.
21390 (pass_waccess::check_stxcpy): Same.
21391 (pass_waccess::check_stxncpy): Same.
21392 (pass_waccess::check_strncmp): Same.
21393 (pass_waccess::check_memop_access): Same.
21394 (pass_waccess::check_read_access): Same.
21395 (pass_waccess::check_builtin): Call check_pointer_uses.
21396 (pass_waccess::warn_invalid_pointer): Add arguments.
21397 (is_auto_decl): New function.
21398 (pass_waccess::check_stmt): New function.
21399 (pass_waccess::check_block): Call check_stmt.
21400 (pass_waccess::execute): Call check_dangling_uses,
21401 check_dangling_stores. Empty m_clobbers.
21402 * passes.def (pass_warn_access): Invoke pass two more times.
21403
21404 2022-01-15 Martin Sebor <msebor@redhat.com>
21405
21406 PR tree-optimization/80532
21407 * common.opt (-Wuse-after-free): New options.
21408 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
21409 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
21410 * diagnostic-spec.h (NW_DANGLING): New enumerator.
21411 * doc/invoke.texi (-Wuse-after-free): Document new option.
21412 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
21413 (pass_waccess::check_call_access): ...to this.
21414 (pass_waccess::check): Rename...
21415 (pass_waccess::check_block): ...to this.
21416 (pass_waccess::check_pointer_uses): New function.
21417 (pass_waccess::gimple_call_return_arg): New function.
21418 (pass_waccess::warn_invalid_pointer): New function.
21419 (pass_waccess::check_builtin): Handle free and realloc.
21420 (gimple_use_after_inval_p): New function.
21421 (get_realloc_lhs): New function.
21422 (maybe_warn_mismatched_realloc): New function.
21423 (pointers_related_p): New function.
21424 (pass_waccess::check_call): Call check_pointer_uses.
21425 (pass_waccess::execute): Compute and free dominance info.
21426
21427 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
21428
21429 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
21430 expand_simple_unop and expand_simple_binop instead of manually
21431 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
21432 consistently. Eliminate common subexpressions and simplify code.
21433 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
21434 (<any_logic:code><MODEF:mode>3): Make public.
21435
21436 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
21437
21438 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
21439 reverse flag as "reverse" for the sake of consistency.
21440 * ipa-sra.c: Fix copyright year.
21441 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
21442 (dump_isra_access): Tweak dump line.
21443 (isra_write_node_summary): Write the reverse flag.
21444 (isra_read_node_info): Read it.
21445 (pull_accesses_from_callee): Test its consistency and copy it.
21446
21447 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
21448
21449 PR middle-end/104026
21450 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
21451 partial_load_store_bias.
21452
21453 2022-01-14 Martin Sebor <msebor@redhat.com>
21454
21455 PR middle-end/101475
21456 * pointer-query.cc (handle_component_ref): Use the size of
21457 the enclosing object if it's smaller than the member.
21458
21459 2022-01-14 Martin Liska <mliska@suse.cz>
21460
21461 * configure: Regenerate.
21462
21463 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
21464
21465 * config/i386/i386.md (*add<mode>_1_slp"):
21466 Mark alternative 1 output operand earlyclobbered.
21467 (*sub<mode>_1_slp): Ditto.
21468 (*and<mode>_1_slp): Ditto.
21469 (*<code><mode>_1_slp): Ditto.
21470 (*neg<mode>_1_slp): Ditto.
21471 (*one_cmpl<mode>_1_slp): Ditto.
21472 (*ashl<mode>3_1_slp): Ditto.
21473 (*<insn><mode>3_1_slp): Ditto.
21474 (*<insn><mode>3_1_slp): Ditto.
21475
21476 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
21477
21478 PR tree-optimization/104015
21479 * tree-vect-loop.c (vect_analyze_loop): Check
21480 param_vect_partial_vector_usage for supports_partial_vectors.
21481
21482 2022-01-14 Jakub Jelinek <jakub@redhat.com>
21483
21484 PR c++/89074
21485 * fold-const.c (address_compare): Punt on comparison of address of
21486 one object with address of end of another object if
21487 folding_initializer.
21488
21489 2022-01-14 Jakub Jelinek <jakub@redhat.com>
21490
21491 PR target/98737
21492 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
21493 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
21494 and __atomic_op_fetch (p, x, y) iop x into
21495 __atomic_fetch_op (p, x, y).
21496
21497 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
21498
21499 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
21500 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
21501 (INCOMING_RETURN_ADDR_RTX): Likewise.
21502 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
21503
21504 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
21505
21506 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
21507 computin checking accumulator regs.
21508 (arc_expand_prologue): Update comments.
21509 (arc_expand_epilogue): Likewise.
21510
21511 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
21512 Uroš Bizjak <ubizjak@gmail.com>
21513
21514 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
21515 (ix86_expand_ti_to_v1ti): Use force_reg.
21516 (ix86_expand_v1ti_shift): Use force_reg.
21517 (ix86_expand_v1ti_rotate): Use force_reg.
21518 (ix86_expand_v1ti_ashiftrt): Provide new three operation
21519 implementations for shifts by 111..126 bits. Use force_reg.
21520
21521 2022-01-14 Martin Liska <mliska@suse.cz>
21522
21523 * common/config/arm/arm-common.c (arm_target_mode): Fix
21524 warning: unterminated quoting directive [-Wformat=].
21525
21526 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
21527
21528 PR tree-optimization/104009
21529 * tree-object-size.c (compute_builtin_object_size): Bail out on
21530 negative offset.
21531 (plus_stmt_object_size): Return maximum of wholesize and minimum
21532 of 0 for negative offset.
21533
21534 2022-01-14 liuhongt <hongtao.liu@intel.com>
21535
21536 PR target/104001
21537 PR target/94790
21538 PR target/104014
21539 * config/i386/i386.md (*xor2andn): Refine predicate of
21540 operands[0] from nonimmediate_operand to
21541 register_operand, remove TARGET_AVX512BW from condition.
21542
21543 2022-01-14 David Malcolm <dmalcolm@redhat.com>
21544
21545 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
21546 be used on field decls.
21547 (Common Function Attributes): Add entry on "tainted_args" attribute.
21548
21549 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
21550 Jason Merrill <jason@redhat.com>
21551
21552 PR c++/70417
21553 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
21554
21555 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
21556
21557 PR target/103861
21558 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
21559 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
21560 * config/i386/mmx.md (<any_shift:insn>v2qi):
21561 New insn_and_split pattern.
21562
21563 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
21564
21565 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
21566 (expand_partial_store_optab_fn): Likewise.
21567 (internal_len_load_store_bias): New function.
21568 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
21569 (internal_len_load_store_bias): New function.
21570 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
21571 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
21572 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
21573 (vect_estimate_min_profitable_iters): Account for bias.
21574 (vect_get_loop_len): Add bias-adjusted length.
21575 * tree-vect-stmts.c (vectorizable_store): Use.
21576 (vectorizable_load): Use.
21577 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
21578 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
21579 * config/rs6000/vsx.md: Use const0 bias predicate.
21580 * doc/md.texi: Document bias value.
21581
21582 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
21583
21584 PR tree-optimization/83072
21585 PR tree-optimization/83073
21586 PR tree-optimization/97909
21587 * fold-const.c (expr_not_equal_to): Use a multi-range class.
21588
21589 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
21590
21591 PR tree-optimization/96707
21592 * range-op.cc (operator_rshift::lhs_op1_relation): New.
21593
21594 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
21595
21596 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
21597 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
21598 (negv2qi splitters): Use lowpart_subreg instead of
21599 gen_lowpart to create subreg.
21600 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
21601 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
21602 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
21603 gen_lowpart to create subreg.
21604 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
21605
21606 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
21607
21608 PR target/104003
21609 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
21610
21611 2022-01-13 Martin Liska <mliska@suse.cz>
21612
21613 * common/config/arm/arm-common.c (arm_target_mode): Wrap
21614 keywords with %<, %> and remove trailing punctuation char.
21615 (arm_canon_arch_option_1): Likewise.
21616 (arm_asm_auto_mfpu): Likewise.
21617 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
21618 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
21619 (use_vfp_abi): Likewise.
21620 (aapcs_vfp_is_call_or_return_candidate): Likewise.
21621 (arm_handle_cmse_nonsecure_entry): Likewise.
21622 (arm_handle_cmse_nonsecure_call): Likewise.
21623 (thumb1_md_asm_adjust): Likewise.
21624
21625 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
21626
21627 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
21628 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
21629 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
21630 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
21631 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
21632 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
21633 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
21634 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
21635 macro.
21636
21637 2022-01-13 Jakub Jelinek <jakub@redhat.com>
21638
21639 PR tree-optimization/103989
21640 * tree-inline.c (setup_one_parameter): Don't copy parms with
21641 empty type.
21642
21643 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
21644
21645 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
21646 'TYPE_ADDR_SPACE' for offloading.
21647 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
21648 'TYPE_ADDR_SPACE' for offloading.
21649
21650 2022-01-13 Julian Brown <julian@codesourcery.com>
21651 Thomas Schwinge <thomas@codesourcery.com>
21652
21653 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
21654 of...
21655 (add_async_clauses_and_wait): ...here. Call new outlined function.
21656 (decompose_kernels_region_body): Add wait at the end of
21657 explicitly-asynchronous kernels regions.
21658
21659 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
21660
21661 PR middle-end/100280
21662 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
21663 Mark variables used in synthesized data clauses as addressable.
21664
21665 2022-01-13 Martin Liska <mliska@suse.cz>
21666
21667 * config/epiphany/epiphany.c (epiphany_mode_priority):
21668 Use gcc_unreachable for not handled cases.
21669
21670 2022-01-13 Martin Liska <mliska@suse.cz>
21671
21672 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
21673 Use %qs format specifier.
21674 (epiphany_override_options): Wrap keyword in %<, %>.
21675
21676 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
21677
21678 PR target/94790
21679 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
21680
21681 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
21682
21683 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
21684
21685 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
21686
21687 PR target/100637
21688 PR target/103861
21689 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
21690 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
21691 when constructing vector logic RTXes.
21692 (expand_vec_perm_pshufb2): Ditto.
21693 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
21694 (<plusminus:insn>v2qi3): Ditto.
21695 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
21696 (vcondu<mode><mode>): Ditto.
21697 (vcond_mask_<mode><mode>): Ditto.
21698 (one_cmpl<VI_32:mode>2): Remove expander.
21699 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
21700 Use VI_16_32 mode iterator.
21701 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
21702 Use lowpart_subreg instead of gen_lowpart to create subreg.
21703 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
21704 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
21705 Disparage GPR alternative a bit. Add CC clobber.
21706 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
21707 Use lowpart_subreg instead of gen_lowpart to create subreg.
21708 (*<any_logic:code><VI_16_32:mode>3): Merge from
21709 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
21710 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
21711 Add CC clobber.
21712 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
21713 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
21714
21715 2022-01-12 Clément Chigot <clement.chigot@atos.net>
21716
21717 * configure.ac: Check sizeof ino_t and dev_t.
21718 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
21719 syscall being able to handle 64bit inodes.
21720 * config.in: Regenerate.
21721 * configure: Regenerate.
21722 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
21723 (remove_duplicates): Use it.
21724
21725 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
21726
21727 PR tree-optimization/103551
21728 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
21729
21730 2022-01-12 Richard Biener <rguenther@suse.de>
21731
21732 PR tree-optimization/103990
21733 * tree-pass.h (tail_merge_optimize): Drop unused argument.
21734 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
21735 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
21736 and adjust call to tail_merge_optimize.
21737
21738 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
21739
21740 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
21741 does not add autovectorize_vector_modes.
21742
21743 2022-01-12 Martin Liska <mliska@suse.cz>
21744
21745 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
21746 %qs where possible.
21747 (aarch64_parse_sve_width_string): Likewise.
21748 (aarch64_override_options_internal): Likewise.
21749 (aarch64_print_hint_for_extensions): Likewise.
21750 (aarch64_validate_sls_mitigation): Likewise.
21751 (aarch64_handle_attr_arch): Likewise.
21752 (aarch64_handle_attr_cpu): Likewise.
21753 (aarch64_handle_attr_tune): Likewise.
21754 (aarch64_handle_attr_isa_flags): Likewise.
21755
21756 2022-01-12 Martin Liska <mliska@suse.cz>
21757
21758 * config.gcc: Include elfos.h before ${tm_file}.
21759
21760 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
21761
21762 * config/cris/cris.c: Quote identifiers in parameters to error
21763 and internal_error, and remove extraneous spaces with punctuation.
21764 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
21765 expression to internal_error, pass it as a parameter instead of
21766 appending it to the format part.
21767
21768 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
21769
21770 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
21771 parameter to as_a.
21772
21773 2022-01-11 qing zhao <qing.zhao@oracle.com>
21774
21775 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
21776 Change the 3rd argument of function .DEFERRED_INIT to the name of the
21777 decl.
21778 (gimplify_decl_expr): Delete the 3rd argument when call
21779 gimple_add_init_for_auto_var.
21780 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
21781 the 3rd argument change of function .DEFERRED_INIT.
21782 * tree-cfg.c (verify_gimple_call): Update comments and verification
21783 to reflect the 3rd argument change of function .DEFERRED_INIT.
21784 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
21785 (sra_modify_deferred_init): Change the 3rd argument of function
21786 .DEFERRED_INIT to the name of the decl.
21787
21788 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
21789
21790 * flag-types.h (enum gfc_convert): Add flags for
21791 conversion.
21792
21793 2022-01-11 Michael Meissner <meissner@the-meissners.org>
21794
21795 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
21796 checks for only C/C++ front ends before allowing the long double
21797 format to change without a warning.
21798
21799 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
21800
21801 PR rtl-optimization/103974
21802 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
21803 extra argument, default true, that says whether old-reload
21804 targets should be excluded.
21805 * ira-color.c (color_pass): Pass false.
21806
21807 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
21808
21809 PR target/103861
21810 * config/i386/mmx.md (vcond<mode><mode>):
21811 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
21812 (vcondu<mode><mode>): Ditto.
21813 (vcond_mask_<mode><mode>): Ditto.
21814 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
21815 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
21816 Use VI_16_32 mode iterator.
21817 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
21818 Update for rename. Handle V2QImode.
21819 (expand_vec_perm_blend): Update for rename.
21820
21821 2022-01-11 Jakub Jelinek <jakub@redhat.com>
21822
21823 PR c++/101597
21824 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
21825
21826 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
21827
21828 PR middle-end/70090
21829 * tree-object-size.c (size_valid_p): New function.
21830 (size_for_offset): Remove OFFSET constness assertion.
21831 (addr_object_size): Build dynamic expressions for object
21832 sizes and use size_valid_p to decide if it is valid for the
21833 given OBJECT_SIZE_TYPE.
21834 (compute_builtin_object_size): Allow dynamic offsets when
21835 computing size at O0.
21836 (call_object_size): Call size_valid_p.
21837 (plus_stmt_object_size): Allow non-constant offset and use
21838 size_valid_p to decide if it is valid for the given
21839 OBJECT_SIZE_TYPE.
21840
21841 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
21842
21843 PR middle-end/70090
21844 * tree-object-size.c (alloc_object_size): Make and return
21845 non-constant size expression.
21846 (call_object_size): Return expression or unknown based on
21847 whether dynamic object size is requested.
21848
21849 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
21850
21851 PR middle-end/70090
21852 * tree-object-size.c: Include tree-dfa.h.
21853 (parm_object_size): New function.
21854 (collect_object_sizes_for): Call it.
21855
21856 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
21857
21858 PR middle-end/70090
21859 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
21860 expressions.
21861 * tree-object-size.c: Include gimplify-me.h.
21862 (struct object_size_info): New member UNKNOWNS.
21863 (size_initval_p, size_usable_p, object_sizes_get_raw): New
21864 functions.
21865 (object_sizes_get): Return suitable gimple variable for
21866 object size.
21867 (bundle_sizes): New function.
21868 (object_sizes_set): Use it and handle dynamic object size
21869 expressions.
21870 (object_sizes_set_temp): New function.
21871 (size_for_offset): Adjust for dynamic size expressions.
21872 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
21873 New functions.
21874 (compute_builtin_object_size): Call gimplify_size_expressions
21875 for OST_DYNAMIC.
21876 (dynamic_object_size): New function.
21877 (cond_expr_object_size): Use it.
21878 (phi_dynamic_object_size): New function.
21879 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
21880 accommodate dynamic object sizes.
21881
21882 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
21883 Jakub Jelinek <jakub@redhat.com>
21884
21885 PR tree-optimization/103961
21886 * tree-object-size.c (plus_stmt_object_size): Always avoid
21887 computing offset for -1 size.
21888
21889 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
21890
21891 PR tree-optimization/103821
21892 * range-op.cc (range_operator::fold_range): Only do precise ranges
21893 when there are not too many subranges.
21894
21895 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
21896
21897 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
21898 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
21899
21900 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
21901 Richard Biener <rguenther@suse.de>
21902
21903 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
21904 highpart_mults_inserted field.
21905 (convert_mult_to_highpart): New function to convert right shift
21906 of a widening multiply into a MULT_HIGHPART_EXPR.
21907 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
21908 Call new convert_mult_to_highpart function.
21909 (pass_optimize_widening_mul::execute): Add a statistics counter
21910 for tracking "highpart multiplications inserted" events.
21911
21912 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
21913
21914 PR target/102239
21915 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
21916 declare.
21917 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
21918 function.
21919 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
21920
21921 2022-01-11 Olivier Hainque <hainque@adacore.com>
21922
21923 * gcc.c (driver_handle_option): State --sysroot as
21924 validated.
21925
21926 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
21927
21928 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
21929 useless related to option -mno-power10.
21930
21931 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
21932
21933 PR target/53652
21934 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
21935 operands[1] from register_operand to vector_operand.
21936
21937 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
21938
21939 PR target/103861
21940 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
21941 Handle V2QImode.
21942 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
21943 Use VI1_16_32 mode iterator.
21944 (*eq<mode>3): Ditto.
21945 (*gt<mode>3): Ditto.
21946 (*xop_maskcmp<mode>3): Ditto.
21947 (*xop_maskcmp_uns<mode>3): Ditto.
21948 (vec_cmp<mode><mode>): Ditto.
21949 (vec_cmpu<mode><mode>): Ditto.
21950
21951 2022-01-10 Richard Biener <rguenther@suse.de>
21952
21953 PR tree-optimization/103948
21954 * tree-vect-generic.c (expand_vector_condition): Return true if
21955 all ones vector is returned for true, all zeros vector for false
21956 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
21957
21958 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
21959
21960 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
21961 when _ARCH_PWR10. Use signed types.
21962 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
21963 (_mm_blendv_pd): Likewise.
21964
21965 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
21966
21967 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
21968 epilogue costing.
21969 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
21970 epilogues, unless we are guaranteed that we can't have partial vectors.
21971 * genopinit.c: (partial_vectors_supported): Generate new function.
21972
21973 2022-01-10 Jakub Jelinek <jakub@redhat.com>
21974
21975 PR target/102024
21976 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
21977 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
21978 always ignore them, when seeing other zero sized bitfields, either
21979 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
21980 it. Pass it to recursive calls. Add wrapper
21981 with old arguments and diagnose ABI differences for C structures
21982 with zero width bitfields. Formatting fixes.
21983
21984 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
21985
21986 PR rtl-optimization/98782
21987 * ira-int.h (ira_soft_conflict): Declare.
21988 * ira-color.c (max_soft_conflict_loop_depth): New constant.
21989 (ira_soft_conflict): New function.
21990 (spill_soft_conflicts): Likewise.
21991 (assign_hard_reg): Use them to handle the case described by
21992 the comment above ira_soft_conflict.
21993 (improve_allocation): Likewise.
21994 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
21995 to share the same register.
21996
21997 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
21998
21999 PR rtl-optimization/98782
22000 * ira-int.h (ira_caller_save_cost): New function.
22001 (ira_caller_save_loop_spill_p): Likewise.
22002 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
22003 cheaper to spill a call-clobbered register throughout a loop rather
22004 than spill it around each individual call. If so, treat all
22005 call-clobbered registers as conflicts and...
22006 (propagate_allocno_info): ...do not propagate call information
22007 from the child to the parent.
22008 * ira-color.c (move_spill_restore): Update accordingly.
22009 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
22010
22011 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
22012
22013 PR rtl-optimization/98782
22014 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
22015 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
22016 (ira_single_region_allocno_p): New function.
22017 (ira_total_conflict_hard_regs): Likewise.
22018 * ira-build.c (ira_create_allocno): Initialize
22019 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
22020 (ira_propagate_hard_reg_costs): New function.
22021 (propagate_allocno_info): Use it. Try to avoid propagating
22022 hard register conflicts to parent allocnos if we can handle
22023 the conflicts by spilling instead. Limit the propagated
22024 register costs to the cost of spilling throughout the child loop.
22025 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
22026 test whether a child and parent allocno can share the same
22027 register.
22028 (move_spill_restore): Adjust for the new behavior of
22029 propagate_allocno_info.
22030
22031 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
22032
22033 PR rtl-optimization/98782
22034 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
22035 extracted from...
22036 * ira-color.c (color_pass): ...here.
22037
22038 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
22039
22040 PR rtl-optimization/98782
22041 * ira-color.c (color_pass): Add comments to describe the spill costs.
22042 (move_spill_restore): Likewise. Fix reversed calculation.
22043
22044 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
22045
22046 PR rtl-optimization/98782
22047 * ira-int.h (ira_loop_border_costs): New class.
22048 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
22049 New constructor.
22050 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
22051 (color_pass): Likewise.
22052 (move_spill_restore): Likewise.
22053
22054 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
22055
22056 PR target/103465
22057 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
22058
22059 2022-01-10 Richard Biener <rguenther@suse.de>
22060
22061 PR tree-optimization/100359
22062 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
22063 Allow non-growing peeling with !allow_peel and UL_ALL.
22064
22065 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
22066
22067 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
22068 special case for TImode to V1TImode moves, going via V2DImode.
22069
22070 2022-01-08 Jakub Jelinek <jakub@redhat.com>
22071
22072 PR c++/89074
22073 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
22074 simplification.
22075
22076 2022-01-08 David Malcolm <dmalcolm@redhat.com>
22077
22078 * doc/analyzer.texi
22079 (Special Functions for Debugging the Analyzer): Document
22080 __analyzer_dump_escaped.
22081
22082 2022-01-08 David Malcolm <dmalcolm@redhat.com>
22083
22084 * doc/analyzer.texi (Other Debugging Techniques): Document
22085 region::is_named_decl_p.
22086
22087 2022-01-07 Andrew Pinski <apinski@marvell.com>
22088
22089 PR target/102941
22090 * config/arm/aarch-common.c (arm_md_asm_adjust):
22091 Use a temp if !REG_P.
22092
22093 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
22094
22095 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
22096 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
22097
22098 2022-01-07 liuhongt <hongtao.liu@intel.com>
22099
22100 PR rtl-optimization/103750
22101 * fwprop.c (forward_propagate_into): Allow propagations from
22102 inner loop to outer loop.
22103
22104 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
22105
22106 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
22107
22108 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
22109
22110 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
22111 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
22112 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
22113
22114 2022-01-07 liuhongt <hongtao.liu@intel.com>
22115
22116 * config/i386/sse.md
22117 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
22118 UNSPEC_PCMP_UNSIGNED.
22119
22120 2022-01-07 liuhongt <hongtao.liu@intel.com>
22121
22122 PR target/103753
22123 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
22124 gen_avx2_pblendph_1 when elt == 0.
22125 * config/i386/sse.md (avx2_pblendph): Rename to ..
22126 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
22127 (*avx2_pblendw): Rename to ..
22128 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
22129 (avx2_pblendw): Rename to ..
22130 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
22131 (blendsuf): Removed.
22132 (sse4_1_pblend<blendsuf>): Renamed to ..
22133 (sse4_1_pblend<ssemodesuffix>): .. this.
22134
22135 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
22136
22137 PR target/103925
22138 * config/i386/i386.c (ix86_output_indirect_function_return):
22139 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
22140
22141 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
22142
22143 PR target/102952
22144 * config/i386/i386-opts.h (harden_sls): Replace
22145 harden_sls_indirect_branch with harden_sls_indirect_jmp.
22146 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
22147 Likewise.
22148 (ix86_output_indirect_jmp): Likewise.
22149 (ix86_output_call_insn): Likewise.
22150 * config/i386/i386.opt: Replace indirect-branch with
22151 indirect-jmp. Replace harden_sls_indirect_branch with
22152 harden_sls_indirect_jmp.
22153 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
22154 indirect-jmp.
22155
22156 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
22157
22158 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
22159 Add %q modifier for operands in general registers.
22160 <MODE_SI>: Add %q modifier for operands in general registers.
22161 * config/i386/i386.md (*movhi_internal): Change type attribute of
22162 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
22163 to SImode for non-avx512fp16 targets.
22164 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
22165 * config/i386/mmx.md (*movv2qi_internal):
22166 Ditto for xmm-gpr interunit alternatives 8,9.
22167
22168 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
22169
22170 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
22171 vector extensions.
22172 (riscv_ext_version_table): Add version info for vector extensions.
22173 (riscv_ext_flag_table): Add option mask for vector extensions.
22174 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
22175 (MASK_VECTOR_EEW_64): New.
22176 (MASK_VECTOR_EEW_FP_32): New.
22177 (MASK_VECTOR_EEW_FP_64): New.
22178 (MASK_ZVL32B): New.
22179 (MASK_ZVL64B): New.
22180 (MASK_ZVL128B): New.
22181 (MASK_ZVL256B): New.
22182 (MASK_ZVL512B): New.
22183 (MASK_ZVL1024B): New.
22184 (MASK_ZVL2048B): New.
22185 (MASK_ZVL4096B): New.
22186 (MASK_ZVL8192B): New.
22187 (MASK_ZVL16384B): New.
22188 (MASK_ZVL32768B): New.
22189 (MASK_ZVL65536B): New.
22190 (TARGET_ZVL32B): New.
22191 (TARGET_ZVL64B): New.
22192 (TARGET_ZVL128B): New.
22193 (TARGET_ZVL256B): New.
22194 (TARGET_ZVL512B): New.
22195 (TARGET_ZVL1024B): New.
22196 (TARGET_ZVL2048B): New.
22197 (TARGET_ZVL4096B): New.
22198 (TARGET_ZVL8192B): New.
22199 (TARGET_ZVL16384B): New.
22200 (TARGET_ZVL32768B): New.
22201 (TARGET_ZVL65536B): New.
22202 * config/riscv/riscv.opt (Mask(VECTOR)): New.
22203 (riscv_vector_eew_flags): New.
22204 (riscv_zvl_flags): New.
22205
22206 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
22207
22208 * common/config/riscv/riscv-common.c
22209 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
22210 digit.
22211
22212 2022-01-06 Jakub Jelinek <jakub@redhat.com>
22213
22214 PR tree-optimization/103899
22215 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
22216 warning by moving context variable to the only spot where it is used
22217 and moving gcc_assert into if body.
22218
22219 2022-01-06 Jakub Jelinek <jakub@redhat.com>
22220
22221 PR rtl-optimization/103908
22222 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
22223 asm goto.
22224
22225 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
22226
22227 PR target/103622
22228 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
22229 Skip over instances with undefined function types.
22230
22231 2022-01-05 Andrew Pinski <apinski@marvell.com>
22232
22233 PR target/103910
22234 * config/i386/i386.h (x86_mfence): Mark with GTY.
22235
22236 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
22237
22238 PR target/103861
22239 * config/i386/mmx.md (VI_16_32): New mode iterator.
22240 (VI1_16_32): Ditto.
22241 (mmxvecsize): Handle V2QI mode.
22242 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
22243 Use VI1_16_32 mode iterator.
22244 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
22245 Use VI1_16_32 mode iterator.
22246 (abs<mode>2): Use VI_16_32 mode iterator.
22247 (uavgv2qi3_ceil): New insn pattern.
22248
22249 2022-01-05 Martin Sebor <msebor@redhat.com>
22250
22251 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
22252 %qs to avoid -Wformat-diag.
22253
22254 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
22255
22256 PR target/103915
22257 * config/i386/mmx.md (one_cmplv2qi2): Change
22258 alternatives 1,2 type from sselog to sselog1.
22259
22260 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
22261
22262 PR target/103905
22263 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
22264 narrow mode remapped elements for !one_operand_p case.
22265
22266 2022-01-05 Richard Biener <rguenther@suse.de>
22267
22268 PR tree-optimization/103816
22269 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
22270 check DR_GROUP_GAP compute for overflow and representability.
22271
22272 2022-01-05 Jakub Jelinek <jakub@redhat.com>
22273
22274 PR fortran/103691
22275 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
22276 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
22277 it can do unwanted rhs folding like &a[0] into &2.0 etc.
22278
22279 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
22280
22281 PR ipa/102059
22282 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
22283 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
22284 (rs6000_need_ipa_fn_target_info): New function.
22285 (rs6000_update_ipa_fn_target_info): Likewise.
22286 (rs6000_can_inline_p): Adjust for ipa function summary target info.
22287 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
22288 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
22289 summary target info.
22290 (analyze_function_body): Adjust for ipa function summary target info
22291 and call hook rs6000_need_ipa_fn_target_info and
22292 rs6000_update_ipa_fn_target_info.
22293 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
22294 target info.
22295 (inline_read_section): Likewise.
22296 (ipa_fn_summary_write): Likewise.
22297 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
22298 * doc/tm.texi: Regenerate.
22299 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
22300 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
22301 * target.def (update_ipa_fn_target_info): New hook.
22302 (need_ipa_fn_target_info): Likewise.
22303 * targhooks.c (default_need_ipa_fn_target_info): New function.
22304 (default_update_ipa_fn_target_info): Likewise.
22305 * targhooks.h (default_update_ipa_fn_target_info): New declare.
22306 (default_need_ipa_fn_target_info): Likewise.
22307
22308 2022-01-04 Martin Sebor <msebor@redhat.com>
22309
22310 PR middle-end/99612
22311 * builtins.c (get_memmodel): Move warning code to
22312 gimple-ssa-warn-access.cc.
22313 (expand_builtin_atomic_compare_exchange): Same.
22314 (expand_ifn_atomic_compare_exchange): Same.
22315 (expand_builtin_atomic_load): Same.
22316 (expand_builtin_atomic_store): Same.
22317 (expand_builtin_atomic_clear): Same.
22318 * doc/extend.texi (__atomic_exchange_n): Update valid memory
22319 models.
22320 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
22321 (struct memmodel_pair): New struct.
22322 (memmodel_name): New function.
22323 (pass_waccess::maybe_warn_memmodel): New function.
22324 (pass_waccess::check_atomic_memmodel): New function.
22325 (pass_waccess::check_atomic_builtin): Handle memory model.
22326 * input.c (expansion_point_location_if_in_system_header): Return
22327 original location if expansion location is in a system header.
22328
22329 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
22330
22331 PR target/103861
22332 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
22333 (one_cmplv2qi3 splitters): New post-reload splitters.
22334 (*andnotv2qi3): New insn pattern.
22335 (andnotv2qi3 splitters): New post-reload splitters.
22336 (<any_logic:code>v2qi3): New insn pattern.
22337 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
22338
22339 2022-01-04 Richard Biener <rguenther@suse.de>
22340
22341 PR tree-optimization/103800
22342 * tree-vect-loop.c (vectorizable_phi): Remove assert and
22343 expand comment.
22344
22345 2022-01-04 Richard Biener <rguenther@suse.de>
22346
22347 PR tree-optimization/103690
22348 * tree-pass.h (tail_merge_optimize): Adjust.
22349 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
22350 to re-split critical edges, move CFG cleanup ...
22351 * tree-ssa-pre.c (pass_pre::execute): ... here, before
22352 simple_dce_from_worklist and delay freeing inserted_exprs from
22353 ...
22354 (fini_pre): .. here.
22355
22356 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
22357
22358 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
22359 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
22360 (setcc_from_bi): Remove SImode specific pattern.
22361 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
22362 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
22363 for sign- and zero-extending BImode predicates to integers.
22364 (setcc_int<mode>): Remove previous (-1-based) instructions.
22365 (cstorebi4): Remove BImode to SImode specific expander.
22366 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
22367 (cstore<mode>4): For both integer and floating point modes.
22368
22369 2022-01-04 Olivier Hainque <hainque@adacore.com>
22370
22371 * gcc.c (driver_handle_option): do_save --sysroot.
22372
22373 2022-01-04 Richard Biener <rguenther@suse.de>
22374
22375 PR tree-optimization/103864
22376 PR tree-optimization/103544
22377 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
22378 reductions wrapped in conversions from SLP handling.
22379 (vect_analyze_slp): Revert PR103544 change.
22380
22381 2022-01-04 Jakub Jelinek <jakub@redhat.com>
22382
22383 PR rtl-optimization/103860
22384 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
22385 uselessly for blocks for which it has been called already.
22386
22387 2022-01-04 Cui,Lili <lili.cui@intel.com>
22388
22389 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
22390 to Alderlake and Rocketlake.
22391
22392 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
22393
22394 PR middle-end/103643
22395 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
22396 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
22397
22398 2022-01-04 liuhongt <hongtao.liu@intel.com>
22399
22400 PR target/103895
22401 * config/i386/sse.md (*bit_and_float_vector_all_ones):
22402 Force_reg operand 1 to avoid ICE.
22403
22404 2022-01-04 Jason Merrill <jason@redhat.com>
22405
22406 * tree-pretty-print.c (do_niy): Add spc parameter.
22407 (NIY): Pass it.
22408 (print_call_name): Add spc local variable.
22409
22410 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
22411
22412 PR target/103894
22413 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
22414 (mov<V_32:mode>_internal): Ditto.
22415 (*push<V_32:mode>_rex64): Ditto.
22416 (movmisalign<V_32:mode>): Ditto.
22417 (*push<V_32:mode>_rex64 splitter): Enable for
22418 TARGET_64BIT && TARGET_SSE.
22419 (*push<V_32:mode>2): Remove insn pattern.
22420
22421 2022-01-03 Andrew Pinski <apinski@marvell.com>
22422
22423 PR c/33193
22424 * doc/extend.texi: Extend the documentation about Complex
22425 types for casting and also rewrite the __real__/__imag__
22426 expression portion to use tables.
22427 Move __builtin_complex to the Complex type section.
22428
22429 2022-01-03 Jakub Jelinek <jakub@redhat.com>
22430
22431 PR target/98737
22432 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
22433 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
22434 New internal fns.
22435 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
22436 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
22437 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
22438 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
22439 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
22440 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
22441 functions.
22442 * optabs.def (atomic_add_fetch_cmp_0_optab,
22443 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
22444 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
22445 direct optabs.
22446 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
22447 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
22448 * tree-ssa-ccp.c: Include internal-fn.h.
22449 (optimize_atomic_bit_test_and): Add . before internal fn call
22450 in function comment. Change return type from void to bool and
22451 return true only if successfully replaced.
22452 (optimize_atomic_op_fetch_cmp_0): New function.
22453 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
22454 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
22455 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
22456 for *XOR* ones only if optimize_atomic_bit_test_and failed.
22457 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
22458 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
22459 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
22460 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
22461 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
22462 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
22463 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
22464 new named patterns.
22465
22466 2022-01-03 Richard Biener <rguenther@suse.de>
22467
22468 PR middle-end/103851
22469 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
22470
22471 2022-01-03 Jakub Jelinek <jakub@redhat.com>
22472
22473 PR c++/94716
22474 * symtab.c: Include fold-const.h.
22475 (symtab_node::equal_address_to): If folding_initializer is true,
22476 handle it like memory_accessed. Simplify.
22477
22478 2022-01-03 Martin Liska <mliska@suse.cz>
22479
22480 * doc/extend.texi: Use ; for function declarations.
22481
22482 2022-01-03 Jakub Jelinek <jakub@redhat.com>
22483
22484 PR c++/103600
22485 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
22486 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
22487
22488 2022-01-03 Jakub Jelinek <jakub@redhat.com>
22489
22490 * gcc.c (process_command): Update copyright notice dates.
22491 * gcov-dump.c (print_version): Ditto.
22492 * gcov.c (print_version): Ditto.
22493 * gcov-tool.c (print_version): Ditto.
22494 * gengtype.c (create_file): Ditto.
22495 * doc/cpp.texi: Bump @copying's copyright year.
22496 * doc/cppinternals.texi: Ditto.
22497 * doc/gcc.texi: Ditto.
22498 * doc/gccint.texi: Ditto.
22499 * doc/gcov.texi: Ditto.
22500 * doc/install.texi: Ditto.
22501 * doc/invoke.texi: Ditto.
22502
22503 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
22504
22505 PR target/103861
22506 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
22507 (VALID_INT_MODE_P): Ditto.
22508 * config/i386/i386.c (ix86_secondary_reload): Handle
22509 V2QImode reloads from SSE register to memory.
22510 (vector_mode_supported_p): Always return true for V2QImode.
22511 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
22512 (*negqi_ext<mode>_2): Ditto.
22513 * config/i386/mmx.md (movv2qi): New expander.
22514 (movmisalignv2qi): Ditto.
22515 (*movv2qi_internal): New insn pattern.
22516 (*pushv2qi2): Ditto.
22517 (negv2qi2 and splitters): Ditto.
22518 (<plusminus:insn>v2qi3 and splitters): Ditto.
22519
22520 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
22521
22522 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
22523 sync_lock_test_and_set libfunc. Call convert_memory_address to
22524 convert memory address to Pmode.
22525 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
22526
22527 \f
22528 Copyright (C) 2022 Free Software Foundation, Inc.
22529
22530 Copying and distribution of this file, with or without modification,
22531 are permitted in any medium without royalty provided the copyright
22532 notice and this notice are preserved.