c++: fix debug info for array temporary [PR107154]
[official-gcc.git] / gcc / ChangeLog
blob48397ffb1f90625dc26e822fb4f06152c7864cad
1 2022-10-03  Sergei Trofimovich  <siarheit@google.com>
3         * config/i386/t-i386: Add build-time dependencies against
4         i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
5         i386-features.o.
7 2022-10-03  Andrew Stubbs  <ams@codesourcery.com>
9         * config/gcn/gcn-valu.md (while_ultsidi): Limit mask length using
10         operand 3.
11         * doc/md.texi (while_ult): Document new operand 3 usage.
12         * internal-fn.cc (expand_while_optab_fn): Set operand 3 when lhs_type
13         maps to a non-vector mode.
15 2022-10-03  Andrew MacLeod  <amacleod@redhat.com>
17         PR tree-optimization/107109
18         * range-op.cc (adjust_op1_for_overflow): Don't process undefined.
20 2022-10-03  Christophe Lyon  <christophe.lyon@arm.com>
22         * config/arm/mve.md (mve_vrev64q_m_<supf><mode>): Add early
23         clobber.
24         (mve_vrev64q_m_f<mode>): Likewise.
26 2022-10-03  Aldy Hernandez  <aldyh@redhat.com>
28         * value-range.cc (irange::set_nonzero_bits): Do not pessimize range.
29         (range_tests_nonzero_bits): New test.
31 2022-10-03  Aldy Hernandez  <aldyh@redhat.com>
33         * value-range.cc (irange::operator==): Early bail on m_num_ranges
34         equal to 0.
36 2022-10-03  Aldy Hernandez  <aldyh@redhat.com>
38         * value-range.cc (irange::legacy_equal_p): Remove nonozero mask
39         check when comparing VR_VARYING ranges.
41 2022-10-03  Aldy Hernandez  <aldyh@redhat.com>
43         * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Do not compare
44         incompatible ranges in ipa-prop.
46 2022-10-02  Jakub Jelinek  <jakub@redhat.com>
48         PR tree-optimization/107121
49         * tree-cfg.cc (verify_gimple_call): Fix a typo in diagnostics,
50         DEFFERED_INIT -> DEFERRED_INIT.
52 2022-10-02  Marc Poulhiès  <poulhies@adacore.com>
54         * config/vxworks-driver.cc: New.
55         * config.gcc (*vxworks*): Add vxworks-driver.o in extra_gcc_objs.
56         * config/t-vxworks: Add vxworks-driver.o.
57         * config/vxworks.h (GCC_DRIVER_HOST_INITIALIZATION): New.
59 2022-10-02  Olivier Hainque  <hainque@adacore.com>
61         * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): If
62         HAVE_INITFINI_ARRAY_SUPPORT, pick crtstuff objects regardless
63         of ENABLE_SHARED_LIBGCC.
65 2022-10-01  Stafford Horne  <shorne@gmail.com>
67         * config/or1k/or1k.cc (TARGET_HAVE_TLS): Only define if
68         HAVE_AS_TLS is defined.
70 2022-10-01  Julian Brown  <julian@codesourcery.com>
72         * gimplify.cc (omp_group_base): Fix IF_PRESENT (no_create)
73         handling.
75 2022-10-01  Jeff Law  <jeffreyalaw@gmail.com>
77         * config/h8300/h8300.md (HSI2): New iterator.
78         (eqne_invert): Similarly.
79         * config/h8300/testcompare.md (testhi_upper_z): New pattern.
80         (cmpqi_z, cmphi_z, cmpsi_z): Likewise.
81         (store_z_qi, store_z_i_qi, store_z_hi, store_z_hi_sb): New
82         define_insn_and_splits and/or define_insns.
83         (store_z_hi_neg, store_z_hi_and, store_z_<mode>): Likewise.
84         (store_z_<mode>_neg, store_z_<mode>_and, store_z): Likewise.
86 2022-10-01  Jeff Law  <jeffreyalaw@gmail.com>
88         * tree-ssa-dom.cc (record_edge_info): Install correct version of
89         patch.
91 2022-10-01  Eugene Rozenfeld  <erozen@microsoft.com>
93         * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
95 2022-09-30  Jeff Law  <jeffreyalaw@gmail.com>
97         * tree-ssa-dom.cc (single_block_loop_p): New function.
98         (record_edge_info): Also record equivalences for the outgoing
99         edge of a single block loop where the condition is an invariant.
101 2022-09-30  Jeff Law  <jeffreyalaw@gmail.com>
103         * tree-ssa-dom.cc (free_dom_edge_info): Clear e->aux too.
104         (free_all_edge_infos): Do not clear e->aux here.
106 2022-09-30  H.J. Lu  <hjl.tools@gmail.com>
108         * target.def (TARGET_C_EXCESS_PRECISION): Document
109         -fexcess-precision=16.
111 2022-09-30  Palmer Dabbelt  <palmer@rivosinc.com>
113         * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Add 16.
115 2022-09-30  Palmer Dabbelt  <palmer@rivosinc.com>
117         PR target/106815
118         * config/riscv/riscv.cc (riscv_excess_precision): Add support
119         for EXCESS_PRECISION_TYPE_FLOAT16.
121 2022-09-30  Jakub Jelinek  <jakub@redhat.com>
123         PR c++/107080
124         * config/arm/arm.cc (arm_mangle_type): Mangle just __fp16 as Dh
125         and _Float16 as DF16_.
126         * config/csky/csky.cc (csky_init_builtins): Fix a comment typo.
127         (csky_mangle_type): Mangle __fp16 as Dh and _Float16 as DF16_
128         rather than mangling __fp16 as __fp16.
130 2022-09-30  Lewis Hyatt  <lhyatt@gmail.com>
132         PR preprocessor/69543
133         * tree-ssa-uninit.cc (warn_uninit): Stop stripping macro tracking
134         information away from the diagnostic location.
135         (maybe_warn_read_write_only): Likewise.
136         (maybe_warn_operand): Likewise.
138 2022-09-30  Jakub Jelinek  <jakub@redhat.com>
140         PR c++/107080
141         * config/aarch64/aarch64.cc (aarch64_mangle_type): Mangle just __fp16
142         as Dh and _Float16 as DF16_.
144 2022-09-30  Jakub Jelinek  <jakub@redhat.com>
146         PR c++/107080
147         * config/i386/i386.cc (ix86_mangle_type): Always return NULL
148         for float128_type_node or float64x_type_node, don't check
149         float128t_type_node later on.
150         * config/ia64/ia64.cc (ia64_mangle_type): Always return NULL
151         for float128_type_node or float64x_type_node.
152         * config/rs6000/rs6000.cc (rs6000_mangle_type): Likewise.
153         Don't check float128_type_node later on.
154         * config/s390/s390.cc (s390_mangle_type): Don't use
155         TYPE_MAIN_VARIANT on type which was set to TYPE_MAIN_VARIANT
156         a few lines earlier.
158 2022-09-30  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
159             Yvan ROUX   <yvan.roux@foss.st.com>
161         * doc/sourcebuild.texi: Document new vma_equals_lma effective
162         target check.
164 2022-09-30  Jiawei  <jiawei@iscas.ac.cn>
166         * config/riscv/riscv.cc (riscv_file_start): New .option.
167         * config/riscv/riscv.opt: New options.
168         * doc/invoke.texi: New definations.
170 2022-09-30  Kewen Lin  <linkw@linux.ibm.com>
172         PR target/99888
173         PR target/105649
174         * doc/invoke.texi (option -fpatchable-function-entry): Adjust the
175         documentation for PowerPC ELFv2 ABI dual entry points.
176         * config/rs6000/rs6000-internal.h
177         (rs6000_print_patchable_function_entry): New function declaration.
178         * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
179         Support patchable-function-entry by emitting nops before and after
180         local entry for the function that needs global entry.
181         * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): Skip
182         the function that needs global entry till global entry has been
183         emitted.
184         * config/rs6000/rs6000.h (struct machine_function): New bool member
185         global_entry_emitted.
187 2022-09-30  Richard Biener  <rguenther@suse.de>
189         PR tree-optimization/107095
190         * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use data arg
191         for .MASK_STORE size.
193 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
195         * range-op.cc (plus_minus_ranges): New.
196         (adjust_op1_for_overflow): New.
197         (operator_plus::op1_range): Use new adjustment.
198         (operator_plus::op2_range): Ditto.
199         (operator_minus::op1_range): Ditto.
200         * value-relation.h (relation_lt_le_gt_ge_p): New.
202 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
204         * gimple-range-gori.cc (gori_compute::refine_using_relation): New.
205         (gori_compute::compute_operand1_range): Invoke
206         refine_using_relation when applicable.
207         (gori_compute::compute_operand2_range): Ditto.
208         * gimple-range-gori.h (class gori_compute): Adjust prototypes.
210 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
212         * gimple-range-gori.cc (ori_compute::compute_operand_range):
213         Create a relation record and pass it along when possible.
214         (gori_compute::compute_operand1_range): Pass relation along.
215         (gori_compute::compute_operand2_range): Ditto.
216         (gori_compute::compute_operand1_and_operand2_range): Ditto.
217         * gimple-range-gori.h (class gori_compute): Adjust prototypes.
218         * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Pass
219         relation to op1_range call.
220         (gimple_range_op_handler::calc_op2): Pass relation to op2_range call.
221         * gimple-range-op.h (class gimple_range_op_handler): Adjust
222         prototypes.
224 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
226         * value-relation.cc (class value_relation): Move to .h file.
227         (value_relation::set_relation): Ditto.
228         (value_relation::value_relation): ditto.
229         * value-relation.h (class value_relation): Move from .cc file.
230         (value_relation::set_relation): Ditto
231         (value_relation::value_relation): Ditto.
233 2022-09-29  Andrew MacLeod  <amacleod@redhat.com>
235         * range-op.cc (operator_minus::op2_range): Check for undefined.
236         (operator_mult::op1_range): Ditto.
237         (operator_exact_divide::op1_range): Ditto.
238         (operator_lshift::op1_range): Ditto.
239         (operator_rshift::op1_range): Ditto.
240         (operator_cast::op1_range): Ditto.
241         (operator_bitwise_and::op1_range): Ditto.
242         (operator_bitwise_or::op1_range): Ditto.
243         (operator_trunc_mod::op1_range): Ditto.
244         (operator_trunc_mod::op2_range): Ditto.
245         (operator_bitwise_not::op1_range): Ditto.
246         (pointer_or_operator::op1_range): Ditto.
247         (range_op_handler::op1_range): Ditto.
248         (range_op_handler::op2_range): Ditto.
250 2022-09-29  Andrew Stubbs  <ams@codesourcery.com>
252         * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen):
253         Remove unused elt_bits variable.
255 2022-09-29  Olivier Hainque  <hainque@adacore.com>
257         * config/vxworks.h: Add comment on our use of
258         HAVE_INITFINI_ARRAY_SUPPORT.
260 2022-09-29  Olivier Hainque  <hainque@adacore.com>
262         * config/aarch64/t-aarch64-vxworks: Request multilib
263         variants for mcmodel=large.
265 2022-09-29  Olivier Hainque  <hainque@adacore.com>
267         * config/rs6000/vxworks.h (TARGET_FLOAT128_ENABLE_TYPE): Remove
268         resetting to 0.
270 2022-09-29  Olivier Hainque  <hainque@adacore.com>
272         * config/vx-common.h (DWARF2_UNWIND_INFO): #define to 0
273         when ARM_UNWIND_INFO is set.
275 2022-09-29  Julian Brown  <julian@codesourcery.com>
277         PR middle-end/107028
278         * gimplify.cc (omp_check_mapping_compatibility,
279         oacc_resolve_clause_dependencies): New functions.
280         (omp_accumulate_sibling_list): Remove redundant duplicate clause
281         detection for OpenACC.
282         (build_struct_sibling_lists): Skip deleted groups.  Don't build sibling
283         list for struct variables that are fully mapped on the same directive
284         for OpenACC.
285         (gimplify_scan_omp_clauses): Call oacc_resolve_clause_dependencies.
287 2022-09-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
289         PR middle-end/25521
290         * varasm.cc (categorize_decl_for_section): Place `const volatile'
291         objects in read-only sections.
292         (default_select_section): Likewise.
294 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
296         * tree-data-ref.cc (dr_may_alias_p): Use to_poly_widest instead
297         of to_widest.
299 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
301         * config/aarch64/aarch64.h (TARGET_CRYPTO, TARGET_SHA3, TARGET_SM4)
302         (TARGET_DOTPROD): Don't depend on TARGET_SIMD.
303         (TARGET_AES, TARGET_SHA2): Likewise.  Remove TARGET_CRYPTO test.
304         (TARGET_FP_F16INST): Don't depend on TARGET_FLOAT.
305         (TARGET_SVE2, TARGET_SVE_F32MM, TARGET_SVE_F64MM): Don't depend
306         on TARGET_SVE.
307         (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
308         (TARGET_SVE2_SM4): Don't depend on TARGET_SVE2.
309         (TARGET_F32MM, TARGET_F64MM): Delete.
310         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Guard
311         float macros with just TARGET_FLOAT rather than TARGET_FLOAT
312         || TARGET_SIMD.
313         * config/aarch64/aarch64-simd.md (copysign<mode>3): Depend
314         only on TARGET_SIMD, rather than TARGET_FLOAT && TARGET_SIMD.
315         (aarch64_crypto_aes<aes_op>v16qi): Depend only on TARGET_AES,
316         rather than TARGET_SIMD && TARGET_AES.
317         (aarch64_crypto_aes<aesmc_op>v16qi): Likewise.
318         (*aarch64_crypto_aese_fused): Likewise.
319         (*aarch64_crypto_aesd_fused): Likewise.
320         (aarch64_crypto_pmulldi): Likewise.
321         (aarch64_crypto_pmullv2di): Likewise.
322         (aarch64_crypto_sha1hsi): Likewise TARGET_SHA2.
323         (aarch64_crypto_sha1hv4si): Likewise.
324         (aarch64_be_crypto_sha1hv4si): Likewise.
325         (aarch64_crypto_sha1su1v4si): Likewise.
326         (aarch64_crypto_sha1<sha1_op>v4si): Likewise.
327         (aarch64_crypto_sha1su0v4si): Likewise.
328         (aarch64_crypto_sha256h<sha256_op>v4si): Likewise.
329         (aarch64_crypto_sha256su0v4si): Likewise.
330         (aarch64_crypto_sha256su1v4si): Likewise.
331         (aarch64_crypto_sha512h<sha512_op>qv2di): Likewise TARGET_SHA3.
332         (aarch64_crypto_sha512su0qv2di): Likewise.
333         (aarch64_crypto_sha512su1qv2di, eor3q<mode>4): Likewise.
334         (aarch64_rax1qv2di, aarch64_xarqv2di, bcaxq<mode>4): Likewise.
335         (aarch64_sm3ss1qv4si): Likewise TARGET_SM4.
336         (aarch64_sm3tt<sm3tt_op>qv4si): Likewise.
337         (aarch64_sm3partw<sm3part_op>qv4si): Likewise.
338         (aarch64_sm4eqv4si, aarch64_sm4ekeyqv4si): Likewise.
339         * config/aarch64/aarch64.md (<FLOATUORS:optab>dihf2)
340         (copysign<GPF:mode>3, copysign<GPF:mode>3_insn)
341         (xorsign<mode>3): Remove redundant TARGET_FLOAT condition.
343 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
345         * config/aarch64/aarch64.opt (aarch64_asm_isa_flags): New variable.
346         * config/aarch64/aarch64.h (aarch64_asm_isa_flags)
347         (aarch64_isa_flags): Redefine as read-only macros.
348         (TARGET_SIMD, TARGET_FLOAT, TARGET_SVE): Don't depend on
349         !TARGET_GENERAL_REGS_ONLY.
350         * common/config/aarch64/aarch64-common.cc
351         (aarch64_set_asm_isa_flags): New function.
352         (aarch64_handle_option): Call it when updating -mgeneral-regs.
353         * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): Replace
354         m_old_isa_flags with m_old_asm_isa_flags.
355         (aarch64_set_asm_isa_flags): Declare.
356         * config/aarch64/aarch64-builtins.cc
357         (aarch64_simd_switcher::aarch64_simd_switcher)
358         (aarch64_simd_switcher::~aarch64_simd_switcher): Save and restore
359         aarch64_asm_isa_flags instead of aarch64_isa_flags.
360         * config/aarch64/aarch64-sve-builtins.cc
361         (check_required_extensions): Use aarch64_asm_isa_flags instead
362         of aarch64_isa_flags.
363         * config/aarch64/aarch64.cc (aarch64_set_asm_isa_flags): New function.
364         (aarch64_override_options, aarch64_handle_attr_arch)
365         (aarch64_handle_attr_cpu, aarch64_handle_attr_isa_flags): Use
366         aarch64_set_asm_isa_flags to set the ISA flags.
367         (aarch64_option_print, aarch64_declare_function_name)
368         (aarch64_start_file): Use aarch64_asm_isa_flags instead
369         of aarch64_isa_flags.
370         (aarch64_can_inline_p): Check aarch64_asm_isa_flags as well as
371         aarch64_isa_flags.
373 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
375         * common/config/aarch64/aarch64-common.cc (all_extensions):
376         Include the feature flag in flags_on and flags_off.
377         (aarch64_parse_extension): Update accordingly.
378         (aarch64_get_extension_string_for_isa_flags): Likewise.
380 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
382         * common/config/aarch64/aarch64-common.cc: Use aarch64_feature_flags
383         for feature flags throughout.
384         * config/aarch64/aarch64-protos.h: Likewise.
385         * config/aarch64/aarch64-sve-builtins.h: Likewise.
386         * config/aarch64/aarch64-sve-builtins.cc: Likewise.
387         * config/aarch64/aarch64.cc: Likewise.
388         * config/aarch64/aarch64.opt: Likewise.
389         * config/aarch64/driver-aarch64.cc: Likewise.
391 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
393         * common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
394         (processor_name_to_arch, arch_to_arch_name): Remove const from
395         member variables.
396         (all_extensions, all_cores, all_architectures): Make a constexpr.
397         * config/aarch64/aarch64.cc (processor): Remove const from
398         member variables.
399         (all_architectures): Make a constexpr.
400         * config/aarch64/driver-aarch64.cc (aarch64_core_data)
401         (aarch64_arch_driver_info): Remove const from member variables.
402         (aarch64_cpu_data, aarch64_arches): Make a constexpr.
403         (get_arch_from_id): Return a pointer to const.
404         (host_detect_local_cpu): Update accordingly.
406 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
408         * common/config/aarch64/aarch64-common.cc (processor_name_to_arch)
409         (arch_to_arch_name): Use const char * instead of std::string.
411 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
413         * common/config/aarch64/aarch64-common.cc
414         (TARGET_OPTION_INIT_STRUCT): Delete.
415         (aarch64_option_extension): Remove is_synthetic_flag.
416         (all_extensions): Update accordingly.
417         (all_extensions_by_on, opt_ext, opt_ext_cmp): Delete.
418         (aarch64_option_init_struct, aarch64_contains_opt): Delete.
419         (aarch64_get_extension_string_for_isa_flags): Rewrite to use
420         all_extensions instead of all_extensions_on.
422 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
424         * config/aarch64/aarch64-option-extensions.def: Switch to a new format.
425         * config/aarch64/aarch64-cores.def: Use the same format to specify
426         lists of features.
427         * config/aarch64/aarch64-arches.def: Likewise, moving that information
428         from aarch64.h.
429         * config/aarch64/aarch64-opts.h (aarch64_feature_flags): New typedef.
430         * config/aarch64/aarch64.h (aarch64_feature): New class enum.
431         Turn AARCH64_FL_* macros into constexprs, getting the definitions
432         from aarch64-option-extensions.def.  Remove AARCH64_FL_FOR_* macros.
433         * common/config/aarch64/aarch64-common.cc: Include
434         aarch64-feature-deps.h.
435         (all_extensions): Update for new .def format.
436         (all_extensions_by_on, all_cores, all_architectures): Likewise.
437         * config/aarch64/driver-aarch64.cc: Include aarch64-feature-deps.h.
438         (aarch64_extensions): Update for new .def format.
439         (aarch64_cpu_data, aarch64_arches): Likewise.
440         * config/aarch64/aarch64.cc: Include aarch64-feature-deps.h.
441         (all_architectures, all_cores): Update for new .def format.
442         * config/aarch64/aarch64-sve-builtins.cc
443         (check_required_extensions): Likewise.
444         * config/aarch64/aarch64-feature-deps.h: New file.
446 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
448         * config/aarch64/aarch64-option-extensions.def: Move crypto
449         after sha2.
451 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
453         * config/aarch64/aarch64-option-extensions.def (dotprod): Depend
454         on fp as well as simd.
455         (sha3): Likewise.
456         (aes): Likewise.  Make +noaes disable crypto.
457         (sha2): Likewise +nosha2.  Also make +nosha2 disable sha3 and
458         sve2-sha3.
459         (sve2-sha3): Depend on sha2 as well as sha3.
461 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
463         PR target/107025
464         * config/aarch64/aarch64.h (oAARCH64_FL_RCPC8_4): Delete.
465         (AARCH64_FL_FOR_V8_4A): Update accordingly.
466         (AARCH64_ISA_RCPC8_4): Use AARCH64_FL_V8_4A directly.
467         * config/aarch64/aarch64-cores.def (thunderx3t110): Remove
468         AARCH64_FL_RCPC8_4.
470 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
472         * config/aarch64/aarch64-cores.def: Remove AARCH64_FL_FOR_<ARCH>
473         from the flags field.
474         * common/config/aarch64/aarch64-common.cc (all_cores): Add it
475         here instead.
476         * config/aarch64/aarch64.cc (all_cores): Likewise.
477         * config/aarch64/driver-aarch64.cc (all_cores): Likewise.
479 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
481         * config.gcc: Remove dead aarch64-option-extensions.def code.
482         * config/aarch64/aarch64-arches.def: Update comment.
484 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
486         * config/aarch64/aarch64-arches.def: Add a leading "V" to the
487         ARCH_IDENT fields.
488         * config/aarch64/aarch64-cores.def: Update accordingly.
489         * common/config/aarch64/aarch64-common.cc (all_cores): Likewise.
490         * config/aarch64/aarch64.cc (all_cores): Likewise.
491         * config/aarch64/driver-aarch64.cc (aarch64_arches): Skip the
492         leading "V".
494 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
496         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8): Rename to...
497         (AARCH64_FL_FOR_V8A): ...this.
498         (AARCH64_FL_FOR_ARCH8_1): Rename to...
499         (AARCH64_FL_FOR_V8_1A): ...this.
500         (AARCH64_FL_FOR_ARCH8_2): Rename to...
501         (AARCH64_FL_FOR_V8_2A): ...this.
502         (AARCH64_FL_FOR_ARCH8_3): Rename to...
503         (AARCH64_FL_FOR_V8_3A): ...this.
504         (AARCH64_FL_FOR_ARCH8_4): Rename to...
505         (AARCH64_FL_FOR_V8_4A): ...this.
506         (AARCH64_FL_FOR_ARCH8_5): Rename to...
507         (AARCH64_FL_FOR_V8_5A): ...this.
508         (AARCH64_FL_FOR_ARCH8_6): Rename to...
509         (AARCH64_FL_FOR_V8_6A): ...this.
510         (AARCH64_FL_FOR_ARCH8_7): Rename to...
511         (AARCH64_FL_FOR_V8_7A): ...this.
512         (AARCH64_FL_FOR_ARCH8_8): Rename to...
513         (AARCH64_FL_FOR_V8_8A): ...this.
514         (AARCH64_FL_FOR_ARCH8_R): Rename to...
515         (AARCH64_FL_FOR_V8R): ...this.
516         (AARCH64_FL_FOR_ARCH9): Rename to...
517         (AARCH64_FL_FOR_V9A): ...this.
518         (AARCH64_FL_FOR_ARCH9_1): Rename to...
519         (AARCH64_FL_FOR_V9_1A): ...this.
520         (AARCH64_FL_FOR_ARCH9_2): Rename to...
521         (AARCH64_FL_FOR_V9_2A): ...this.
522         (AARCH64_FL_FOR_ARCH9_3): Rename to...
523         (AARCH64_FL_FOR_V9_3A): ...this.
524         * common/config/aarch64/aarch64-common.cc (all_cores): Update
525         accordingly.
526         * config/aarch64/aarch64-arches.def: Likewise.
527         * config/aarch64/aarch64-cores.def: Likewise.
528         * config/aarch64/aarch64.cc (all_cores): Likewise.
530 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
532         * config/aarch64/aarch64.h (AARCH64_FL_V8_1, AARCH64_FL_V8_2)
533         (AARCH64_FL_V8_3, AARCH64_FL_V8_4, AARCH64_FL_V8_5, AARCH64_FL_V8_6)
534         (AARCH64_FL_V9, AARCH64_FL_V8_7, AARCH64_FL_V8_8, AARCH64_FL_V9_1)
535         (AARCH64_FL_V9_2, AARCH64_FL_V9_3): Add "A" to the end of the name.
536         (AARCH64_FL_V8_R): Rename to AARCH64_FL_V8R.
537         (AARCH64_FL_FOR_ARCH8_1, AARCH64_FL_FOR_ARCH8_2): Update accordingly.
538         (AARCH64_FL_FOR_ARCH8_3, AARCH64_FL_FOR_ARCH8_4): Likewise.
539         (AARCH64_FL_FOR_ARCH8_5, AARCH64_FL_FOR_ARCH8_6): Likewise.
540         (AARCH64_FL_FOR_ARCH8_7, AARCH64_FL_FOR_ARCH8_8): Likewise.
541         (AARCH64_FL_FOR_ARCH8_R, AARCH64_FL_FOR_ARCH9): Likewise.
542         (AARCH64_FL_FOR_ARCH9_1, AARCH64_FL_FOR_ARCH9_2): Likewise.
543         (AARCH64_FL_FOR_ARCH9_3, AARCH64_ISA_V8_2A, AARCH64_ISA_V8_3A)
544         (AARCH64_ISA_V8_4A, AARCH64_ISA_V8_5A, AARCH64_ISA_V8_6A): Likewise.
545         (AARCH64_ISA_V8R, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A): Likewise.
546         (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A): Likewise.
548 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
550         * config/aarch64/aarch64.h (AARCH64_ISA_V8_2, AARCH64_ISA_V8_3)
551         (AARCH64_ISA_V8_4, AARCH64_ISA_V8_5, AARCH64_ISA_V8_6)
552         (AARCH64_ISA_V9, AARCH64_ISA_V9_1, AARCH64_ISA_V9_2)
553         (AARCH64_ISA_V9_3): Add "A" to the end of the name.
554         (AARCH64_ISA_V8_R): Rename to AARCH64_ISA_V8R.
555         (TARGET_ARMV8_3, TARGET_JSCVT, TARGET_FRINT, TARGET_MEMTAG): Update
556         accordingly.
557         * common/config/aarch64/aarch64-common.cc
558         (aarch64_get_extension_string_for_isa_flags): Likewise.
559         * config/aarch64/aarch64-c.cc
560         (aarch64_define_unconditional_macros): Likewise.
562 2022-09-29  Richard Sandiford  <richard.sandiford@arm.com>
564         * Makefile.in (GTFILES): Add OPTIONS_H_EXTRA.
566 2022-09-29  Jakub Jelinek  <jakub@redhat.com>
568         PR bootstrap/107059
569         * cppdefault.cc (cpp_include_defaults): If SYSROOT_HEADERS_SUFFIX_SPEC
570         isn't defined, add FIXED_INCLUDE_DIR entry with multilib flag 2
571         before FIXED_INCLUDE_DIR entry with multilib flag 0.
572         * gcc.cc (do_spec_1): If multiarch_dir, add
573         include-fixed/multiarch_dir paths before include-fixed paths.
575 2022-09-29  Martin Liska  <mliska@suse.cz>
577         PR driver/106897
578         * common.opt: Add -gz=zstd value.
579         * configure.ac: Detect --compress-debug-sections=zstd
580         for both linker and assembler.
581         * configure: Regenerate.
582         * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Handle -gz=zstd.
583         (ASM_COMPRESS_DEBUG_SPEC): Likewise.
585 2022-09-29  Richard Biener  <rguenther@suse.de>
587         PR tree-optimization/105646
588         * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
589         the set of fallthru reachable blocks from function entry
590         and use that to determine wlims.always_executed.
592 2022-09-29  liuhongt  <hongtao.liu@intel.com>
594         PR tree-optimization/107055
595         * tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for
596         nonlinear induction variables.
597         * tree-vect-loop.cc (vect_can_peel_nonlinear_iv_p): New
598         functions.
599         (vectorizable_nonlinear_induction): Put part codes into
600         vect_can_peel_nonlinear_iv_p.
601         * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Declare.
603 2022-09-28  Eugene Rozenfeld  <erozen@microsoft.com>
605         * basic-block.h: Remove discriminator from basic blocks.
606         * cfghooks.cc (split_block_1): Remove discriminator from basic blocks.
607         * final.cc (final_start_function_1): Switch from per-bb to per statement
608         discriminator.
609         (final_scan_insn_1): Don't keep track of basic block discriminators.
610         (compute_discriminator): Switch from basic block discriminators to
611         instruction discriminators.
612         (insn_discriminator): New function to return instruction discriminator.
613         (notice_source_line): Use insn_discriminator.
614         * gimple-pretty-print.cc (dump_gimple_bb_header): Remove dumping of
615         basic block discriminators.
616         * gimple-streamer-in.cc (input_bb): Remove reading of basic block
617         discriminators.
618         * gimple-streamer-out.cc (output_bb): Remove writing of basic block
619         discriminators.
620         * input.cc (make_location): Pass 0 discriminator to COMBINE_LOCATION_DATA.
621         (location_with_discriminator): New function to combine locus with
622         a discriminator.
623         (has_discriminator): New function to check if a location has a discriminator.
624         (get_discriminator_from_loc): New function to get the discriminator
625         from a location.
626         * input.h: Declarations of new functions.
627         * lto-streamer-in.cc (cmp_loc): Use discriminators in location comparison.
628         (apply_location_cache): Keep track of current discriminator.
629         (input_location_and_block): Read discriminator from stream.
630         * lto-streamer-out.cc (clear_line_info): Set current discriminator to
631         UINT_MAX.
632         (lto_output_location_1): Write discriminator to stream.
633         * lto-streamer.h: Add discriminator to cached_location.
634         Add current_discr to lto_location_cache.
635         Add current_discr to output_block.
636         * print-rtl.cc (print_rtx_operand_code_i): Print discriminator.
637         * rtl.h: Add extern declaration of insn_discriminator.
638         * tree-cfg.cc (assign_discriminator): New function to assign a unique
639         discriminator value to all statements in a basic block that have the given
640         line number.
641         (assign_discriminators): Assign discriminators to statement locations.
642         * tree-pretty-print.cc (dump_location): Dump discriminators.
643         * tree.cc (set_block): Preserve discriminator when setting block.
644         (set_source_range): Preserve discriminator when setting source range.
646 2022-09-28  H.J. Lu  <hjl.tools@gmail.com>
648         PR target/107061
649         * config/i386/predicates.md (encodekey128_operation): Check
650         XMM4-XMM6 as clobbered.
651         (encodekey256_operation): Likewise.
652         * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
653         (encodekey256u32): Likewise.
655 2022-09-28  Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
657         * config.gcc: Add riscv-vector-builtins.o.
658         * config/riscv/riscv-builtins.cc (riscv_init_builtins): Add RVV builtin function.
659         * config/riscv/riscv-protos.h (riscv_v_ext_enabled_vector_mode_p): New function.
660         * config/riscv/riscv.cc (ENTRY): New macro.
661         (riscv_v_ext_enabled_vector_mode_p): New function.
662         (riscv_mangle_type): Add RVV mangle.
663         (riscv_vector_mode_supported_p): Adjust RVV machine mode.
664         (riscv_verify_type_context): Add context check for RVV.
665         (riscv_vector_alignment): Add RVV alignment target hook support.
666         (TARGET_VECTOR_MODE_SUPPORTED_P): New target hook support.
667         (TARGET_VERIFY_TYPE_CONTEXT): Ditto.
668         (TARGET_VECTOR_ALIGNMENT): Ditto.
669         * config/riscv/t-riscv: Add riscv-vector-builtins.o
670         * config/riscv/riscv-vector-builtins.cc: New file.
671         * config/riscv/riscv-vector-builtins.def: New file.
672         * config/riscv/riscv-vector-builtins.h: New file.
673         * config/riscv/riscv-vector-switch.def: New file.
675 2022-09-28  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
677         * var-tracking.cc (vt_add_function_parameter): Add entry values
678         up to maximal register mode.
680 2022-09-28  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
682         * cselib.cc (new_cselib_val): Keep track of further subvalue
683         relations.
685 2022-09-28  Andrea Corallo  <andrea.corallo@arm.com>
687         * config/arm/arm-c.cc (arm_cpu_builtins): Define
688         __ARM_FEATURE_AES and __ARM_FEATURE_SHA2.
690 2022-09-28  Xi Ruoyao  <xry111@xry111.site>
692         PR tree-optimization/105414
693         * config/loongarch/loongarch.md (UNSPEC_FMAX): New unspec.
694         (UNSPEC_FMIN): Likewise.
695         (fmax<mode>3): Use UNSPEC_FMAX instead of smax.
696         (fmin<mode>3): Use UNSPEC_FMIN instead of smin.
698 2022-09-28  Lulu Cheng  <chenglulu@loongson.cn>
700         * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset):
701         Fixed typo in "asan_mapping.h".
703 2022-09-28  H.J. Lu  <hjl.tools@gmail.com>
705         PR middle-end/58245
706         * calls.cc: Include "tree-eh.h".
707         (expand_call): Check stack canary before throwing exception.
709 2022-09-27  Eugene Rozenfeld  <erozen@microsoft.com>
711         * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
713 2022-09-27  Kim Kuparinen  <kim.kuparinen@rightware.com>
715         * doc/invoke.texi: Update ABI version info.
717 2022-09-27  Aldy Hernandez  <aldyh@redhat.com>
719         * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
720         singleton.
722 2022-09-27  Aldy Hernandez  <aldyh@redhat.com>
724         * value-range.cc (irange::set_nonzero_bits): Set range when known.
726 2022-09-27  Aldy Hernandez  <aldyh@redhat.com>
728         * value-range.h (irange::set): New version taking wide_int_ref.
730 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
732         PR tree-optimization/107029
733         * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat
734         OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be
735         signed and so can trigger even the (b % 4) == 3 case.
737 2022-09-27  Jeff Law  <jeffreyalaw@gmail.com>
739         * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
740         and return are available before trying to use them.
742 2022-09-27  Jakub Jelinek  <jakub@redhat.com>
744         PR c++/106652
745         PR c++/85518
746         * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
747         enumerator.
748         * tree.h (float128t_type_node): Define.
749         * tree.cc (build_common_tree_nodes): Initialize float128t_type_node.
750         * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that
751         _Float<N> is supported in C++ too.
752         * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g"
753         float128t_type_node.
754         * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use
755         float128t_type_node for __float128 instead of float128_type_node
756         and create it if NULL.
757         * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph,
758         _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of
759         0.0f.
760         * config/ia64/ia64.cc (ia64_init_builtins): Use
761         float128t_type_node for __float128 instead of float128_type_node
762         and create it if NULL.
763         * config/rs6000/rs6000-c.cc (is_float128_p): Also return true
764         for float128t_type_node if non-NULL.
765         * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle
766         float128_type_node as "u9__ieee128".
767         * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use
768         float128t_type_node for __float128 instead of float128_type_node
769         and create it if NULL.
771 2022-09-26  Martin Liska  <mliska@suse.cz>
773         * doc/invoke.texi: Add missing dash for
774           Wanalyzer-exposure-through-uninit-copy.
776 2022-09-26  Aldy Hernandez  <aldyh@redhat.com>
778         PR tree-optimization/107009
779         * range-op.cc (operator_bitwise_and::op1_range): Optimize 0 = x & MASK.
780         (range_op_bitwise_and_tests): New test.
782 2022-09-26  Aldy Hernandez  <aldyh@redhat.com>
784         PR tree-optimization/107009
785         * tree-ssa-dom.cc
786         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges):
787         Iterate over exports.
789 2022-09-26  Thomas Schwinge  <thomas@codesourcery.com>
791         * config.gcc (with_arch) [nvptx]: Allow '--with-arch' to override
792         the default.
793         * config/nvptx/gen-multilib-matches.sh: New.
794         * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
795         (MULTILIB_EXCEPTIONS): Handle this.
796         * doc/install.texi (Specific) <nvptx-*-none>: Document this.
797         * doc/invoke.texi (Nvidia PTX Options): Likewise.
799 2022-09-26  Thomas Schwinge  <thomas@codesourcery.com>
801         * config.gcc (TM_MULTILIB_CONFIG) [nvptx]: Set to '$with_arch'.
802         * config/nvptx/t-nvptx (MULTILIB_OPTIONS, MULTILIB_MATCHES)
803         (MULTILIB_EXCEPTIONS): Handle it.
805 2022-09-26  Thomas Schwinge  <thomas@codesourcery.com>
807         * config.gcc (with_arch) [nvptx]: Set to 'sm_30'.
808         * config/nvptx/nvptx.cc (nvptx_option_override): Assert that
809         '-misa' appeared.
810         * config/nvptx/nvptx.h (OPTION_DEFAULT_SPECS): Define.
811         * config/nvptx/nvptx.opt (misa=): Remove 'Init'.
813 2022-09-26  Thomas Schwinge  <thomas@codesourcery.com>
815         * config/nvptx/nvptx.h (ASM_SPEC): Define.
817 2022-09-26  Jeff Law  <jeffreyalaw@gmail.com>
819         * cfgcleanup.cc (bb_is_just_return): No longer static.
820         * cfgcleanup.h (bb_is_just_return): Add prototype.
821         * cfgrtl.cc (fixup_reorder_chain): Do not create an
822         unconditional jump to a return block.  Conditionally
823         remove unreachable blocks.
825 2022-09-26  Tobias Burnus  <tobias@codesourcery.com>
827         PR middle-end/106982
828         * omp-low.cc (lower_oacc_reductions): Add some unshare_expr.
830 2022-09-26  Martin Liska  <mliska@suse.cz>
832         * config/s390/s390.cc (s390_rtx_costs): Remove dest variable
833         and use only dst.
835 2022-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
837         * config/aarch64/aarch64-arches.def (armv9.1-a): Define.
838         (armv9.2-a): Likewise.
839         (armv9.3-a): Likewise.
840         * config/aarch64/aarch64.h (AARCH64_FL_V9_1): Likewise.
841         (AARCH64_FL_V9_2): Likewise.
842         (AARCH64_FL_V9_3): Likewise.
843         (AARCH64_FL_FOR_ARCH9_1): Likewise.
844         (AARCH64_FL_FOR_ARCH9_2): Likewise.
845         (AARCH64_FL_FOR_ARCH9_3): Likewise.
846         (AARCH64_ISA_V9_1): Likewise.
847         (AARCH64_ISA_V9_2): Likewise.
848         (AARCH64_ISA_V9_3): Likewise.
849         * doc/invoke.texi (AArch64 Options): Document armv9.1-a, armv9.2-a,
850         armv9.3-a values to -march.
852 2022-09-26  Martin Liska  <mliska@suse.cz>
854         * value-range.cc (tree_compare): Remove unused function.
856 2022-09-26  Kewen Lin  <linkw@linux.ibm.com>
858         PR target/96072
859         * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): Update the
860         condition for adding REG_CFA_DEF_CFA reg note with
861         frame_pointer_needed_indeed.
863 2022-09-26  Kewen Lin  <linkw@linux.ibm.com>
865         PR target/100645
866         * config/rs6000/vector.md (vec_shr_<mode>): Replace condition
867         TARGET_ALTIVEC with VECTOR_UNIT_ALTIVEC_OR_VSX_P.
869 2022-09-26  Hongtao Liu  <hongtao.liu@intel.com>
870             Liwei Xu  <liwei.xu@intel.com>
872         PR target/53346
873         * config/i386/i386-expand.cc (expand_vec_perm_shufps_shufps):
874         New function.
875         (ix86_expand_vec_perm_const_1): Insert
876         expand_vec_perm_shufps_shufps at the end of 2-instruction
877         expand sequence.
879 2022-09-25  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
881         * doc/sourcebuild.texi: Fix chapter level.
883 2022-09-24  Jakub Jelinek  <jakub@redhat.com>
885         PR c/107001
886         * omp-low.cc (lower_omp_taskgroup): Don't add GOMP_RETURN statement
887         at the end.
888         * omp-expand.cc (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
889         is not stand-alone directive.  For GIMPLE_OMP_TASKGROUP, also don't
890         update parent.
891         (omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
892         cur_region back after new_omp_region.
894 2022-09-23  Vineet Gupta  <vineetg@rivosinc.com>
896         * config/riscv/riscv.h (LOCAL_SYM_P): New.
897         (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
899 2022-09-23  zhongjuzhe  <juzhe.zhong@rivai.ai>
901         * config/riscv/riscv-modes.def (VECTOR_BOOL_MODE): Add RVV mask modes.
902         (ADJUST_NUNITS): Adjust nunits using riscv_vector_chunks.
903         (ADJUST_ALIGNMENT): Adjust alignment.
904         (ADJUST_BYTESIZE): Adjust bytesize using riscv_vector_chunks.
905         (RVV_MODES): New macro.
906         (VECTOR_MODE_WITH_PREFIX): Add RVV vector modes.
907         (VECTOR_MODES_WITH_PREFIX): Add RVV vector modes.
909 2022-09-23  zhongjuzhe  <juzhe.zhong@rivai.ai>
911         * common/config/riscv/riscv-common.cc: Change "static void" to "void".
912         * config.gcc: Add riscv-selftests.o
913         * config/riscv/predicates.md: Allow const_poly_int.
914         * config/riscv/riscv-protos.h (riscv_reinit): New function.
915         (riscv_parse_arch_string): change as exten function.
916         (riscv_run_selftests): New function.
917         * config/riscv/riscv.cc (riscv_cannot_force_const_mem): Don't allow poly
918         into const pool.
919         (riscv_report_v_required): New function.
920         (riscv_expand_op): New function.
921         (riscv_expand_mult_with_const_int): New function.
922         (riscv_legitimize_poly_move): Ditto.
923         (riscv_legitimize_move): New function.
924         (riscv_hard_regno_mode_ok): Add VL/VTYPE register allocation and fix
925         vector RA.
926         (riscv_convert_vector_bits): Fix riscv_vector_chunks configuration for
927         -marh no 'v'.
928         (riscv_reinit): New function.
929         (TARGET_RUN_TARGET_SELFTESTS): New target hook support.
930         * config/riscv/t-riscv: Add riscv-selftests.o.
931         * config/riscv/riscv-selftests.cc: New file.
933 2022-09-23  Richard Biener  <rguenther@suse.de>
935         PR tree-optimization/106922
936         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow
937         an arbitrary number of same valued skipped stores.
939 2022-09-23  Aldy Hernandez  <aldyh@redhat.com>
941         * value-range.cc (frange::set): Swap setters such that the one
942         accepting REAL_VALUE_TYPE does all the work.
944 2022-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
946         * config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
947         (demeter): Update tunings to neoversev2.
948         * config/aarch64/aarch64-tune.md: Regenerate.
949         * config/aarch64/aarch64.cc (demeter_addrcost_table): Rename to
950         neoversev2_addrcost_table.
951         (demeter_regmove_cost): Rename to neoversev2_addrcost_table.
952         (demeter_advsimd_vector_cost): Rename to neoversev2_advsimd_vector_cost.
953         (demeter_sve_vector_cost): Rename to neoversev2_sve_vector_cost.
954         (demeter_scalar_issue_info): Rename to neoversev2_scalar_issue_info.
955         (demeter_advsimd_issue_info): Rename to neoversev2_advsimd_issue_info.
956         (demeter_sve_issue_info): Rename to neoversev2_sve_issue_info.
957         (demeter_vec_issue_info): Rename to neoversev2_vec_issue_info.
958         Update references to above.
959         (demeter_vector_cost): Rename to neoversev2_vector_cost.
960         (demeter_tunings): Rename to neoversev2_tunings.
961         (aarch64_vec_op_count::rename_cycles_per_iter): Use
962         neoversev2_sve_issue_info instead of demeter_sve_issue_info.
963         * doc/invoke.texi (AArch64 Options): Document neoverse-v2.
965 2022-09-23  Aldy Hernandez  <aldyh@redhat.com>
967         * range-op-float.cc (build_le): Use vrp_val_*.
968         (build_lt): Same.
969         (build_ge): Same.
970         (build_gt): Same.
971         * value-range.cc (frange::set): Chop ranges outside of the
972         representable numbers for -ffinite-math-only.
973         (frange::normalize_kind): Use vrp_val*.
974         (frange::verify_range): Same.
975         (frange::set_nonnegative): Same.
976         (range_tests_floats): Remove tests that depend on -INF and +INF.
977         * value-range.h (real_max_representable): Add prototype.
978         (real_min_representable): Same.
979         (vrp_val_max): Set max representable number for
980         -ffinite-math-only.
981         (vrp_val_min): Same but for min.
982         (frange::set_varying): Use vrp_val*.
984 2022-09-23  Aldy Hernandez  <aldyh@redhat.com>
986         * real.cc (debug): New.
988 2022-09-23  Aldy Hernandez  <aldyh@redhat.com>
990         * value-range-pretty-print.cc (vrange_printer::print_real_value): New.
991         (vrange_printer::visit): Call print_real_value.
992         * value-range-pretty-print.h: New print_real_value.
994 2022-09-23  Martin Liska  <mliska@suse.cz>
996         * common.opt: Update -flto-compression-level documentation.
997         * opts.cc (print_filtered_help): Do not append range to an
998           option that uses \t syntax.
1000 2022-09-23  Jakub Jelinek  <jakub@redhat.com>
1002         * attribs.cc (decl_attributes): Improve diagnostics, instead of
1003         saying expected between 1 and 1, found 2 just say expected 1, found 2.
1005 2022-09-23  Hu, Lin1  <lin1.hu@intel.com>
1007         PR target/94962
1008         * config/i386/constraints.md (BH): New define_constraint.
1009         * config/i386/i386.cc (standard_sse_constant_p): Add return
1010         3/4 when operand matches new predicate.
1011         (standard_sse_constant_opcode): Add new alternative branch to
1012         return "vpcmpeqd".
1013         * config/i386/predicates.md
1014         (vector_all_ones_zero_extend_half_operand): New define_predicate.
1015         (vector_all_ones_zero_extend_quarter_operand): Ditto.
1016         * config/i386/sse.md: Add constraint to insn "mov<mode>_internal".
1018 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1020         * gimple-range-fold.cc (range_of_range_op): Handle no operands.
1021         (range_of_call): Do not check for builtins.
1022         (fold_using_range::range_of_builtin_call): Delete.
1023         (fold_using_range::range_of_builtin_int_call): Delete.
1024         * gimple-range-fold.h: Adjust prototypes.
1025         * gimple-range-op.cc (class cfn_parity): New.
1026         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1028 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1030         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1031         for CFN_GOACC_DIM_*.
1032         * gimple-range-op.cc (class cfn_goacc_dim): New.
1033         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1035 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1037         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1038         for CFN_BUILT_IN_STRLEN.
1039         * gimple-range-op.cc (class cfn_strlen): New.
1040         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1042 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1044         * gimple-range-fold.cc (range_of_builtin_ubsan_call): Delete.
1045         (range_of_builtin_int_call): Remove cases for
1046         CFN_BUILT_IN_UBSAN_CHECK.
1047         * gimple-range-op.cc (class cfn_ubsan): New.
1048         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1050 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1052         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1053         for CFN_BUILT_IN_CLRSB.
1054         * gimple-range-op.cc (class cfn_clrsb): New.
1055         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1057 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1059         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1060         for CFN_CTZ.
1061         * gimple-range-op.cc (class cfn_ctz): New.
1062         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1064 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1066         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1067         for CFN_CLZ.
1068         * gimple-range-op.cc (class cfn_clz): New.
1069         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1071 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1073         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1074         for CFN_FFS and CFN_POPCOUNT.
1075         * gimple-range-op.cc (class cfn_pocount): New.
1076         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1078 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1080         * gimple-range-fold.cc (get_letter_range): Move to new class.
1081         (range_of_builtin_int_call): Remove case for CFN_BUILT_IN_TOUPPER
1082         and CFN_BUILT_IN_TOLOWER.
1083         * gimple-range-op.cc (class cfn_toupper_tolower): New.
1084         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1086 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1088         * gimple-range-fold.cc (range_of_builtin_int_call): Remove case
1089         for CFN_BUILT_IN_SIGNBIT.
1090         * gimple-range-op.cc (class cfn_signbit): New.
1091         (gimple_range_op_handler::maybe_builtin_call): Set arguments.
1093 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1095         * gimple-range-fold.cc
1096         (fold_using_range::range_of_builtin_int_call): Remove case for
1097         CFN_BUILT_IN_CONSTANT_P.
1098         * gimple-range-op.cc (gimple_range_op_handler::supported_p):
1099         Check if a call also creates a range-op object.
1100         (gimple_range_op_handler): Also check builtin calls.
1101         (class cfn_constant_float_p): New.  Float CFN_BUILT_IN_CONSTANT_P.
1102         (class cfn_constant_p): New.  Integral CFN_BUILT_IN_CONSTANT_P.
1103         (gimple_range_op_handler::maybe_builtin_call): Set arguments and
1104         handler for supported built-in calls.
1105         * gimple-range-op.h (maybe_builtin_call): New prototype.
1107 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1109         * gimple-range-fold.cc (range_of_range_op): Set result to
1110         VARYING if the call to fold_range fails.
1111         * tree-data-ref.cc (compute_distributive_range): Ditto.
1112         * tree-vrp.cc (range_fold_binary_expr): Ditto.
1113         (range_fold_unary_expr): Ditto.
1114         * value-query.cc (range_query::get_tree_range): Ditto.
1116 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1118         * range-op-float.cc (range_operator_float::fold_range): New base
1119           method for "int = float op int".
1120         * range-op.cc (range_op_handler::fold_range): New case.
1121         * range-op.h: Update prototypes.
1123 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1125         * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Use
1126           operand 1 for second range if there is no operand 2.
1128 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1130         * Makefile.in (OBJS): Add gimple-range-op.o.
1131         * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Use
1132         gimple_range_op_handler.
1133         * gimple-range-fold.cc (gimple_range_base_of_assignment): Move
1134         to a method in gimple_range_op_handler.
1135         (gimple_range_operand1): Ditto.
1136         (gimple_range_operand2): Ditto.
1137         (fold_using_range::fold_stmt): Use gimple_range_op_handler.
1138         (fold_using_range::range_of_range_op): Ditto.
1139         (fold_using_range::relation_fold_and_or): Ditto.
1140         (fur_source::register_outgoing_edges): Ditto.
1141         (gimple_range_ssa_names): Relocate to gimple-range-op.cc.
1142         * gimple-range-fold.h: Adjust prototypes.
1143         * gimple-range-gori.cc (gimple_range_calc_op1): Move
1144         to a method in gimple_range_op_handler.
1145         (gimple_range_calc_op2): Ditto.
1146         (gori_compute::compute_operand_range): Use
1147         gimple_range_op_handler.
1148         (gori_compute::compute_logical_operands): Ditto.
1149         (compute_operand1_range): Ditto.
1150         (gori_compute::compute_operand2_range): Ditto.
1151         (gori_compute::compute_operand1_and_operand2_range): Ditto.
1152         * gimple-range-gori.h: Adjust protoypes.
1153         * gimple-range-op.cc: New.  Supply gimple_range_op_handler methods.
1154         * gimple-range-op.h: New.  Supply gimple_range_op_handler class.
1155         * gimple-range.cc (gimple_ranger::prefill_name): Use
1156         gimple_range_op_handler.
1157         (gimple_ranger::prefill_stmt_dependencies): Ditto.
1158         * gimple-range.h: Include gimple-range-op.h.
1159         * range-op.cc (range_op_handler::range_op_handler): Adjust and
1160         remove gimple * parameter option.
1161         * range-op.h: Adjust prototypes.
1163 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1165         * range-op.cc (range_op_handler::set_op_handler): Set new fields.
1166         (ange_op_handler::range_op_handler): Likewise.
1167         (range_op_handler::operator bool): Remove.
1168         (range_op_handler::fold_range): Use appropriate handler.
1169         (range_op_handler::op1_range): Likewise.
1170         (range_op_handler::op2_range): Likewise.
1171         (range_op_handler::lhs_op1_relation): Likewise.
1172         (range_op_handler::lhs_op2_relation): Likewise.
1173         (range_op_handler::op1_op2_relation): Likewise.
1174         * range-op.h (class range_op_handler): Store handler pointers.
1175         (range_op_handler:: operator bool): Inline.
1177 2022-09-22  Andrew MacLeod  <amacleod@redhat.com>
1179         * tree-ssa-threadbackward.cc
1180           (back_threader::find_paths_to_names): Replace sequence with
1181           a call to gimple_range_ssa_names.
1183 2022-09-22  Martin Liska  <mliska@suse.cz>
1184             Fangrui Song  <i@maskray.me>
1186         * configure: Regenerate.
1187         * configure.ac: Simplify to gcc_cv_ld_compress_debug={0,1}
1188         and gcc_cv_as_compress_debug={0,1}.
1189         * doc/invoke.texi: Document the removal.
1190         * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Simplify and ignore
1191           zlib-gnu.
1192         (ASM_COMPRESS_DEBUG_SPEC): Likewise.
1194 2022-09-22  Richard Biener  <rguenther@suse.de>
1196         PR tree-optimization/106922
1197         * tree-ssa-sccvn.cc (vn_walk_cb_data::same_val): New member.
1198         (vn_walk_cb_data::finish): Perform delayed verification of
1199         a skipped may-alias.
1200         (vn_reference_lookup_pieces): Likewise.
1201         (vn_reference_lookup): Likewise.
1202         (vn_reference_lookup_3): When skipping stores of the same
1203         value also handle constant stores that are more than a
1204         single VDEF away by delaying the verification.
1206 2022-09-22  Max Filippov  <jcmvbkbc@gmail.com>
1208         * config/xtensa/xtensa.cc (TARGET_MAX_ANCHOR_OFFSET): New
1209         definition.
1211 2022-09-22  Max Filippov  <jcmvbkbc@gmail.com>
1213         * config/xtensa/xtensa.cc (xtensa_can_output_mi_thunk)
1214         (xtensa_output_mi_thunk): New functions.
1215         (TARGET_ASM_CAN_OUTPUT_MI_THUNK)
1216         (TARGET_ASM_OUTPUT_MI_THUNK): New macro definitions.
1217         (xtensa_prepare_expand_call): Use fixed register a8 as temporary
1218         when called with reload_completed set to 1.
1220 2022-09-22  Richard Biener  <rguenther@suse.de>
1222         PR tree-optimization/99407
1223         * tree-ssa-dse.cc (dse_stmt_to_dr_map): New global.
1224         (dse_classify_store): Use data-ref analysis to disambiguate more uses.
1225         (pass_dse::use_dr_analysis_p): New pass parameter.
1226         (pass_dse::set_pass_param): Implement.
1227         (pass_dse::execute): Allocate and deallocate dse_stmt_to_dr_map.
1228         * passes.def: Allow DR analysis for the DSE pass before loop.
1230 2022-09-22  Richard Biener  <rguenther@suse.de>
1232         * tree-ssa-sccvn.cc (can_track_predicate_on_edge): New
1233         function split out from ...
1234         (vn_nary_op_insert_pieces_predicated): ... here.
1236 2022-09-22  liuhongt  <hongtao.liu@intel.com>
1238         PR target/106994
1239         * config/i386/mmx.md (floorv2sf2): Fix typo, use
1240         register_operand instead of vector_operand for operands[1].
1242 2022-09-21  Aldy Hernandez  <aldyh@redhat.com>
1244         PR tree-optimization/106967
1245         * value-range.cc (frange::set): Set known NANs to undefined for
1246         flag_finite_math_only.
1248 2022-09-21  Aldy Hernandez  <aldyh@redhat.com>
1250         * value-range.cc (frange::combine_zeros): Call set_undefined.
1251         (frange::intersect_nans): Same.
1252         (frange::intersect): Same.
1253         (frange::verify_range): Undefined ranges do not have a type.
1254         * value-range.h (frange::set_undefined): Clear NAN flags and type.
1256 2022-09-21  Richard Biener  <rguenther@suse.de>
1258         PR tree-optimization/106984
1259         * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
1260         a separate statement.
1262 2022-09-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1264         * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
1265         EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
1266         OPTION_DEFAULT_SPECS.
1267         (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
1268         local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
1269         is given.
1270         (CONFIG_TUNE_SPEC): Define.
1271         (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
1273 2022-09-21  Aldy Hernandez  <aldyh@redhat.com>
1275         PR tree-optimization/106967
1276         * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
1277         (foperator_equal::op1_range): Same.
1278         (foperator_not_equal::fold_range): Same.
1279         (foperator_not_equal::op1_range): Same.
1280         (foperator_lt::fold_range): Same.
1281         (foperator_lt::op1_range): Same.
1282         (foperator_lt::op2_range): Same.
1283         (foperator_le::fold_range): Same.
1284         (foperator_le::op1_range): Same.
1285         (foperator_le::op2_range): Same.
1286         (foperator_gt::fold_range): Same.
1287         (foperator_gt::op1_range): Same.
1288         (foperator_gt::op2_range): Same.
1289         (foperator_ge::fold_range): Same.
1290         (foperator_ge::op1_range): Same.
1291         (foperator_ge::op2_range): Same.
1292         (foperator_unordered::op1_range): Same.
1293         (foperator_ordered::fold_range): Same.
1294         (foperator_ordered::op1_range): Same.
1295         (build_le): Assert that we don't have a NAN.
1296         (build_lt): Same.
1297         (build_gt): Same.
1298         (build_ge): Same.
1300 2022-09-21  liuhongt  <hongtao.liu@intel.com>
1302         PR tree-optimization/106963
1303         * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
1304         vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
1306 2022-09-20  Aldy Hernandez  <aldyh@redhat.com>
1308         * value-range.h (frange::maybe_isnan): Return false for
1309         undefined ranges.
1311 2022-09-20  Aldy Hernandez  <aldyh@redhat.com>
1313         * value-range.cc (frange::set_nonnegative): Set +NAN.
1314         (range_tests_signed_zeros): New test.
1315         * value-range.h (frange::update_nan): New overload to set NAN sign.
1317 2022-09-20  Richard Sandiford  <richard.sandiford@arm.com>
1319         PR target/106491
1320         * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
1321         (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
1322         markup to (new) extern declarations instead of to the main
1323         definition.
1325 2022-09-20  Richard Sandiford  <richard.sandiford@arm.com>
1327         PR tree-optimization/106794
1328         PR tree-optimization/106914
1329         * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
1330         Only consider loads that already have a permutation.
1331         (vect_optimize_slp_pass::start_choosing_layouts): Assert that
1332         loads with permutations are leaf nodes.  Prevent any kind of grouped
1333         access from changing layout if it doesn't have a load permutation.
1335 2022-09-20  Richard Sandiford  <richard.sandiford@arm.com>
1337         * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
1338         early-out optimisation to SSA_NAMEs.
1340 2022-09-20  Martin Liska  <mliska@suse.cz>
1342         * ctfc.cc (ctf_add_string): Replace "the the" with "the".
1343         * doc/md.texi: Likewise.
1344         * gimple-range-infer.cc (non_null_loadstore): Likewise.
1346 2022-09-20  liuhongt  <hongtao.liu@intel.com>
1348         PR target/106910
1349         * config/i386/mmx.md (nearbyintv2sf2): New expander.
1350         (rintv2sf2): Ditto.
1351         (ceilv2sf2): Ditto.
1352         (lceilv2sfv2si2): Ditto.
1353         (floorv2sf2): Ditto.
1354         (lfloorv2sfv2si2): Ditto.
1355         (btruncv2sf2): Ditto.
1356         (lrintv2sfv2si2): Ditto.
1357         (roundv2sf2): Ditto.
1358         (lroundv2sfv2si2): Ditto.
1359         (*mmx_roundv2sf2): New define_insn.
1361 2022-09-20  konglin1  <lingling.kong@intel.com>
1363         PR middle-end/105735
1364         * tree-scalar-evolution.cc
1365         (analyze_and_compute_bitop_with_inv_effect): New function.
1366         (final_value_replacement_loop): Enhanced to handle bitop
1367         with inv induction.
1369 2022-09-20  Xi Ruoyao  <xry111@xry111.site>
1371         * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
1372         -static-pie, pass -static -pie --no-dynamic-linker -z text to
1373         the linker, and do not pass --dynamic-linker.
1375 2022-09-20  Aldy Hernandez  <aldyh@redhat.com>
1377         * value-range.cc (frange::flush_denormals_to_zero): New.
1378         (frange::set): Call flush_denormals_to_zero.
1379         * value-range.h (class frange): Add flush_denormals_to_zero.
1381 2022-09-20  liuhongt  <hongtao.liu@intel.com>
1383         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
1384         latest Intel processors.
1386 2022-09-20  konglin1  <lingling.kong@intel.com>
1388         PR target/106887
1389         * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
1390         Fixed V16BF mode case.
1392 2022-09-19  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
1394         * targhooks.cc (default_zero_call_used_regs): Improve sorry
1395         message.
1397 2022-09-18  Julian Brown  <julian@codesourcery.com>
1399         * gimplify.cc (omp_segregate_mapping_groups): Update comment.
1400         (gimplify_adjust_omp_clauses): Move ATTACH and
1401         ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
1402         for offloaded OpenMP regions.
1404 2022-09-18  Jakub Jelinek  <jakub@redhat.com>
1406         PR middle-end/106831
1407         * value-range.cc (frange::singleton_p): Avoid propagating long
1408         doubles that may have multiple representations.
1410 2022-09-18  Aldy Hernandez  <aldyh@redhat.com>
1412         * range-op-float.cc (frange_add_zeros): Replace set_signbit with
1413         union of zero.
1414         * value-query.cc (range_query::get_tree_range): Remove set_signbit
1415         use.
1416         * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
1417         Remove.
1418         (vrange_printer::print_frange_nan): New.
1419         * value-range-pretty-print.h (print_frange_prop): Remove.
1420         (print_frange_nan): New.
1421         * value-range-storage.cc (frange_storage_slot::set_frange): Set
1422         kind and NAN fields.
1423         (frange_storage_slot::get_frange): Restore kind and NAN fields.
1424         * value-range-storage.h (class frange_storage_slot): Add kind and
1425         NAN fields.
1426         * value-range.cc (frange::update_nan): Remove.
1427         (frange::set_signbit): Remove.
1428         (frange::set): Adjust for NAN fields.
1429         (frange::normalize_kind): Remove m_props.
1430         (frange::combine_zeros): New.
1431         (frange::union_nans): New.
1432         (frange::union_): Handle new NAN fields.
1433         (frange::intersect_nans): New.
1434         (frange::intersect): Handle new NAN fields.
1435         (frange::operator=): Same.
1436         (frange::operator==): Same.
1437         (frange::contains_p): Same.
1438         (frange::singleton_p): Remove special case for signed zeros.
1439         (frange::verify_range): Adjust for new NAN fields.
1440         (frange::set_zero): Handle signed zeros.
1441         (frange::set_nonnegative): Same.
1442         (range_tests_nan): Adjust tests.
1443         (range_tests_signed_zeros): Same.
1444         (range_tests_signbit): Same.
1445         (range_tests_floats): Same.
1446         * value-range.h (class fp_prop): Remove.
1447         (FP_PROP_ACCESSOR): Remove.
1448         (class frange_props): Remove
1449         (frange::lower_bound): NANs don't have endpoints.
1450         (frange::upper_bound): Same.
1451         (frange_props::operator==): Remove.
1452         (frange_props::union_): Remove.
1453         (frange_props::intersect): Remove.
1454         (frange::update_nan): New.
1455         (frange::clear_nan): New.
1456         (frange::undefined_p): New.
1457         (frange::set_nan): New.
1458         (frange::known_finite): Adjust for new NAN representation.
1459         (frange::maybe_isnan): Same.
1460         (frange::known_isnan): Same.
1461         (frange::signbit_p): Same.
1462         * gimple-range-fold.cc (range_of_builtin_int_call): Rename
1463         known_signbit_p into signbit_p.
1465 2022-09-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1467         * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
1468         to prevent warning.
1470 2022-09-17  Jakub Jelinek  <jakub@redhat.com>
1472         PR tree-optimization/106958
1473         * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
1474         id >= l, cast op to type1, otherwise to pointer_sized_int_node.
1475         If type has pointer type, cast exp to pointer_sized_int_node
1476         even when id < l.
1478 2022-09-16  liuhongt  <hongtao.liu@intel.com>
1480         PR target/106910
1481         * config/i386/i386-builtins.cc
1482         (ix86_builtin_vectorized_function): Modernized with
1483         corresponding expanders.
1484         * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
1485         expander.
1486         (floor<mode>2): Ditto.
1487         (lfloor<mode><sseintvecmodelower>2): Ditto.
1488         (ceil<mode>2): Ditto.
1489         (lceil<mode><sseintvecmodelower>2): Ditto.
1490         (btrunc<mode>2): Ditto.
1491         (lround<mode><sseintvecmodelower>2): Ditto.
1492         (exp2<mode>2): Ditto.
1494 2022-09-15  Joseph Myers  <joseph@codesourcery.com>
1496         * ginclude/float.h (INFINITY): Define only if
1497         [__FLT_HAS_INFINITY__].
1499 2022-09-15  Richard Biener  <rguenther@suse.de>
1501         PR tree-optimization/106922
1502         * tree-ssa-pre.cc (translate_vuse_through_block): Only
1503         keep the VUSE if its def dominates PHIBLOCK.
1504         (prune_clobbered_mems): Rewrite logic so we check whether
1505         a value dies in a block when the VUSE def doesn't dominate it.
1507 2022-09-15  Richard Biener  <rguenther@suse.de>
1509         * tree.cc (build_common_tree_nodes): Initialize void_list_node
1510         here.
1512 2022-09-15  Jiufu Guo  <guojiufu@linux.ibm.com>
1514         PR target/106550
1515         * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
1517 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
1519         * range-op-float.cc (frange_add_zeros): New.
1520         (build_le): Call frange_add_zeros.
1521         (build_ge): Same.
1522         (foperator_equal::op1_range): Same.
1523         (foperator_not_equal::op1_range): Same.
1525 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
1527         * range-op-float.cc (build_le): Accept frange instead of number.
1528         (build_lt): Same.
1529         (build_ge): Same.
1530         (build_gt): Same.
1531         (foperator_lt::op1_range): Pass full range to build_*.
1532         (foperator_lt::op2_range): Same.
1533         (foperator_le::op1_range): Same.
1534         (foperator_le::op2_range): Same.
1535         (foperator_gt::op1_range): Same.
1536         (foperator_gt::op2_range): Same.
1537         (foperator_ge::op1_range): Same.
1538         (foperator_ge::op2_range): Same.
1540 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
1542         * value-range.cc (frange::set): Use set_nan.
1543         * value-range.h (frange::set_nan): Inline code originally in
1544         set().
1546 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
1548         * range-op-float.cc (frange_set_nan): Remove.
1549         (build_lt): Use set_nan, update_nan, clear_nan.
1550         (build_gt): Same.
1551         (foperator_equal::op1_range): Same.
1552         (foperator_not_equal::op1_range): Same.
1553         (foperator_lt::op1_range): Same.
1554         (foperator_lt::op2_range): Same.
1555         (foperator_le::op1_range): Same.
1556         (foperator_le::op2_range): Same.
1557         (foperator_gt::op1_range): Same.
1558         (foperator_gt::op2_range): Same.
1559         (foperator_ge::op1_range): Same.
1560         (foperator_ge::op2_range): Same.
1561         (foperator_unordered::op1_range): Same.
1562         (foperator_ordered::op1_range): Same.
1563         * value-query.cc (range_query::get_tree_range): Same.
1564         * value-range.cc (frange::set_nan): Same.
1565         (frange::update_nan): Same.
1566         (frange::union_): Same.
1567         (frange::intersect): Same.
1568         (range_tests_nan): Same.
1569         (range_tests_signed_zeros): Same.
1570         (range_tests_signbit): Same.
1571         (range_tests_floats): Same.
1572         * value-range.h (class frange): Add update_nan and clear_nan.
1573         (frange::set_nan): New.
1575 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
1577         * value-query.cc (range_query::get_tree_range): Remove check for overflow.
1578         * value-range-pretty-print.cc (vrange_printer::visit): Move read
1579         of type until after undefined_p is checked.
1580         * value-range.cc (frange::set): Remove asserts for REAL_CST.
1581         (frange::contains_p): Tidy up.
1582         (range_tests_nan):  Add comment.
1583         * value-range.h (frange::type): Check for undefined_p.
1584         (frange::set_undefined): Remove set of endpoints.
1586 2022-09-14  Julian Brown  <julian@codesourcery.com>
1588         * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
1589         GOMP_MAP_STRUCT (for reindexing).
1590         (omp_gather_mapping_groups): Reimplement using...
1591         (omp_gather_mapping_groups_1): This new function.  Stop processing at
1592         GATHER_SENTINEL.
1593         (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
1594         (omp_index_mapping_groups): Reimplement using...
1595         (omp_index_mapping_groups_1): This new function.  Handle
1596         REINDEX_SENTINEL.
1597         (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
1598         functions.
1599         (omp_tsort_mapping_groups_1): Adjust handling of base group being the
1600         same as current group.  Use omp_mapped_by_containing_struct.
1601         (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
1602         and omp_reindex_mapping_groups.  Robustify group deletion for reordered
1603         lists.
1604         (gimplify_scan_omp_clauses): Update calls to
1605         omp_build_struct_sibling_lists.
1607 2022-09-14  Julian Brown  <julian@codesourcery.com>
1609         * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
1610         (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
1611         (insert_struct_comp_map): Refactor function into...
1612         (build_omp_struct_comp_nodes): This new function.  Remove list handling
1613         and improve self-documentation.
1614         (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters.  Move
1615         code to strip outer parts of address out of function, but strip no-op
1616         conversions.
1617         (omp_mapping_group): Add DELETED field for use during reindexing.
1618         (omp_strip_components_and_deref, omp_strip_indirections): New functions.
1619         (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
1620         (omp_gather_mapping_groups): Initialise DELETED field for new groups.
1621         (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
1622         (omp_siblist_insert_node_after, omp_siblist_move_node_after,
1623         omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
1624         helper functions.
1625         (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
1626         node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
1627         (omp_build_struct_sibling_lists): New function.
1628         (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
1629         struct_seen_clause, struct_deref_set.  Call
1630         omp_build_struct_sibling_lists as pre-pass instead of handling sibling
1631         lists in the function's main processing loop.
1632         (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
1633         handling, unused now.
1634         * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
1635         struct references, and references to pointers to structs also.
1637 2022-09-14  Richard Biener  <rguenther@suse.de>
1639         PR tree-optimization/106938
1640         * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
1641         edges for all last stmts in a block.  Do EH cleanup
1642         only on the last stmt in a block.
1644 2022-09-14  Aldy Hernandez  <aldyh@redhat.com>
1646         PR tree-optimization/106936
1647         * value-query.cc (range_query::get_value_range): Remove assert.
1649 2022-09-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1651         * config/mips/mips.cc (mips_option_override): Drop unused variable.
1653 2022-09-14  Julian Brown  <julian@codesourcery.com>
1655         * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
1656         functions.
1657         (omp_tsort_mark): Add enum.
1658         (omp_mapping_group): Add struct.
1659         (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
1660         omp_group_last, omp_gather_mapping_groups, omp_group_base,
1661         omp_index_mapping_groups, omp_containing_struct,
1662         omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
1663         omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
1664         functions.
1665         (gimplify_scan_omp_clauses): Call above functions instead of
1666         omp_target_reorder_clauses, unless we've seen an error.
1667         * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
1668         sorted mapping groups.
1670 2022-09-14  Jakub Jelinek  <jakub@redhat.com>
1672         PR tree-optimization/106878
1673         * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
1674         reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
1675         the second argument is INTEGER_CST, BIT_AND_EXPR.
1676         * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
1677         (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
1678         POINTER_TYPE_P or OFFSET_TYPE.
1679         * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
1680         pointers cast them to pointer sized integers first.
1682 2022-09-14  Richard Biener  <rguenther@suse.de>
1684         PR tree-optimization/106934
1685         * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
1686         of bitfields.
1687         (maybe_rewrite_mem_ref_base): Likewise.
1689 2022-09-14  liuhongt  <hongtao.liu@intel.com>
1691         PR tree-optimization/106905
1692         * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
1693         false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
1694         LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
1696 2022-09-13  Roger Sayle  <roger@nextmovesoftware.com>
1698         PR target/106877
1699         * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
1700         in gcc_assert.
1702 2022-09-13  Max Filippov  <jcmvbkbc@gmail.com>
1704         Revert:
1705         2022-09-12  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
1707         * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
1708         New macro definition.
1709         (xtensa_constant_ok_for_cprop_p):
1710         Implement the hook as mentioned above.
1712 2022-09-13  Kewen Lin  <linkw@linux.ibm.com>
1714         PR target/104482
1715         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
1716         the equality check for argument number, and move this hunk ahead.
1718 2022-09-13  Kewen.Lin  <linkw@gcc.gnu.org>
1720         PR target/105485
1721         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
1722         the handling for unresolved overloaded builtin function.
1723         (rs6000_expand_builtin): Likewise.
1725 2022-09-13  Kewen Lin  <linkw@linux.ibm.com>
1727         * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
1728         m_nstores, m_reduc_factor, m_gather_load and member function
1729         determine_suggested_unroll_factor.
1730         (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
1731         m_reduc_factor and m_gather_load.
1732         (rs6000_cost_data::determine_suggested_unroll_factor): New function.
1733         (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
1734         * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
1735         (rs6000-vect-unroll-issue): Likewise.
1736         (rs6000-vect-unroll-reduc-threshold): Likewise.
1737         * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
1739 2022-09-13  Richard Biener  <rguenther@suse.de>
1741         PR middle-end/106909
1742         * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
1743         flag of a unreachable call.
1745 2022-09-13  Richard Biener  <rguenther@suse.de>
1747         PR tree-optimization/106913
1748         * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
1749         ft_reachable on EXIT_BLOCK.
1751 2022-09-13  Richard Sandiford  <richard.sandiford@arm.com>
1753         * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
1754         TARGET_FLOAT instead of TARGET_SIMD.
1755         (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
1756         TARGET_SIMD.
1757         (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
1758         in GPRs.
1759         (aarch64_classify_address): Treat little-endian structure moves
1760         like big-endian for TARGET_FLOAT && !TARGET_SIMD.
1761         (aarch64_secondary_memory_needed): New function.
1762         (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
1763         in the same way as TF, TI and TD.
1764         (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
1765         (aarch64_rtx_costs): Likewise.
1766         (aarch64_register_move_cost): Treat a pair of 64-bit vectors
1767         separately from a single 128-bit vector.  Handle the cost implied
1768         by aarch64_secondary_memory_needed.
1769         (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
1770         TARGET_SIMD.
1771         (aarch64_expand_vec_perm_const_1): Likewise.
1772         (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
1773         * config/aarch64/iterators.md (VTX): New iterator.
1774         * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
1775         (arch_enabled): Adjust accordingly.
1776         (@aarch64_reload_mov<TX:mode>): Extend to...
1777         (@aarch64_reload_mov<VTX:mode>): ...this.
1778         * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
1779         rather than TARGET_SIMD.
1780         (movmisalign<mode>): Likewise.
1781         (load_pair<DREG:mode><DREG2:mode>): Likewise.
1782         (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
1783         (load_pair<VQ:mode><VQ2:mode>): Likewise.
1784         (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
1785         (@aarch64_split_simd_mov<mode>): Likewise.
1786         (aarch64_get_low<mode>): Likewise.
1787         (aarch64_get_high<mode>): Likewise.
1788         (aarch64_get_half<mode>): Likewise.  Canonicalize to a move for
1789         lowpart extracts.
1790         (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
1791         TARGET_SIMD.  Use different w<-w and r<-w instructions for
1792         !TARGET_SIMD.  Disable immediate moves for !TARGET_SIMD but
1793         add an alternative specifically for w<-Z.
1794         (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
1795         TARGET_SIMD.  Likewise for the associated define_splits.  Disable
1796         FPR moves and immediate moves for !TARGET_SIMD but add an alternative
1797         specifically for w<-Z.
1798         (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
1799         TARGET_SIMD.  Restrict the existing alternatives to TARGET_SIMD
1800         but add a new r<-w one for !TARGET_SIMD.
1801         (*aarch64_get_high<mode>): New pattern.
1802         (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
1803         (store_pair_lanes<mode>): Likewise.
1804         (*aarch64_combine_internal<mode>): Likewise.  Restrict existing
1805         w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
1806         alternative for !TARGET_SIMD.
1807         (*aarch64_combine_internal_be<mode>): Likewise.
1808         (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
1809         Remove bogus arch attribute.
1810         (*aarch64_combinez_be<mode>): Likewise.
1811         (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
1812         TARGET_SIMD.
1813         (aarch64_combine<mode>): Likewise.
1814         (aarch64_rev_reglist<mode>): Likewise.
1815         (mov<mode>): Likewise.
1816         (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
1817         !TARGET_SIMD, regardless of endianness.  Extend associated
1818         define_splits in the same way, both for this pattern and the
1819         ones below.
1820         (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise.  Restrict w<-w
1821         alternative to TARGET_SIMD.
1822         (*aarch64_be_movoi): Likewise.
1823         (*aarch64_be_movci): Likewise.
1824         (*aarch64_be_movxi): Likewise.
1825         (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
1826         && !TARGET_SIMD, regardless of endianness.  Restrict w<-w alternative
1827         to TARGET_SIMD for tuples of 128-bit vectors.
1828         (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
1829         * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
1830         from DREG STP peephole.  Change TARGET_SIMD to TARGET_FLOAT in
1831         the VQ and VP_2E LDP and STP peepholes.
1833 2022-09-13  Richard Sandiford  <richard.sandiford@arm.com>
1835         * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
1836         condition.  Likewise for the related define_split.  Tweak formatting.
1838 2022-09-12  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
1840         * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
1841         New macro definition.
1842         (xtensa_constant_ok_for_cprop_p):
1843         Implement the hook as mentioned above.
1845 2022-09-12  Joseph Myers  <joseph@codesourcery.com>
1847         * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
1848         __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
1850 2022-09-12  Tobias Burnus  <tobias@codesourcery.com>
1852         * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
1853         a warning + not enabling offloading if -misa=sm_30 prevents
1854         reverse offload.
1855         (main): Use tool_name as progname for diagnostic.
1856         * config/gcn/mkoffload.cc (main): Likewise.
1858 2022-09-12  Aldy Hernandez  <aldyh@redhat.com>
1860         * value-range.cc (frange::set_signbit): Avoid changing sign when
1861         already in the correct sign.
1863 2022-09-12  Max Filippov  <jcmvbkbc@gmail.com>
1865         * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
1866         Recognize all 4 return registers.
1867         * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
1868         * config/xtensa/xtensa.md (untyped_call): New pattern.
1870 2022-09-12  Jonathan Wakely  <jwakely@redhat.com>
1872         * doc/extend.texi (Floating Types): Fix "_float128" typo.
1874 2022-09-10  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
1876         * config/xtensa/xtensa.cc (xtensa_constantsynth):
1877         Add new pattern for the abovementioned case.
1879 2022-09-10  Akari Takahashi  <akaritakahashioss@gmail.com>
1880             Segher Boessenkool  <segher@kernel.crashing.org>
1882         * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
1884 2022-09-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
1886         * config/xtensa/xtensa.md: Rewrite the split pattern that performs
1887         the abovementioned process so that insns that overwrite clobbered
1888         register no longer need to be contiguous.
1889         (DSC): Remove as no longer needed.
1891 2022-09-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
1893         * config/xtensa/xtensa.cc (machine_function): New boolean member as
1894         a flag that controls whether to emit the insns for stack pointer
1895         adjustment inside of the pro/epilogue.
1896         (xtensa_emit_adjust_stack_ptr): New function to share the common
1897         codes and to emit insns if not inhibited.
1898         (xtensa_expand_epilogue): Change to use the function mentioned
1899         above when using the CALL0 ABI.
1900         (xtensa_expand_prologue): Ditto.
1901         And also change to set the inhibit flag used by
1902         xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
1903         used for its own adjustment.
1905 2022-09-09  David Malcolm  <dmalcolm@redhat.com>
1907         * doc/invoke.texi (Static Analyzer Options): Add
1908         -Wanalyzer-exposure-through-uninit-copy.
1910 2022-09-09  David Malcolm  <dmalcolm@redhat.com>
1912         * Makefile.in (ANALYZER_OBJS): Add
1913         analyzer/known-function-manager.o.
1915 2022-09-09  Tobias Burnus  <tobias@codesourcery.com>
1917         * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
1918         (record_id): Store func name without quotes, store dim separately.
1919         (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
1920         at least sm_35, create '$offload_func_table' global array and init
1921         with reverse-offload function addresses.
1922         * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
1923         force_public attribute to force .visible.
1924         (nvptx_declare_function_name): For "omp target
1925         device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
1927 2022-09-09  Tobias Burnus  <tobias@codesourcery.com>
1929         * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
1930         similar to pre-existing .offload_var_table.
1932 2022-09-09  Joseph Myers  <joseph@codesourcery.com>
1934         * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
1935         New macro.
1937 2022-09-09  Kewen Lin  <linkw@linux.ibm.com>
1939         PR middle-end/106833
1940         * tree.cc (verify_opaque_type): New function.
1941         (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
1943 2022-09-09  Kwok Cheung Yeung  <kcy@codesourcery.com>
1945         * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
1946         FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
1947         * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
1948         * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
1949         MATH_UNOP_TRIG): New iterators.
1950         (math_unop): New attributes.
1951         (<math_unop><mode>2, <math_unop><mode>2<exec>,
1952         <math_unop><mode>2, <math_unop><mode>2<exec>,
1953         *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
1954         ldexp<mode>3, ldexp<mode>3<exec>,
1955         frexp<mode>_exp2, frexp<mode>_mant2,
1956         frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
1957         (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
1958         * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
1959         dconst1over2pi.
1960         (gcn_dconst1over2pi): New.
1961         (gcn_builtin_type_index): Add entry for v64df type.
1962         (v64df_type_node): New.
1963         (gcn_init_builtin_types): Initialize v64df_type_node.
1964         (gcn_expand_builtin_1): Expand new builtins to instructions.
1965         (print_operand): Fix assembler output for 1/(2*PI) constant.
1966         * config/gcn/gcn.md (unspec): Add new entries.
1968 2022-09-09  Richard Biener  <rguenther@suse.de>
1970         PR tree-optimization/106722
1971         * tree-predcom.cc (ref_at_iteration): Do not associate the
1972         constant part of the offset into the MEM_REF offset
1973         operand, across a non-zero offset.
1975 2022-09-09  Kito Cheng  <kito.cheng@sifive.com>
1977         * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
1978         Move forward for cover all all necessary functions for suppress
1979         unused function warnings.
1980         (riscv_multi_lib_check): Move forward, and tweak message to suppress
1981         -Werror=format-diag warning.
1983 2022-09-09  Richard Biener  <rguenther@suse.de>
1985         PR tree-optimization/106881
1986         * gimple-predicate-analysis.cc (simple_control_dep_chain):
1987         Add only non-fallthru edges and avoid the same set of edges
1988         as compute_control_dep_chain_pdom does.
1990 2022-09-09  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1992         * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
1993         of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
1994         * doc/tm.texi: Regenerate.
1996 2022-09-09  Martin Liska  <mliska@suse.cz>
1998         * optc-save-gen.awk: Always compare array option values with memcmp.
2000 2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
2002         PR c++/106838
2003         * doc/extend.texi (Type Traits): Fix requirements. Document
2004         __is_aggregate and __is_final.
2006 2022-09-08  Tim Lange  <mail@tim-lange.me>
2008         PR analyzer/106625
2009         * doc/invoke.texi:
2010         State that the checker also reasons about symbolic values.
2012 2022-09-08  Richard Sandiford  <richard.sandiford@arm.com>
2014         PR tree-optimization/106886
2015         * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
2016         Fix copying of scalar stmts.
2018 2022-09-08  Chung-Lin Tang  <cltang@codesourcery.com>
2020         * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
2022 2022-09-08  Richard Biener  <rguenther@suse.de>
2024         PR middle-end/106870
2025         * gimple-harden-conditionals.cc (insert_check_and_trap):
2026         Set the control-altering flag on the built IFN_TRAP.
2027         * gimple.cc (gimple_build_builtin_unreachable): Likewise.
2028         * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
2029         flag on the .ABNORMAL_DISPATCHER call.
2030         * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
2031         resetting the control altering flag for ECF_NORETURN calls.
2032         (cleanup_control_flow_bb): Set the control altering flag on
2033         discovered noreturn calls.
2034         * symtab-thunks.cc (expand_thunk): Set the control altering
2035         flag for the noreturn tailcall case.
2036         * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
2037         calls.
2039 2022-09-08  Jakub Jelinek  <jakub@redhat.com>
2041         * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
2042         Add doacross(sink:omp_cur_iteration-1) support.
2043         (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
2044         Adjust expand_omp_ordered_sink caller.
2045         (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
2046         non-NULL, set that variable to true at the start of outermost
2047         non-collapsed loop and set it to false at the end of innermost
2048         ordered loop.
2049         (expand_omp_for_generic): If fd->ordered, allocate
2050         1 + (fd->ordered - fd->collapse) further elements in counts array.
2051         Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
2052         fd->ordered - 1 loop if any.
2054 2022-09-08  Richard Biener  <rguenther@suse.de>
2056         PR tree-optimization/106881
2057         * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
2058         Add only non-fallthru edges and avoid the same set of edges
2059         as the caller does.
2061 2022-09-08  Aldy Hernandez  <aldyh@redhat.com>
2063         * gimple-range-fold.cc
2064         (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
2065         * range-op-float.cc (finite_operand_p): Same.
2066         (finite_operands_p): Same.
2067         (foperator_lt::fold_range): Same.
2068         (foperator_le::fold_range): Same.
2069         (foperator_gt::fold_range): Same.
2070         (foperator_ge::fold_range): Same.
2071         (foperator_unordered::fold_range): Same.
2072         (foperator_unordered::op1_range): Same.
2073         (foperator_ordered::fold_range): Same.
2074         * value-range.cc (frange::set_nan): Same.
2075         (frange::set_signbit): Same.
2076         (frange::union_): Same.
2077         (frange::intersect): Same.
2078         (frange::operator==): Same.
2079         (frange::singleton_p): Same.
2080         (frange::verify_range): Same.
2081         (range_tests_nan): Same.
2082         (range_tests_floats): Same.
2083         * value-range.h(frange::known_finite): New.
2084         (frange::maybe_inf): New.
2085         (frange::known_inf): New.
2086         (frange::maybe_nan): New.
2087         (frange::known_nan): New.
2088         (frange::known_signbit): New.
2090 2022-09-08  Iain Buclaw  <ibuclaw@gdcproject.org>
2092         * config/darwin-d.cc: Include tm.h.
2093         * config/dragonfly-d.cc: Likewise.
2094         * config/freebsd-d.cc: Remove memmodel.h.
2095         * config/glibc-d.cc: Likewise.
2096         * config/netbsd-d.cc: Include tm.h.
2097         * config/openbsd-d.cc: Likewise.
2098         * config/sol2-d.cc: Likewise.
2100 2022-09-08  Christophe Lyon  <christophe.lyon@arm.com>
2102         * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
2103         MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
2104         (mve_vqshluq_m_n_s<mode>): Likewise.
2105         (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
2106         instead of mve_imm_8/Rb.
2107         (mve_vqrshrunbq_n_s<mode>): Likewise.
2108         (mve_vqrshrntq_n_<supf><mode>): Likewise.
2109         (mve_vqrshruntq_n_s<mode>): Likewise.
2110         (mve_vrshrnbq_n_<supf><mode>): Likewise.
2111         (mve_vrshrntq_n_<supf><mode>): Likewise.
2112         (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
2113         (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
2114         (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
2115         (mve_vrshrntq_m_n_<supf><mode>): Likewise.
2116         (mve_vqrshrunbq_m_n_s<mode>): Likewise.
2117         (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
2118         of mve_imm_selective_upto_8/Rg.
2119         (mve_vsriq_m_n_<supf><mode>): Likewise.
2121 2022-09-08  Jiufu Guo  <guojiufu@linux.ibm.com>
2123         * config/rs6000/rs6000.md (splitter for set to and_mask constants):
2124         Use int_reg_operand (instead of int_reg_operand_not_pseudo).
2125         (splitter for multi-insn constant loads): Ditto.
2127 2022-09-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2129         * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
2130         -mvrsave is present.
2131         * config/rs6000/t-rtems: Add -mvrsave multilib variants for
2132         -mcpu=e6500.
2134 2022-09-07  Martin Liska  <mliska@suse.cz>
2136         * configure.ac: Restore detection of  HAVE_XCOFF_DWARF_EXTRAS.
2137         * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
2138         * configure: Regenerate.
2139         * config.in: Regenerate.
2141 2022-09-07  Surya Kumari Jangala  <jskumari@linux.ibm.com>
2143         PR rtl-optimization/105586
2144         * sched-rgn.cc (save_state_for_fallthru_edge): New function.
2145         (schedule_region): Use it for all blocks.
2147 2022-09-07  Joseph Myers  <joseph@codesourcery.com>
2149         * ginclude/stdalign.h [defined __STDC_VERSION__ &&
2150         __STDC_VERSION__ > 201710L]: Disable all content.
2151         * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
2152         > 201710L] (bool, true, false): Do not define.
2154 2022-09-07  Martin Liska  <mliska@suse.cz>
2156         PR bootstrap/106855
2157         * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
2158         * config/rs6000/rs6000.cc (rs6000_option_override_internal):
2159           Restore usage of XCOFF_DEBUGGING_INFO.
2160         * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
2161         * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
2162           XCOFF_DEBUGGING_INFO.
2163         (dw2_asm_output_nstring): Likewise.
2164         (USE_LINKONCE_INDIRECT): Likewise.
2165         * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
2166         (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
2167         (output_fde): Likewise.
2168         (output_call_frame_info): Likewise.
2169         (have_macinfo): Likewise.
2170         (add_AT_loc_list): Likewise.
2171         (add_AT_view_list): Likewise.
2172         (output_compilation_unit_header): Likewise.
2173         (output_pubnames): Likewise.
2174         (output_aranges): Likewise.
2175         (output_line_info): Likewise.
2176         (output_macinfo): Likewise.
2177         (dwarf2out_finish): Likewise.
2178         (dwarf2out_early_finish): Likewise.
2180 2022-09-07  Richard Biener  <rguenther@suse.de>
2182         PR tree-optimization/106866
2183         * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
2184         we changed cfun->calls_setjmp make sure to purge all
2185         abnormal call edges.
2187 2022-09-07  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
2189         * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
2190         float LE comparing with zero for fpuv3.
2191         * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
2192         features are enabled.
2194 2022-09-07  Richard Biener  <rguenther@suse.de>
2196         PR tree-optimization/106860
2197         * tree-ssa-loop-split.cc (split_loop): Find the exit to
2198         latch edge from the loop exit edge instead of from the
2199         latch.  Verify we're going to find it.
2201 2022-09-07  Richard Biener  <rguenther@suse.de>
2203         * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
2204         Adjust to take the region exit source as argument.
2205         (uninit_analysis::init_from_phi_def): Adjust.
2206         (uninit_analysis::init_use_preds): Mark the dominating region
2207         before computing control dependences.
2209 2022-09-07  Richard Sandiford  <richard.sandiford@arm.com>
2211         * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
2212         w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
2213         in that case.  Extend w<-r to w<-Z.
2214         (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
2215         (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
2216         available.
2217         (define_split): Do not apply the floating-point immediate-to-register
2218         split to zeros, even if MOVI is not available.
2220 2022-09-07  Richard Sandiford  <richard.sandiford@arm.com>
2222         * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
2223         Disallow use of FPRs in register asms for !TARGET_FLOAT.
2225 2022-09-07  Lulu Cheng  <chenglulu@loongson.cn>
2227         PR target/106828
2228         * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
2229         (TARGET_ASAN_SHADOW_OFFSET): New.
2231 2022-09-07  Jakub Jelinek  <jakub@redhat.com>
2233         * doc/invoke.texi (-Wno-unicode): Document.
2235 2022-09-07  Jiufu Guo  <guojiufu@linux.ibm.com>
2237         * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
2239 2022-09-07  Jiufu Guo  <guojiufu@linux.ibm.com>
2241         * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
2242         replacements.
2244 2022-09-07  liuhongt  <hongtao.liu@intel.com>
2246         PR tree-optimization/103144
2247         * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
2248         (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
2249         (vect_create_nonlinear_iv_init): New function.
2250         (vect_peel_nonlinear_iv_init): Ditto.
2251         (vect_create_nonlinear_iv_step): Ditto
2252         (vect_create_nonlinear_iv_vec_step): Ditto
2253         (vect_update_nonlinear_iv): Ditto
2254         (vectorizable_nonlinear_induction): Ditto.
2255         (vectorizable_induction): Call
2256         vectorizable_nonlinear_induction when induction_type is not
2257         vect_step_op_add.
2258         * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
2259         Update nonlinear iv for epilogue loop.
2260         * tree-vectorizer.h (enum vect_induction_op_type): New enum.
2261         (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
2263 2022-09-06  Richard Biener  <rguenther@suse.de>
2265         PR tree-optimization/106754
2266         * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
2267         New function, split out from compute_control_dep_chain.  Handle
2268         loop-exit like conditions here by pushing to the control vector.
2269         (compute_control_dep_chain): Adjust and streamline dumping.
2270         In the wrapper perform a post-dominator walk as well.
2271         (uninit_analysis::init_use_preds): Remove premature early exit.
2273 2022-09-06  Max Filippov  <jcmvbkbc@gmail.com>
2275         * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
2277 2022-09-06  Aldy Hernandez  <aldyh@redhat.com>
2279         * range-op-float.cc (build_le): Handle NANs and going past infinity.
2280         (build_lt): Same.
2281         (build_ge): Same.
2282         (build_gt): Same.
2283         (foperator_lt::op1_range): Avoid adjustments to range if build_*
2284         returned false.
2285         (foperator_lt::op2_range): Same.
2286         (foperator_le::op1_range): Same.
2287         (foperator_le::op2_range): Same.
2288         (foperator_gt::op1_range): Same.
2289         (foperator_gt::op2_range): Same.
2291 2022-09-06  Richard Biener  <rguenther@suse.de>
2293         * gimple-predicate-analysis.cc (compute_control_dep_chain):
2294         Add output flag to indicate whether we possibly have dropped
2295         any chains.  Return whether the info is complete from the
2296         wrapping overload.
2297         (uninit_analysis::init_use_preds): Adjust accordingly, with
2298         a workaround for PR106754.
2299         (uninit_analysis::init_from_phi_def): Properly guard the
2300         case where we complete an empty chain.
2302 2022-09-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2304         * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
2306 2022-09-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2308         * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
2309         type with same element type as arg0, and length as op2.
2311 2022-09-06  Richard Biener  <rguenther@suse.de>
2313         PR tree-optimization/106844
2314         * gimple-predicate-analysis.cc (compute_control_dep_chain):
2315         Return whether we found a chain.
2317 2022-09-06  Richard Biener  <rguenther@suse.de>
2319         PR tree-optimization/106841
2320         * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
2321         scatter/gather offset.
2323 2022-09-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2325         * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
2327 2022-09-06  Jakub Jelinek  <jakub@redhat.com>
2329         * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
2330         (gimple_omp_subcode):  Use GIMPLE_OMP_ORDERED instead of
2331         GIMPLE_OMP_TEAMS as upper bound.
2332         (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
2333         inline functions.
2334         * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
2335         NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
2336         (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
2337         with NULL OMP_ORDERED_BODY.
2338         * omp-low.cc (check_omp_nesting_restrictions): Use
2339         gimple_omp_ordered_standalone_p test instead of
2340         omp_find_clause (..., OMP_CLAUSE_DOACROSS).
2341         (lower_omp_ordered): Likewise.
2342         * omp-expand.cc (expand_omp, build_omp_regions_1,
2343         omp_make_gimple_edges): Likewise.
2345 2022-09-06  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
2347         * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
2348         (cskyv2_addcc_invert): Likewise.
2350 2022-09-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
2352         * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
2353         `insn'.
2354         (bpf_expand_epilogue): Likewise.
2356 2022-09-06  liuhongt  <hongtao.liu@intel.com>
2358         * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
2359         Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
2360         * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
2361         (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
2362         (avx512f_vcvtps2ph512_mask_sae): New expander
2364 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
2366         * gimple-range-fold.cc
2367         (fold_using_range::range_of_builtin_int_call): Ignore sign bit
2368         when there's the possibility of a NAN.
2370 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
2372         * gimple-range-fold.cc
2373         (fold_using_range::range_of_builtin_int_call): Fold a set signbit
2374         in __builtin_signbit to nonzero.
2376 2022-09-05  Alexander Monakov  <amonakov@ispras.ru>
2378         PR target/106453
2379         * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
2380         bits of operand 0 are consumed, and the result is zero-extended
2381         to 64 bits.
2383 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
2385         PR middle-end/106831
2386         * value-range.h (frange::supports_p): Disable decimal floats.
2387         * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
2388         check.
2389         (frange_drop_ninf): Same.
2391 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
2393         PR middle-end/106824
2394         * value-range.cc (frange::set_nan): Set undefined when updating a
2395         NAN to a non-NAN.
2397 2022-09-05  Kito Cheng  <kito.cheng@sifive.com>
2399         * config/riscv/riscv.cc (riscv_option_override): Fix wrong
2400         condition for MASK_DIV and simplify incompatible checking.
2401         * config/riscv/riscv.md (muldi3): Adding parentheses.
2403 2022-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2405         * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
2406         string is a valid -mcpu string and emit hint.
2408 2022-09-05  LiaoShihua  <shihua@iscas.ac.cn>
2410         * common/config/riscv/riscv-common.cc: Add Zmmul.
2411         * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
2412         (TARGET_ZMMUL): Ditto.
2413         * config/riscv/riscv.cc (riscv_option_override):Ditto.
2414         * config/riscv/riscv.md: Add Zmmul
2415         * config/riscv/riscv.opt: Ditto.
2417 2022-09-05  Richard Biener  <rguenther@suse.de>
2419         * tree-cfg.h (get_cases_for_edge): Declare.
2420         * tree-cfg.cc (get_cases_for_edge): Export.
2421         * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
2422         Start and end recording case labels.
2423         * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
2424         (predicate::init_from_control_deps): Use get_cases_for_edge.
2426 2022-09-05  Richard Biener  <rguenther@suse.de>
2428         * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
2429         (compute_control_dep_chain): Move uninit-control-dep-attempts
2430         checking where it also counts the post-dominator check
2431         invocations.
2433 2022-09-05  Richard Biener  <rguenther@suse.de>
2435         * gimple-predicate-analysis.h (predicate::debug): New.
2436         (predicate::dump): Add FILE * argument, add base overload.
2437         * gimple-predicate-analysis.cc (debug): New.
2438         (dump_pred_info): Add FILE * argument.
2439         (dump_pred_chain): Likewise.
2440         (predicate::dump): Split out preamble into overload.  Add
2441         FILE * argument.
2442         (predicate::debug): New.
2443         (predicate::simplify): Adjust.
2444         (predicate::normalize): Likewise.
2445         (predicate::init_from_control_deps): Likewise.
2447 2022-09-05  Richard Sandiford  <richard.sandiford@arm.com>
2449         * config/aarch64/aarch64-protos.h
2450         (aarch64_init_simd_builtins): Remove prototype.
2451         * config/aarch64/aarch64-builtins.cc
2452         (aarch64_simd_builtins_initialized_p): Delete.
2453         (aarch64_init_simd_builtins): Make static.  Remove protection
2454         against multiple calls.
2455         * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
2456         lazy SIMD builtin initialization.
2457         * config/aarch64/aarch64.cc
2458         (aarch64_option_valid_attribute_p): Likewise.
2460 2022-09-05  Xi Ruoyao  <xry111@xry111.site>
2462         * config/loongarch/genopts/loongarch.opt.in: Add
2463         -mdirect-extern-access option.
2464         * config/loongarch/loongarch.opt: Regenerate.
2465         * config/loongarch/loongarch.cc
2466         (loongarch_symbol_binds_local_p): Return true if
2467         TARGET_DIRECT_EXTERN_ACCESS.
2468         (loongarch_option_override_internal): Complain if
2469         -mdirect-extern-access is used with -fPIC or -fpic.
2470         * doc/invoke.texi: Document -mdirect-extern-access for
2471         LoongArch.
2473 2022-09-05  Martin Liska  <mliska@suse.cz>
2475         * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
2476           DEBUGGER_REGNO.
2477         * doc/tm.texi: Regenerate.
2479 2022-09-05  Martin Liska  <mliska@suse.cz>
2481         * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
2482         Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
2483         (aarch64_debugger_regno): Likewise.
2484         * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
2485         (aarch64_debugger_regno): Likewise.
2486         * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
2487         (DEBUGGER_REGNO): Likewise.
2488         (DWARF_FRAME_REGNUM): Likewise.
2489         * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
2490         * config/arc/arc.cc (arc_init_reg_tables): Likewise.
2491         * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
2492         (DEBUGGER_REGNO): Likewise.
2493         * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
2494         (arm_debugger_regno): Likewise.
2495         * config/arm/arm.cc (arm_dbx_regno): Likewise.
2496         (arm_debugger_regno): Likewise.
2497         * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
2498         (DEBUGGER_REGNO): Likewise.
2499         * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
2500         (DEBUGGER_REGNO): Likewise.
2501         * config/c6x/c6x.cc: Likewise.
2502         * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
2503         (DEBUGGER_REGNO): Likewise.
2504         * config/cris/cris.h (enum reg_class): Likewise.
2505         (DBX_REGISTER_NUMBER): Likewise.
2506         (DEBUGGER_REGNO): Likewise.
2507         * config/csky/csky.cc (enum reg_class): Likewise.
2508         * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
2509         (DBX_REGISTER_NUMBER): Likewise.
2510         (DEBUGGER_REGNO): Likewise.
2511         * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
2512         (DEBUGGER_REGNO): Likewise.
2513         * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
2514         (DEBUGGER_REGNO): Likewise.
2515         * config/gcn/gcn.cc (print_operand): Likewise.
2516         * config/i386/bsd.h (ASM_QUAD): Likewise.
2517         * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
2518         (DEBUGGER_REGNO): Likewise.
2519         (DWARF_FRAME_REGNUM): Likewise.
2520         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
2521         (DEBUGGER_REGNO): Likewise.
2522         * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
2523         (DEBUGGER_REGNO): Likewise.
2524         * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
2525         (DEBUGGER_REGNO): Likewise.
2526         * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
2527         (DEBUGGER_REGNO): Likewise.
2528         * config/i386/gas.h: Likewise.
2529         * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
2530         (DEBUGGER_REGNO): Likewise.
2531         * config/i386/i386.cc (enum reg_class): Likewise.
2532         * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
2533         (DEBUGGER_REGNO): Likewise.
2534         * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
2535         (DEBUGGER_REGNO): Likewise.
2536         * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
2537         (DEBUGGER_REGNO): Likewise.
2538         * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
2539         (DEBUGGER_REGNO): Likewise.
2540         * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
2541         (DEBUGGER_REGNO): Likewise.
2542         * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
2543         (DEBUGGER_REGNO): Likewise.
2544         * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
2545         (DEBUGGER_REGNO): Likewise.
2546         * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
2547         (DEBUGGER_REGNO): Likewise.
2548         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
2549         (DEBUGGER_REGNO): Likewise.
2550         * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
2551         (DEBUGGER_REGNO): Likewise.
2552         * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
2553         (ia64_debugger_regno): Likewise.
2554         * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
2555         (ia64_dbx_regno): Likewise.
2556         (ia64_debugger_regno): Likewise.
2557         (process_cfa_adjust_cfa): Likewise.
2558         (process_cfa_register): Likewise.
2559         (ia64_asm_unwind_emit): Likewise.
2560         * config/ia64/ia64.h: Likewise.
2561         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
2562         (DEBUGGER_REGNO): Likewise.
2563         * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
2564         (DEBUGGER_REGNO): Likewise.
2565         * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
2566         * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
2567         (DEBUGGER_REGNO): Likewise.
2568         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
2569         (DEBUGGER_REGNO): Likewise.
2570         * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
2571         (DEBUGGER_REGNO): Likewise.
2572         (__transfer_from_trampoline): Likewise.
2573         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
2574         (DEBUGGER_REGNO): Likewise.
2575         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
2576         (DBX_REGISTER_NUMBER): Likewise.
2577         (DEBUGGER_REGNO): Likewise.
2578         * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
2579         * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
2580         (DEBUGGER_REGNO): Likewise.
2581         (GP_DBX_FIRST): Likewise.
2582         (GP_DEBUGGER_FIRST): Likewise.
2583         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
2584         (DEBUGGER_REGNO): Likewise.
2585         * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
2586         (mmix_debugger_regno): Likewise.
2587         * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
2588         (mmix_debugger_regno): Likewise.
2589         * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
2590         (DEBUGGER_REGNO): Likewise.
2591         * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
2592         (nds32_debugger_regno): Likewise.
2593         * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
2594         (nds32_debugger_regno): Likewise.
2595         (nds32_use_blocks_for_constant_p): Likewise.
2596         * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
2597         (DEBUGGER_REGNO): Likewise.
2598         * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
2599         (DEBUGGER_REGNO): Likewise.
2600         * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
2601         (DEBUGGER_REGNO): Likewise.
2602         * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
2603         (DEBUGGER_REGNO): Likewise.
2604         * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
2605         (DEBUGGER_REGNO): Likewise.
2606         * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
2607         (rs6000_debugger_regno): Likewise.
2608         * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
2609         (rs6000_debugger_regno): Likewise.
2610         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
2611         (DEBUGGER_REGNO): Likewise.
2612         (DWARF2_FRAME_REG_OUT): Likewise.
2613         * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
2614         (DEBUGGER_REGNO): Likewise.
2615         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
2616         (DEBUGGER_REGNO): Likewise.
2617         * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
2618         (DEBUGGER_REGNO): Likewise.
2619         * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
2620         (DEBUGGER_REGNO): Likewise.
2621         (SH_DBX_REGISTER_NUMBER): Likewise.
2622         (SH_DEBUGGER_REGNO): Likewise.
2623         * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
2624         (DEBUGGER_REGNO): Likewise.
2625         * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
2626         (DEBUGGER_REGNO): Likewise.
2627         * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
2628         (DEBUGGER_REGNO): Likewise.
2629         * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
2630         (DEBUGGER_REGNO): Likewise.
2631         * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
2632         (xtensa_debugger_regno): Likewise.
2633         * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
2634         (xtensa_debugger_regno): Likewise.
2635         * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
2636         (DEBUGGER_REGNO): Likewise.
2637         * defaults.h (DBX_REGISTER_NUMBER): Likewise.
2638         (DEBUGGER_REGNO): Likewise.
2639         (DWARF_FRAME_REGNUM): Likewise.
2640         * doc/tm.texi: Likewise.
2641         * doc/tm.texi.in: Likewise.
2642         * dwarf2out.cc (dbx_reg_number): Likewise.
2643         (debugger_reg_number): Likewise.
2644         (reg_loc_descriptor): Likewise.
2645         (multiple_reg_loc_descriptor): Likewise.
2646         (mem_loc_descriptor): Likewise.
2647         * except.cc: Likewise.
2649 2022-09-05  konglin1  <lingling.kong@intel.com>
2651         PR target/106742
2652         * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
2653         Handle V8BF mode.
2654         (expand_vec_perm_broadcast_1): Ditto.
2655         * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
2656         (vec_set<mode>_0): Add @ to it.
2657         (@vec_set<mode>_0): Ditto.
2658         (vec_interleave_high<mode><mask_name>): Ditto.
2659         (@vec_interleave_high<mode><mask_name>): Ditto.
2660         (vec_interleave_low<mode><mask_name>): Ditto.
2661         (@vec_interleave_low<mode><mask_name>): Ditto.
2662         * config/i386/subst.md (SUBST_V): Add BF vector mode.
2664 2022-09-05  Aldy Hernandez  <aldyh@redhat.com>
2666         * value-range.cc (early_nan_resolve): Remove.
2667         (frange::intersect): Handle NANs.
2669 2022-09-04  Aldy Hernandez  <aldyh@redhat.com>
2671         * value-range.cc (frange::union_): Do not drop properties when
2672         unioning a NAN with something else.
2673         (range_tests_signed_zeros): Add tests.
2675 2022-09-04  Aldy Hernandez  <aldyh@redhat.com>
2677         * real.cc (encode_ieee_single): Use real_isdenormal.
2678         (encode_ieee_double): Same.
2679         (encode_ieee_extended): Same.
2680         (encode_ieee_quad): Same.
2681         (encode_ieee_half): Same.
2682         (encode_arm_bfloat_half): Same.
2683         * real.h (real_isdenormal): New.
2685 2022-09-03  Aldy Hernandez  <aldyh@redhat.com>
2687         * value-range.cc (frange::singleton_p): Move NAN check to the top.
2689 2022-09-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2691         * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
2693 2022-09-03  Jakub Jelinek  <jakub@redhat.com>
2695         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
2696         (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
2697         and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
2698         (enum omp_clause_doacross_kind): New type.
2699         (struct tree_omp_clause): Add subcode.doacross_kind member.
2700         * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
2701         (OMP_CLAUSE_DOACROSS_KIND): Define.
2702         (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
2703         (OMP_CLAUSE_DOACROSS_DEPEND): Define.
2704         (OMP_CLAUSE_ORDERED_DOACROSS): Define.
2705         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
2706         OMP_CLAUSE_DOACROSS entries.
2707         * tree-nested.cc (convert_nonlocal_omp_clauses,
2708         convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
2709         * tree-pretty-print.cc (dump_omp_clause): Don't handle
2710         OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.  Handle
2711         OMP_CLAUSE_DOACROSS.
2712         * gimplify.cc (gimplify_omp_depend): Don't handle
2713         OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
2714         (gimplify_scan_omp_clauses): Likewise.  Handle OMP_CLAUSE_DOACROSS.
2715         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
2716         (find_standalone_omp_ordered): New function.
2717         (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
2718         body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
2719         set OMP_CLAUSE_ORDERED_DOACROSS.
2720         (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
2721         OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
2722         diagnostics that presence or absence of ordered clause parameter
2723         is irrelevant.  Handle doacross(sink:omp_cur_iteration-1).  Use
2724         actual user name of the clause - doacross or depend - in diagnostics.
2725         * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
2726         if !OMP_CLAUSE_ORDERED_DOACROSS (t).  If
2727         OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
2728         set fd->ordered to -1 and set it after the loop in that case to
2729         fd->collapse.
2730         * omp-low.cc (check_omp_nesting_restrictions): Don't handle
2731         OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
2732         OMP_CLAUSE_DOACROSS.  Use actual user name of the clause - doacross
2733         or depend - in diagnostics.  Diagnose mixing of stand-alone and
2734         block associated ordered constructs binding to the same loop.
2735         (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
2736         instead handle OMP_CLAUSE_DOACROSS.
2737         (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
2738         OMP_CLAUSE_DEPEND.
2739         (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
2740         OMP_CLAUSE_DEPEND_SINK.
2741         * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
2742         doacross(sink:omp_cur_iteration-1).
2743         (expand_omp_ordered_source_sink): Use
2744         OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
2745         OMP_CLAUSE_DEPEND_SINK_NEGATIVE.  Use actual user name of the clause
2746         - doacross or depend - in diagnostics.
2747         (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
2748         OMP_CLAUSE_DEPEND.
2749         (build_omp_regions_1): Likewise.
2750         (omp_make_gimple_edges): Likewise.
2751         * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
2752         * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
2753         * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
2755 2022-09-02  David Malcolm  <dmalcolm@redhat.com>
2757         PR c/90885
2758         * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
2760 2022-09-02  Iain Buclaw  <ibuclaw@gdcproject.org>
2762         PR d/105659
2763         * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
2764         * config/aarch64/aarch64-d.cc: Include tm_d.h.
2765         * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
2766         config/aarch64/aarch64-d.h.
2767         (aarch64_d_register_target_info): Likewise.
2768         * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
2769         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2770         * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
2771         tm_p.h.
2772         * config/arm/arm-protos.h (arm_d_target_versions): Move to
2773         config/arm/arm-d.h.
2774         (arm_d_register_target_info): Likewise.
2775         * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
2776         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2777         * config/default-d.cc: Remove memmodel.h include.
2778         * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
2779         * config/glibc-d.cc: Likewise.
2780         * config/i386/i386-d.cc: Include tm_d.h.
2781         * config/i386/i386-protos.h (ix86_d_target_versions): Move to
2782         config/i386/i386-d.h.
2783         (ix86_d_register_target_info): Likewise.
2784         (ix86_d_has_stdcall_convention): Likewise.
2785         * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
2786         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2787         (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
2788         * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
2789         * config/mips/mips-d.cc: Include tm_d.h.
2790         * config/mips/mips-protos.h (mips_d_target_versions): Move to
2791         config/mips/mips-d.h.
2792         (mips_d_register_target_info): Likewise.
2793         * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
2794         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2795         * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
2796         * config/openbsd-d.cc: Likewise.
2797         * config/pa/pa-d.cc: Include tm_d.h.
2798         * config/pa/pa-protos.h (pa_d_target_versions): Move to
2799         config/pa/pa-d.h.
2800         (pa_d_register_target_info): Likewise.
2801         * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
2802         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2803         * config/riscv/riscv-d.cc: Include tm_d.h.
2804         * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
2805         config/riscv/riscv-d.h.
2806         (riscv_d_register_target_info): Likewise.
2807         * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
2808         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2809         * config/rs6000/rs6000-d.cc: Include tm_d.h.
2810         * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
2811         config/rs6000/rs6000-d.h.
2812         (rs6000_d_register_target_info): Likewise.
2813         * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
2814         (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
2815         * config/s390/s390-d.cc: Include tm_d.h.
2816         * config/s390/s390-protos.h (s390_d_target_versions): Move to
2817         config/s390/s390-d.h.
2818         (s390_d_register_target_info): Likewise.
2819         * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
2820         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2821         * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
2822         * config/sparc/sparc-d.cc: Include tm_d.h.
2823         * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
2824         config/sparc/sparc-d.h.
2825         (sparc_d_register_target_info): Likewise.
2826         * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
2827         (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
2828         * configure: Regenerate.
2829         * configure.ac (tm_d_file): Remove defaults.h.
2830         (tm_d_include_list): Remove options.h and insn-constants.h.
2831         * config/aarch64/aarch64-d.h: New file.
2832         * config/arm/arm-d.h: New file.
2833         * config/i386/i386-d.h: New file.
2834         * config/mips/mips-d.h: New file.
2835         * config/pa/pa-d.h: New file.
2836         * config/riscv/riscv-d.h: New file.
2837         * config/rs6000/rs6000-d.h: New file.
2838         * config/s390/s390-d.h: New file.
2839         * config/sparc/sparc-d.h: New file.
2841 2022-09-02  Aldy Hernandez  <aldyh@redhat.com>
2843         * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
2844         (fold_builtin_fpclassify): Same.
2845         * fold-const-call.cc (fold_const_call_cc): Same.
2846         * match.pd: Same.
2847         * omp-low.cc (omp_reduction_init_op): Same.
2848         * realmpfr.cc (real_from_mpfr): Same.
2849         * tree.cc (build_complex_inf): Same.
2851 2022-09-02  Peter Bergner  <bergner@linux.ibm.com>
2853         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
2854         NOP_EXPR for MMA pointer casting.
2856 2022-09-02  Richard Sandiford  <richard.sandiford@arm.com>
2858         * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
2859         Reduce the fallback cost to 1.  Only use it if the number of
2860         input lanes is equal to the number of output lanes.
2862 2022-09-02  Richard Sandiford  <richard.sandiford@arm.com>
2864         PR tree-optimization/106787
2865         * tree-vect-slp.cc (vect_map_to_instance): New function, split out
2866         from...
2867         (vect_bb_partition_graph_r): ...here.  Replace the visited set
2868         with a map from nodes to instances.  Ensure that a node only
2869         appears in one partition.
2870         (vect_bb_partition_graph): Update accordingly.
2872 2022-09-02  Richard Biener  <rguenther@suse.de>
2874         * timevar.def (TV_TREE_RPO_VN): New.
2875         * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
2876         * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
2877         (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
2878         (pass_fre::execute): Adjust.
2879         * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
2881 2022-09-02  Richard Biener  <rguenther@suse.de>
2883         PR tree-optimization/106809
2884         * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
2885         more than one successor before doing extra work.
2887 2022-09-02  Kito Cheng  <kito.cheng@sifive.com>
2889         * common/config/riscv/riscv-common.cc: Include <vector>.
2890         (struct riscv_multi_lib_info_t): New.
2891         (riscv_subset_list::match_score): Ditto.
2892         (find_last_appear_switch): Ditto.
2893         (prefixed_with): Ditto.
2894         (struct multi_lib_info_t): Ditto.
2895         (riscv_current_arch_str): Ditto.
2896         (riscv_current_abi_str): Ditto.
2897         (riscv_multi_lib_info_t::parse): Ditto.
2898         (riscv_check_cond): Ditto.
2899         (riscv_check_conds): Ditto.
2900         (riscv_compute_multilib): Ditto.
2901         (TARGET_COMPUTE_MULTILIB): Defined.
2902         * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
2903         doing link.
2904         (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
2905         * config/riscv/riscv.h (riscv_multi_lib_check): New.
2906         (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
2907         * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
2909 2022-09-02  Kito Cheng  <kito.cheng@sifive.com>
2911         * common/common-target.def (compute_multilib): New.
2912         * common/common-targhooks.h (default_compute_multilib): New.
2913         * common/common-targhooks.cc (default_compute_multilib): New.
2914         * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
2915         * doc/tm.texi: Regen.
2916         * gcc.cc: Include common/common-target.h.
2917         (set_multilib_dir) Call targetm_common.compute_multilib.
2918         (SWITCH_LIVE): Move to opts.h.
2919         (SWITCH_FALSE): Ditto.
2920         (SWITCH_IGNORE): Ditto.
2921         (SWITCH_IGNORE_PERMANENTLY): Ditto.
2922         (SWITCH_KEEP_FOR_GCC): Ditto.
2923         (struct switchstr): Ditto.
2924         * opts.h (SWITCH_LIVE): Move from gcc.c.
2925         (SWITCH_FALSE): Ditto.
2926         (SWITCH_IGNORE): Ditto.
2927         (SWITCH_IGNORE_PERMANENTLY): Ditto.
2928         (SWITCH_KEEP_FOR_GCC): Ditto.
2929         (struct switchstr): Ditto.
2931 2022-09-02  Martin Liska  <mliska@suse.cz>
2933         * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
2934         debugging format.
2936 2022-09-02  Martin Liska  <mliska@suse.cz>
2938         * Makefile.in: Remove -gstabs option support, DBX-related
2939           macros and DBX debugging info support.
2940         * collect2.cc (scan_prog_file): Likewise.
2941         * common.opt: Likewise.
2942         * config.gcc: Likewise.
2943         * config.in: Likewise.
2944         * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
2945         * config/alpha/alpha.cc: Likewise.
2946         * config/alpha/elf.h (ASM_SPEC): Likewise.
2947         * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
2948         (DBX_CONTIN_LENGTH): Likewise.
2949         * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
2950         (DBX_CONTIN_LENGTH): Likewise.
2951         * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
2952         * config/darwin.h (DSYMUTIL_SPEC): Likewise.
2953         (ASM_DEBUG_SPEC): Likewise.
2954         (DBX_DEBUGGING_INFO): Likewise.
2955         (DBX_USE_BINCL): Likewise.
2956         (DBX_CONTIN_LENGTH): Likewise.
2957         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
2958         * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
2959         (DBX_CONTIN_LENGTH): Likewise.
2960         * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
2961         (DBX_CONTIN_LENGTH): Likewise.
2962         * config/i386/gas.h (DBX_NO_XREFS): Likewise.
2963         (DBX_CONTIN_LENGTH): Likewise.
2964         * config/ia64/ia64.h: Likewise.
2965         * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
2966         * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
2967         * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
2968         (DBX_CONTIN_LENGTH): Likewise.
2969         (DBX_CONTIN_CHAR): Likewise.
2970         * config/mips/mips.cc (mips_output_filename): Likewise.
2971         (mips_option_override): Likewise.
2972         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
2973         (DBX_DEBUGGING_INFO): Likewise.
2974         (DBX_CONTIN_LENGTH): Likewise.
2975         (DBX_REGISTER_NUMBER): Likewise.
2976         (GP_DBX_FIRST): Likewise.
2977         (FP_DBX_FIRST): Likewise.
2978         (MD_DBX_FIRST): Likewise.
2979         * config/nvptx/nvptx.cc: Likewise.
2980         * config/openbsd.h (DBX_NO_XREFS): Likewise.
2981         * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
2982         * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
2983         (DBX_CONTIN_LENGTH): Likewise.
2984         * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
2985         (DBX_USE_BINCL): Likewise.
2986         (DBX_LINES_FUNCTION_RELATIVE): Likewise.
2987         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
2988         * config/pdp11/pdp11.cc: Likewise.
2989         * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
2990         (PREFERRED_DEBUGGING_TYPE): Likewise.
2991         (DBX_CONTIN_LENGTH): Likewise.
2992         * config/rs6000/rs6000-builtin.cc: Likewise.
2993         * config/rs6000/rs6000-call.cc: Likewise.
2994         * config/rs6000/rs6000-logue.cc (defined): Likewise.
2995         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
2996         (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
2997         (rs6000_xcoff_declare_function_name): Likewise.
2998         * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
2999         (DBX_FUNCTION_FIRST): Likewise.
3000         * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
3001         * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
3002         * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
3003         (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
3004         * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
3005         * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
3006         * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
3007         * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
3008         * config/vax/vax.cc (vax_file_start): Likewise.
3009         * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
3010         (DBX_CONTIN_LENGTH): Likewise.
3011         (DBX_CONTIN_CHAR): Likewise.
3012         (DBX_NO_XREFS): Likewise.
3013         (DBX_STATIC_STAB_DATA_SECTION): Likewise.
3014         * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
3015         (XCOFF_DEBUGGING_INFO): Likewise.
3016         * configure: Regenerate. Likewise.
3017         * configure.ac: Likewise.
3018         * debug.h: Likewise.
3019         * doc/install.texi: Likewise.
3020         * doc/invoke.texi: Likewise.
3021         * doc/passes.texi: Likewise.
3022         * doc/tm.texi: Likewise.
3023         * doc/tm.texi.in: Likewise.
3024         * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
3025         (dw2_asm_output_nstring): Likewise.
3026         (USE_LINKONCE_INDIRECT): Likewise.
3027         * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
3028         (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
3029         (output_fde): Likewise.
3030         (output_call_frame_info): Likewise.
3031         (have_macinfo): Likewise.
3032         (add_AT_loc_list): Likewise.
3033         (add_AT_view_list): Likewise.
3034         (output_compilation_unit_header): Likewise.
3035         (output_pubnames): Likewise.
3036         (output_aranges): Likewise.
3037         (output_line_info): Likewise.
3038         (output_macinfo): Likewise.
3039         (dwarf2out_finish): Likewise.
3040         (dwarf2out_early_finish): Likewise.
3041         * final.cc (final_scan_insn_1): Likewise.
3042         (rest_of_handle_final): Likewise.
3043         * flag-types.h (enum debug_info_type): Likewise.
3044         (DBX_DEBUG): Likewise.
3045         (XCOFF_DEBUG): Likewise.
3046         * function.cc (defined): Likewise.
3047         * gcc.cc (defined): Likewise.
3048         (ASM_DEBUG_SPEC): Likewise.
3049         (ASM_DEBUG_OPTION_SPEC): Likewise.
3050         * opts.cc (common_handle_option): Likewise.
3051         (set_debug_level): Likewise.
3052         * system.h (fancy_abort): Likewise.
3053         * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
3054         (TARGET_ASM_DESTRUCTOR): Likewise.
3055         * toplev.cc (defined): Likewise.
3056         * varasm.cc: Likewise.
3057         * config/dbxcoff.h: Removed.
3058         * config/dbxelf.h: Removed.
3059         * dbxout.cc: Removed.
3060         * dbxout.h: Removed.
3061         * gstab.h: Removed.
3062         * stab.def: Removed.
3063         * xcoffout.cc: Removed.
3064         * xcoffout.h: Removed.
3066 2022-09-02  Simon Rainer  <gcc.gnu@vvalter.com>
3068         PR ipa/106627
3069         * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
3070         Set TREE_NOTHROW correctly for dispatcher declaration.
3071         * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
3072         Likewise.
3074 2022-09-01  Tamar Christina  <tamar.christina@arm.com>
3076         PR other/106782
3077         * config/aarch64/aarch64.cc
3078         (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
3079         HOST_WIDE_INT_PRINT_UNSIGNED.
3081 2022-09-01  Richard Sandiford  <richard.sandiford@arm.com>
3083         * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
3084         VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
3085         to the number of vector elements, if that's a known constant.
3086         (vect_optimize_slp_pass::is_compatible_layout): Remove associated
3087         comment about zero SLP_TREE_LANES.
3088         (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
3089         all partition members when looking for potential layouts.
3090         Handle existing permutes of fixed-length vectors.
3092 2022-09-01  Uroš Bizjak  <ubizjak@gmail.com>
3094         PR target/106707
3095         * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
3096         Do not convert a move pattern where both operands are AX_REG.
3098 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
3100         * range-op-float.cc (build_le): Convert to dconst*inf.
3101         (build_ge): Same.
3102         * value-range.cc (frange::set_signbit): Same.
3103         (frange::normalize_kind): Same.
3104         (range_tests_floats): Same.
3105         * value-range.h (vrp_val_max): Same.
3106         (vrp_val_min): Same.
3107         (frange::set_varying): Same.
3109 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
3111         * emit-rtl.cc (init_emit_once): Initialize dconstinf and
3112         dconstninf.
3113         * real.h: Add dconstinf and dconstninf.
3115 2022-09-01  Richard Biener  <rguenther@suse.de>
3117         * gimple-predicate-analysis.cc (compute_control_dep_chain):
3118         Remove cycle detection, instead avoid walking backedges.
3120 2022-09-01  Richard Biener  <rguenther@suse.de>
3122         * gimple-predicate-analysis.cc (compute_control_dep_chain):
3123         New wrapping overload.
3124         (uninit_analysis::init_use_preds): Simplify.
3125         (uninit_analysis::init_from_phi_def): Likewise.
3127 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
3129         * gimple-range-fold.cc
3130         (fold_using_range::range_of_builtin_int_call): Add case for
3131         CFN_BUILT_IN_SIGNBIT.
3133 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
3135         * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
3136         bit.
3137         (foperator_not_equal::op1_range): Same.
3138         * value-query.cc (range_query::get_tree_range): Set sign bit.
3139         * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
3140         * value-range.cc (frange::set_signbit): New.
3141         (frange::set): Adjust for sign bit.
3142         (frange::normalize_kind): Same.
3143         (frange::union_): Remove useless comment.
3144         (frange::intersect): Same.
3145         (frange::contains_p): Adjust for sign bit.
3146         (frange::singleton_p): Same.
3147         (frange::verify_range): Same.
3148         (range_tests_signbit): New tests.
3149         (range_tests_floats): Call range_tests_signbit.
3150         * value-range.h (class frange_props): Add signbit
3151         (class frange): Same.
3153 2022-09-01  Jakub Jelinek  <jakub@redhat.com>
3155         PR other/106782
3156         * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
3157         instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
3158         * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
3159         derived types of gimple to gimple * to avoid -Wformat warnings.
3160         * tree-vect-loop-manip.cc (vect_set_loop_condition,
3161         vect_update_ivs_after_vectorizer): Likewise.
3162         * tree-vect-stmts.cc (vectorizable_load): Likewise.
3163         * tree-vect-patterns.cc (vect_split_statement,
3164         vect_recog_mulhs_pattern, vect_recog_average_pattern,
3165         vect_determine_precisions_from_range,
3166         vect_determine_precisions_from_users): Likewise.
3167         * gimple-loop-versioning.cc
3168         (loop_versioning::analyze_term_using_scevs): Likewise.
3169         * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
3170         (vect_build_slp_tree): Cast slp_tree to void * to avoid
3171         -Wformat warnings.
3172         (optimize_load_redistribution_1, vect_match_slp_patterns,
3173         vect_build_slp_instance, vect_optimize_slp_pass::materialize,
3174         vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
3175         vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
3176         (vect_print_slp_tree): Likewise.  Also use
3177         HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
3178         * tree-vect-loop.cc (vect_determine_vectorization_factor,
3179         vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
3180         vectorizable_induction, vect_transform_loop): Cast pointers to derived
3181         types of gimple to gimple * to avoid -Wformat warnings.
3182         (vect_analyze_loop_2): Cast slp_tree to void * to avoid
3183         -Wformat warnings.
3184         (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
3185         instead of %d.
3186         * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
3187         instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
3188         instead of SLP_TREE_DEF_TYPE (node).
3190 2022-09-01  Jakub Jelinek  <jakub@redhat.com>
3192         PR c++/106655
3193         * doc/invoke.texi (-Winvalid-utf8): Document it.
3195 2022-09-01  Aldy Hernandez  <aldyh@redhat.com>
3197         PR tree-optimization/106785
3198         * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
3199         (range_tests_floats): Same.
3201 2022-09-01  konglin1  <lingling.kong@intel.com>
3203         * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
3204         recognition.
3206 2022-09-01  Peter Bergner  <bergner@linux.ibm.com>
3208         PR target/101322
3209         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
3210         Enforce the use of a valid MMA pointer type.
3212 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
3214         * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
3215         registers.
3217 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
3219         * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
3220         (riscv_output_move): Add csrr vlenb assembly.
3221         * config/riscv/riscv.md (move_type): Add csrr vlenb type.
3222         (ext): New attribute.
3223         (ext_enabled): Ditto.
3224         (enabled): Ditto.
3226 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
3228         * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
3229         "vr" constraint.
3230         (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
3231         (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
3232         (vp): Add poly constraint.
3234 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
3236         * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
3238 2022-09-01  zhongjuzhe  <juzhe.zhong@rivai.ai>
3240         * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
3241         configuration according to TARGET_MIN_VLEN.
3242         * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
3244 2022-08-31  Martin Liska  <mliska@suse.cz>
3246         * config.build: Remove deprecated ports.
3247         * config.gcc: Likewise.
3248         * config.host: Likewise.
3249         * configure.ac: Likewise.
3250         * configure: Regenerate.
3251         * config/pa/pa-hpux10.h: Removed.
3252         * config/pa/pa-hpux10.opt: Removed.
3253         * config/pa/t-dce-thr: Removed.
3255 2022-08-31  Martin Liska  <mliska@suse.cz>
3257         * Makefile.in: Always install limits.h and syslimits.h to
3258         include folder.
3259         * configure.ac: Assign STMP_FIXINC blank if
3260         --disable-fixincludes is used.
3261         * configure: Regenerate.
3263 2022-08-31  Richard Biener  <rguenther@suse.de>
3265         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3266         Assert the guard_bb isn't empty and has more than one successor.
3267         Drop appropriate parts of the predicate when an edge fails to
3268         register a predicate.
3269         (predicate::dump): Dump empty predicate as TRUE.
3271 2022-08-31  Richard Biener  <rguenther@suse.de>
3273         PR tree-optimization/90994
3274         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3275         Ignore exceptional control flow and skip the edge for the purpose of
3276         predicate generation also for non-calls.
3278 2022-08-31  Aldy Hernandez  <aldyh@redhat.com>
3280         * value-range-storage.cc (frange_storage_slot::set_frange): Save
3281         endpoints.
3282         (frange_storage_slot::get_frange): Restore endpoints.
3283         * value-range-storage.h (class frange_storage_slot): Add endpoint
3284         fields.
3286 2022-08-31  Martin Liska  <mliska@suse.cz>
3288         PR tree-optimization/106789
3289         * range-op-float.cc (default_frelop_fold_range): Remove the
3290           function.
3292 2022-08-31  Martin Liska  <mliska@suse.cz>
3294         * value-range.h: Add more override keywords.
3296 2022-08-31  Martin Liska  <mliska@suse.cz>
3298         * value-range.h: Add override.
3300 2022-08-31  Richard Biener  <rguenther@suse.de>
3302         PR tree-optimization/65244
3303         * gimple-predicate-analysis.h (predicate::init_from_control_deps):
3304         Add argument to specify whether the predicate is for the USE.
3305         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3306         Also include predicates effective fallthru control edges when
3307         the predicate is for the USE.
3309 2022-08-31  Richard Biener  <rguenther@suse.de>
3311         PR tree-optimization/73550
3312         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3313         Sanitize debug dumping.  Handle case labels with a CASE_HIGH.
3314         (predicate::dump): Adjust for better readability.
3316 2022-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3317             Jakub Jelinek  <jakub@redhat.com>
3319         * omp-simd-clone.cc (simd_clone_adjust_return_type,
3320         simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
3321         instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
3323 2022-08-31  Richard Sandiford  <richard.sandiford@arm.com>
3325         * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
3326         argument.
3328 2022-08-31  zhongjuzhe  <juzhe.zhong@rivai.ai>
3330         * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
3331         initialize const_vf to 0.
3333 2022-08-31  Martin Liska  <mliska@suse.cz>
3335         * config.gcc: Remove cr16.
3337 2022-08-30  Martin Jambor  <mjambor@suse.cz>
3339         * vec.h (array_slice): Add constructors for non-const reference to
3340         heap vector and pointers to heap vectors.
3342 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
3344         * value-range.cc (early_nan_resolve): Change comment.
3345         (frange::union_): Handle union when one side is a NAN.
3346         (range_tests_nan): Add tests for NAN union.
3348 2022-08-30  Andrew Stubbs  <ams@codesourcery.com>
3350         * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
3351         (gcn_simd_clone_adjust): New.
3352         (gcn_simd_clone_usable): New.
3353         (TARGET_SIMD_CLONE_ADJUST): New.
3354         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
3355         (TARGET_SIMD_CLONE_USABLE): New.
3357 2022-08-30  Andrew Stubbs  <ams@codesourcery.com>
3359         * doc/tm.texi: Regenerate.
3360         * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
3361         vecsize.
3362         (simd_clone_adjust_argument_types): Likewise.
3363         * target.def (compute_vecsize_and_simdlen): Document the new
3364         vecsize_int and vecsize_float semantics.
3366 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
3368         * expmed.cc (store_bit_field_1): Fix byte offset calculation
3369         for undefined structures.
3371 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
3373         * params.opt (-param=vect-max-layout-candidates=): New parameter.
3374         * doc/invoke.texi (vect-max-layout-candidates): Document it.
3375         * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
3376         (auto_load_permutation_t): Likewise.
3377         * tree-vect-slp.cc (vect_slp_node_weight): New function.
3378         (slpg_layout_cost): New class.
3379         (slpg_vertex): Replace perm_in and perm_out with partition,
3380         out_degree, weight and out_weight.
3381         (slpg_partition_info, slpg_partition_layout_costs): New classes.
3382         (vect_optimize_slp_pass): Likewise, cannibalizing some part of
3383         the previous vect_optimize_slp.
3384         (vect_optimize_slp): Use it.
3386 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
3388         * hash-traits.h (vec_hash_base): New class.
3389         (vec_free_hash_base): Likewise.
3391 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
3393         * hash-traits.h (int_hash_base): New struct, split out from...
3394         (int_hash): ...this class, which now inherits from int_hash_base.
3395         * hash-map-traits.h (unbounded_hashmap_traits): Take a template
3396         parameter for the key that provides hash and equality functions.
3397         (unbounded_int_hashmap_traits): Turn into a type alias of
3398         unbounded_hashmap_traits.
3400 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
3402         * graphds.cc (graphds_scc): Add a pass-back parameter for the
3403         final node order.
3404         * graphds.h (graphds_scc): Update prototype accordingly.
3406 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
3408         * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
3409         (vect_transform_slp_perm_load): ...here.  Use SLP_TREE_VECTYPE instead
3410         of STMT_VINFO_VECTYPE.
3412 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
3414         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
3415         (vectorizable_slp_permutation): ...here.
3417 2022-08-30  Richard Sandiford  <richard.sandiford@arm.com>
3419         * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
3420         that the requested number of units is interoperable with the requested
3421         prevailing mode.
3423 2022-08-30  Martin Liska  <mliska@suse.cz>
3425         * config.gcc: Remove the port.
3426         * config/m32c/rtems.h: Removed.
3428 2022-08-30  Richard Biener  <rguenther@suse.de>
3430         PR tree-optimization/73550
3431         * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
3432         Do not apply MAX_NUM_CHAINS again.
3434 2022-08-30  Richard Biener  <rguenther@suse.de>
3436         * gimple-predicate-analysis.cc (format_edge_vec): Dump
3437         both source and destination.
3438         (dump_dep_chains): Remove.
3439         (uninit_analysis::init_use_preds): Remove redundant
3440         dumping of chains.
3442 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
3444         * value-range-storage.cc (frange_storage_slot::get_frange): Use
3445         frange_nan.
3446         * value-range.cc (frange::set_nan): New.
3447         (frange_nan): Move to header file.
3448         (range_tests_nan): Adjust frange_nan callers to pass type.
3449         New test.
3450         * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
3451         (frange_nan): New.
3453 2022-08-30  Richard Biener  <rguenther@suse.de>
3455         PR tree-optimization/67196
3456         * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
3457         Simplify and normalize use prediates before first use.
3459 2022-08-30  Richard Biener  <rguenther@suse.de>
3461         * gimple-predicate-analysis.cc (dump_pred_chain): Fix
3462         parentizing and AND prepending.
3463         (predicate::dump): Do not dump the GENERIC expanded
3464         predicate, properly parentize and prepend ORs to the
3465         piecewise predicate dump.
3466         (build_pred_expr): Remove.
3468 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
3470         * range-op-float.cc (finite_operand_p): New.
3471         (build_le): New.
3472         (build_lt): New.
3473         (build_ge): New.
3474         (build_gt): New.
3475         (foperator_equal::fold_range): New implementation with endpoints.
3476         (foperator_equal::op1_range): Same.
3477         (foperator_not_equal::fold_range): Same.
3478         (foperator_not_equal::op1_range): Same.
3479         (foperator_lt::fold_range): Same.
3480         (foperator_lt::op1_range): Same.
3481         (foperator_lt::op2_range): Same.
3482         (foperator_le::fold_range): Same.
3483         (foperator_le::op1_range): Same.
3484         (foperator_le::op2_range): Same.
3485         (foperator_gt::fold_range): Same.
3486         (foperator_gt::op1_range): Same.
3487         (foperator_gt::op2_range): Same.
3488         (foperator_ge::fold_range): Same.
3489         (foperator_ge::op1_range): Same.
3490         (foperator_ge::op2_range): Same.
3492 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
3494         * range-op-float.cc (frange_set_nan): New.
3495         (frange_drop_inf): New.
3496         (frange_drop_ninf): New.
3497         (foperator_equal::op1_range): Adjust for endpoints.
3498         (foperator_lt::op1_range): Same.
3499         (foperator_lt::op2_range): Same.
3500         (foperator_gt::op1_range): Same.
3501         (foperator_gt::op2_range): Same.
3502         (foperator_unordered::op1_range): Same.
3503         * value-query.cc (range_query::get_tree_range): Same.
3504         * value-range-pretty-print.cc (vrange_printer::visit): Same.
3505         * value-range-storage.cc (frange_storage_slot::get_frange): Same.
3506         * value-range.cc (frange::set): Same.
3507         (frange::normalize_kind): Same.
3508         (frange::union_): Same.
3509         (frange::intersect): Same.
3510         (frange::operator=): Same.
3511         (early_nan_resolve): New.
3512         (frange::contains_p): New.
3513         (frange::singleton_p): New.
3514         (frange::set_nonzero): New.
3515         (frange::nonzero_p): New.
3516         (frange::set_zero): New.
3517         (frange::zero_p): New.
3518         (frange::set_nonnegative): New.
3519         (frange_float): New.
3520         (frange_nan): New.
3521         (range_tests_nan): New.
3522         (range_tests_signed_zeros): New.
3523         (range_tests_floats): New.
3524         (range_tests): New.
3525         * value-range.h (frange::lower_bound): New.
3526         (frange::upper_bound): New.
3527         (vrp_val_min): Use real_inf with a sign instead of negating inf.
3528         (frange::frange): New.
3529         (frange::set_varying): Adjust for endpoints.
3530         (real_max_representable): New.
3531         (real_min_representable): New.
3533 2022-08-30  Aldy Hernandez  <aldyh@redhat.com>
3535         * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
3536         for real zero.
3538 2022-08-30  Martin Liska  <mliska@suse.cz>
3540         * config/s390/s390.cc (s390_rtx_costs): Use proper type as
3541           argument.
3543 2022-08-30  Richard Biener  <rguenther@suse.de>
3545         * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
3546         the set of fallthru reachable blocks from function entry
3547         and use that to determine wlims.always_executed.
3549 2022-08-30  Richard Biener  <rguenther@suse.de>
3551         PR tree-optimization/56654
3552         * tree-ssa-uninit.cc (cand_cmp): New.
3553         (find_uninit_use): First process all PHIs and collect candidate
3554         stmts, then sort those after RPO.
3555         (warn_uninitialized_phi): Pass on bb_to_rpo.
3556         (execute_late_warn_uninitialized): Compute and pass on
3557         reverse lookup of RPO number from basic block index.
3559 2022-08-30  Richard Biener  <rguenther@suse.de>
3561         * gimple-predicate-analysis.h (uninit_analysis::operator()):
3562         Remove.
3563         * gimple-predicate-analysis.cc
3564         (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
3565         simplify a bit.
3566         * tree-ssa-uninit.cc (defined_args): New global.
3567         (compute_uninit_opnds_pos): Mask with the recorded set
3568         of guarded maybe-uninitialized uses.
3569         (uninit_undef_val_t::operator()): Remove.
3570         (find_uninit_use): Process all PHI uses, recording the
3571         guarded ones and marking the PHI result as uninitialized
3572         consistently.
3573         (warn_uninitialized_phi): Adjust.
3574         (execute_late_warn_uninitialized): Get rid of the PHI worklist
3575         and instead walk the function in RPO order.
3576         * spellcheck.h (best_match::m_best_candidate_len): Initialize.
3578 2022-08-30  Tamar Christina  <tamar.christina@arm.com>
3580         PR tree-optimization/106744
3581         * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
3583 2022-08-30  Tamar Christina  <tamar.christina@arm.com>
3585         * expmed.cc (store_bit_field_1): Initialize regnum to 0.
3587 2022-08-29  David Faust  <david.faust@oracle.com>
3589         PR target/106745
3590         * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
3591         computation of index for anonymous members.
3593 2022-08-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
3595         * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
3596         target macro.
3598 2022-08-29  H.J. Lu  <hjl.tools@gmail.com>
3600         PR target/106748
3601         * config/i386/i386-expand.cc
3602         (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
3603         * config/i386/sse.md (V_256H): Add V16BF.
3605 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
3607         * config/s390/s390.cc (s390_address_cost): Declare.
3608         (s390_hard_regno_nregs): Declare.
3609         (s390_rtx_costs): Add handling for REG and MEM in SET.
3611 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
3613         * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
3614         (is_reverse_perm_mask): New function.
3615         (expand_perm_with_rot): Recognize reverse pattern.
3616         (expand_perm_with_vstbrq): New function.
3617         (expand_perm_with_vster): Use vler/vster for element reversal on z15.
3618         (vectorize_vec_perm_const_1): Use.
3619         (s390_vectorize_vec_perm_const): Add expand functions.
3620         * config/s390/vx-builtins.md: Prefer vster over vler.
3622 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
3624         * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
3625         * config/s390/vector.md: Rewrite patterns to use vec_select.
3626         * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
3627         Likewise.
3629 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
3631         PR target/100869
3632         * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
3633         (rotl<mode>3_di): New pattern.
3634         * config/s390/vx-builtins.md: Use vpdi and verll for reversing
3635         elements.
3637 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
3639         * config/s390/s390.cc (s390_issue_rate): Add z15.
3641 2022-08-29  Robin Dapp  <rdapp@linux.ibm.com>
3643         * common/config/s390/s390-common.cc: Enable -funroll-loops and
3644         -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
3645         * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
3646         loops larger than 12 instructions.
3647         (s390_override_options_after_change): Set unroll options.
3648         (s390_option_override_internal): Likewise.
3649         * config/s390/s390.opt: Document munroll-only-small-loops.
3651 2022-08-29  Richard Biener  <rguenther@suse.de>
3653         * gimple-predicate-analysis.cc (is_loop_exit,
3654         find_control_equiv_block): Inline into single caller ...
3655         (uninit_analysis::init_use_preds): ... here and refactor.
3657 2022-08-29  Richard Biener  <rguenther@suse.de>
3659         * gimple-predicate-analysis.cc (compute_control_dep_chain):
3660         Inline is_loop_exit and refactor, add comment about
3661         loop exits.
3663 2022-08-29  Kito Cheng  <kito.cheng@sifive.com>
3665         * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
3666         (riscv_frame_info::reset(void)): New.
3667         (riscv_compute_frame_info): Use riscv_frame_info::reset instead
3668         of memset when clean frame.
3670 2022-08-29  zhongjuzhe  <juzhe.zhong@rivai.ai>
3672         * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
3673         (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
3674         (riscv_address_insns): Add RVV modes condition.
3675         (riscv_binary_cost): Ditto.
3676         (riscv_rtx_costs): Adjust cost for RVV.
3677         (riscv_secondary_memory_needed): Add RVV modes condition.
3678         (riscv_hard_regno_nregs): Add RVV register allocation.
3679         (riscv_hard_regno_mode_ok): Add RVV register allocation.
3680         (riscv_class_max_nregs): Add RVV register allocation.
3681         * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
3682         (UNITS_PER_V_REG): New macro.
3683         (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
3684         (V_REG_FIRST): New macro.
3685         (V_REG_LAST): Ditto.
3686         (V_REG_NUM): Ditto.
3687         (V_REG_P): Ditto.
3688         (VL_REG_P): Ditto.
3689         (VTYPE_REG_P): Ditto.
3690         (RISCV_DWARF_VL): Ditto.
3691         (RISCV_DWARF_VTYPE): Ditto.
3692         (enum reg_class): Add RVV register types.
3693         (REG_CLASS_CONTENTS): Add RVV register types.
3694         * config/riscv/riscv.md: Add VL/VTYPE register number constants.
3696 2022-08-29  zhongjuzhe  <juzhe.zhong@rivai.ai>
3698         * config/riscv/riscv.md: Add new type for vector instructions.
3700 2022-08-28  Peter Bergner  <bergner@linux.ibm.com>
3702         PR target/106017
3703         * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
3704         of MMA pointer conversions.
3706 2022-08-27  Xi Ruoyao  <xry111@xry111.site>
3708         * config/i386/gcc-auto-profile: Regenerate.
3710 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
3712         * real.cc (real_iszero): New.
3713         * real.h (real_iszero): New.
3715 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
3717         * real.cc (real_isinf): New overload.
3718         (real_inf): Add sign argument.
3719         * real.h (real_isinf): New overload.
3720         (real_inf): Add sign argument.
3722 2022-08-26  Marek Polacek  <polacek@redhat.com>
3724         PR c++/81159
3725         * doc/invoke.texi: Document -Wself-move.
3727 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
3729         * value-range.cc (vrange::set): Set varying.
3730         (vrange::set_nonzero): Same.
3731         (vrange::set_zero): Same.
3732         (vrange::set_nonnegative): Same.
3734 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
3736         * range-op-float.cc (foperator_equal::op1_range): Do not blindly
3737         copy op2 range when honoring signed zeros.
3739 2022-08-26  Aldy Hernandez  <aldyh@redhat.com>
3741         * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
3742         add newline.
3743         (profitable_path_p): Same.
3745 2022-08-26  Richard Biener  <rguenther@suse.de>
3747         * gimple-predicate-analysis.h
3748         (uninit_analysis::use_cannot_happen): Remove.
3749         * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
3750         (uninit_analysis::use_cannot_happen): Likewise.
3751         (uninit_analysis::is_use_guarded): Do not call
3752         use_cannot_happen.
3753         (dump_predicates): Remove.
3754         (simple_control_dep_chain): Remove edge overload.
3756 2022-08-26  Tobias Burnus  <tobias@codesourcery.com>
3758         * internal-fn.cc (expand_GOMP_TARGET_REV): New.
3759         * internal-fn.def (GOMP_TARGET_REV): New.
3760         * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
3761         'omp target device_ancestor_host' as in_other_partition and don't
3762         error if absent.
3763         * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
3764         * omp-expand.cc (expand_omp_target): For reverse offload, remove
3765         sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
3766         empty-body nohost function.
3767         * omp-offload.cc (execute_omp_device_lower): Handle
3768         IFN_GOMP_TARGET_REV.
3769         (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
3770         nullify fn argument for reverse offload
3772 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
3774         * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
3775         * builtins.cc (expand_builtin_issignaling): New function.
3776         (expand_builtin_signbit): Don't overwrite target.
3777         (expand_builtin): Handle BUILT_IN_ISSIGNALING.
3778         (fold_builtin_classify): Likewise.
3779         (fold_builtin_1): Likewise.
3780         * optabs.def (issignaling_optab): New.
3781         * fold-const-call.cc (fold_const_call_ss): Handle
3782         BUILT_IN_ISSIGNALING.
3783         * config/i386/i386.md (issignalingxf2): New expander.
3784         * doc/extend.texi (__builtin_issignaling): Document.
3785         (__builtin_isinf, __builtin_isnan): Clarify behavior with
3786         -ffinite-math-only.
3787         * doc/md.texi (issignaling<mode>2): Likewise.
3789 2022-08-26  Jakub Jelinek  <jakub@redhat.com>
3791         PR tree-optimization/106099
3792         * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
3793         * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
3794         __builtin_trap to avoid the need of vops.
3796 2022-08-26  Richard Biener  <rguenther@suse.de>
3798         * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
3799         New helper.
3800         (compute_control_dep_chain): Adjust to honor marked region
3801         if provided.
3802         (uninit_analysis::init_from_phi_def): Pre-mark the dominating
3803         region to improve compute_control_dep_chain walking.
3804         * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
3806 2022-08-26  Richard Biener  <rguenther@suse.de>
3808         * gimple-predicate-analysis.cc
3809         (uninit_analysis::collect_phi_def_edges): Only expand a
3810         PHI def edge when it is possibly undefined.
3812 2022-08-26  Martin Liska  <mliska@suse.cz>
3814         * doc/extend.texi: Remove cr16 related stuff.
3815         * doc/install.texi: Likewise.
3816         * doc/invoke.texi: Likewise.
3817         * doc/md.texi: Likewise.
3818         * function-tests.cc (test_expansion_to_rtl): Likewise.
3819         * common/config/cr16/cr16-common.cc: Removed.
3820         * config/cr16/constraints.md: Removed.
3821         * config/cr16/cr16-protos.h: Removed.
3822         * config/cr16/cr16.cc: Removed.
3823         * config/cr16/cr16.h: Removed.
3824         * config/cr16/cr16.md: Removed.
3825         * config/cr16/cr16.opt: Removed.
3826         * config/cr16/predicates.md: Removed.
3827         * config/cr16/t-cr16: Removed.
3829 2022-08-26  liuhongt  <hongtao.liu@intel.com>
3831         PR target/106704
3832         * config/i386/i386-builtin.def (BDESC): Add
3833         CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
3834         corresponding builtins.
3835         * config/i386/i386.cc (ix86_gimple_fold_builtin):
3836         Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
3837         IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
3839 2022-08-25  Marek Polacek  <polacek@redhat.com>
3841         * ginclude/stddef.h: Define nullptr_t.
3843 2022-08-25  Joseph Myers  <joseph@codesourcery.com>
3845         * gimplify.cc (gimplify_modify_expr): Convert initialization from
3846         a variable-size CONSTRUCTOR to memset before call to
3847         gimplify_modify_expr_rhs.
3849 2022-08-25  Jason Merrill  <jason@redhat.com>
3851         * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
3853 2022-08-25  Andreas Krebbel  <krebbel@linux.ibm.com>
3855         PR target/106101
3856         * config/s390/predicates.md (subreg_register_operand): New
3857         predicate.
3858         * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
3859         function prototype.
3860         * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
3861         (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
3862         gen_lowpart.
3863         * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
3864         ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
3865         ("movstrictqi", "movstricthi", "movstrictsi"): Use the
3866         subreg_register_operand predicate instead of register_operand.
3868 2022-08-25  Xi Ruoyao  <xry111@xry111.site>
3870         * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
3871         Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
3872         * config/loongarch/loongarch.cc (loongarch_attribute_table):
3873         New attribute table.
3874         (TARGET_ATTRIBUTE_TABLE): Define the target hook.
3875         (loongarch_handle_model_attribute): New static function.
3876         (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
3877         model attribute of SYMBOL_REF_DECL into account returning
3878         SYMBOL_PCREL or SYMBOL_PCREL64.
3879         (loongarch_use_anchors_for_symbol_p): New static function.
3880         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
3881         (loongarch_symbol_extreme_p): New static function.
3882         (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
3883         (loongarch_symbol_insns): Likewise.
3884         (loongarch_split_symbol_type): Likewise.
3885         (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
3886         TARGET_CMODEL_EXTREME for PC-relative addressing.
3887         (loongarch_print_operand_reloc): Likewise.
3888         * doc/extend.texi (Variable Attributes): Document new
3889         LoongArch specific attribute.
3891 2022-08-25  Xi Ruoyao  <xry111@xry111.site>
3893         * config/loongarch/loongarch.cc (loongarch_classify_symbol):
3894         Return early if the rtx is not SYMBOL_REF.
3896 2022-08-25  Richard Biener  <rguenther@suse.de>
3898         PR tree-optimization/106737
3899         * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
3900         verify SSA form.
3902 2022-08-25  Chenghua Xu  <xuchenghua@loongson.cn>
3904         PR target/106459
3905         * config/loongarch/loongarch.cc (loongarch_build_integer):
3906         Use HOST_WIDE_INT.
3907         * config/loongarch/loongarch.h (IMM_REACH): Likewise.
3908         (HWIT_1U): New Defined.
3909         (LU12I_OPERAND): Use HOST_WIDE_INT.
3910         (LU32I_OPERAND): Likewise.
3911         (LU52I_OPERAND): Likewise.
3912         (HWIT_UC_0xFFF): Likwise.
3914 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3916         PR target/106632
3917         PR target/106588
3918         * config/riscv/bitmanip.md (*shNadduw): Use n constraint
3919         instead of i.
3920         (*slliuw): Likewise.
3921         (*bexti): Likewise. Also add a check for operands[2] to be less
3922         than the mode bitsize.
3924 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3926         * config/riscv/constraints.md (DbS): New constraint.
3927         (DnS): New constraint.
3928         * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
3929         (*bclr<mode>): Likewise.
3930         (*binvi<mode>): Likewise.
3932 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3934         PR target/106586
3935         * config/riscv/predicates.md (single_bit_mask_operand):
3936         Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
3937         (not_single_bit_mask_operand): Likewise.
3938         * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
3939         1<<31 for 32bits as it is already handled.
3940         Call trunc_int_for_mode on the upper part after the subtraction.
3941         (riscv_move_integer): Call trunc_int_for_mode before generating
3942         the integer just make sure the constant has been sign extended
3943         corectly.
3944         (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
3945         addition for the new rhs.
3946         * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
3947         then mask off the upper 32bits of the HWI as it will be sign extended.
3949 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3951         * config/riscv/constraints.md (DsS): New constraint.
3952         (DsD): New constraint.
3953         * config/riscv/iterators.md (shiftm1c): New iterator.
3954         * config/riscv/bitmanip.md (*bset<mode>_mask):
3955         Use shiftm1c.
3956         (*bset<mode>_1_mask): Likewise.
3958 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3960         * config/riscv/constraints.md (Ds3): New constraint.
3961         * config/riscv/predicates.md (imm123_operand): New predicate.
3962         * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
3963         (*shNadduw): Likewise.
3965 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3967         * config/riscv/riscv.cc (riscv_print_operand):
3968         Handle '~'.
3969         (riscv_print_operand_punct_valid_p): New function
3970         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3971         * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
3972         Use %~ instead of conditional the pattern on TARGET_64BIT.
3973         (rotrsi3): Likewise.
3974         (rotlsi3): Likewise.
3975         * config/riscv/riscv.md: Add ~ to the list of modifiers.
3976         (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
3977         (subsi3): Likewise.
3978         (negsi2): Likewise.
3979         (mulsi3): Likewise.
3980         (optab>si3/any_div): Likewise.
3981         (*add<mode>hi3): Likewise.
3982         (<optab>si3/any_shift): Likewise.
3984 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3986         * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
3987         keep the list in riscv.md in sync with this list.
3988         * config/riscv/riscv.md: Add list of modifiers as comments.
3990 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3992         * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
3993         * config/riscv/iterators.md: Here.
3995 2022-08-24  Andrew Pinski  <apinski@marvell.com>
3997         * config/riscv/bitmanip.md
3998         (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
3999         tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
4000         * config/riscv/iterators.md: Here.
4002 2022-08-24  Andrew Pinski  <apinski@marvell.com>
4004         * config/riscv/riscv.md (GPR): Move to new file.
4005         (P, X, BR): Likewise.
4006         (MOVE32, MOVE64, SHORT): Likewise.
4007         (HISI, SUPERQI, SUBX): Likewise.
4008         (ANYI, ANYF, SOFTF): Likewise.
4009         (size, load, default_load): Likewise.
4010         (softload, store, softstore): Likewise.
4011         (reg, fmt, ifmt, amo): Likewise.
4012         (UNITMODE, HALFMODE): Likewise.
4013         (RINT, rint_pattern, rint_rm): Likewise.
4014         (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
4015         (any_extend, any_shiftrt, any_shift): Likewise.
4016         (any_bitwise): Likewise.
4017         (any_div, any_mod): Likewise.
4018         (any_gt, any_ge, any_lt, any_le): Likewise.
4019         (u, su): Likewise.
4020         (optab, insn): Likewise.
4021         * config/riscv/iterators.md: New file.
4023 2022-08-24  Andrew Pinski  <apinski@marvell.com>
4025         PR target/106601
4026         * config/riscv/bitmanip.md (bswaphi2): New pattern.
4028 2022-08-24  Andrew Pinski  <apinski@marvell.com>
4030         PR target/106600
4031         * config/riscv/bitmanip.md (bswap<mode>2): Remove
4032         condition on TARGET_64BIT as X is already conditional there.
4034 2022-08-24  Joseph Myers  <joseph@codesourcery.com>
4036         * tree.cc (build_real): Give DFP dconst0 the minimum quantum
4037         exponent for the type.
4039 2022-08-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
4041         PR target/106733
4042         * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
4043         constants as legitimate addresses for functions.
4044         (bpf_small_register_classes_for_mode_p): Define target hook.
4046 2022-08-24  Richard Biener  <rguenther@suse.de>
4048         * gimple-predicate-analysis.cc: Move predicate normalization
4049         after the comment documenting it.
4051 2022-08-24  Richard Biener  <rguenther@suse.de>
4053         * gimple-predicate-analysis.h (predicate): Split out
4054         non-predicate related functionality into ..
4055         (uninit_analysis): .. this new class.
4056         * gimple-predicate-analysis.cc: Refactor into two classes.
4057         * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
4059 2022-08-24  Richard Biener  <rguenther@suse.de>
4061         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
4062         Do simple_control_dep_chain only up to cd_root, add the PHI
4063         operand edge to the chains like init_from_phi_def does.
4064         (predicate::is_use_guarded): Speedup early out, avoid half-way
4065         initializing the PHI def predicate.
4067 2022-08-24  Jakub Jelinek  <jakub@redhat.com>
4069         PR target/106721
4070         * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
4071         Change V32HF, V16HF and V8HF entries from "f" to "i".
4072         (iptr): Add V32BF, V16BF, V8BF and BF entries.
4073         (i128vldq): Add V16HF and V16BF entries.
4074         (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
4075         mask_opernad3 -> mask_operand3.
4077 2022-08-24  Martin Liska  <mliska@suse.cz>
4078             Jørgen Kvalsvik  <j@lambda.is>
4080         * gcov.cc (add_line_counts): Add group functions to coverage
4081         summary.
4082         (accumulate_line_counts): Similarly for files.
4084 2022-08-24  Lulu Cheng  <chenglulu@loongson.cn>
4086         * config/loongarch/genopts/loongarch-strings: Support code model medium.
4087         * config/loongarch/genopts/loongarch.opt.in: Likewise.
4088         * config/loongarch/loongarch-def.c: Likewise.
4089         * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
4090         (CMODEL_EXTREME): Likewise.
4091         (N_CMODEL_TYPES): Likewise.
4092         (CMODEL_MEDIUM): Likewise.
4093         * config/loongarch/loongarch-opts.cc: Likewise.
4094         * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
4095         * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
4096         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
4097         Tls symbol Loading support medium mode.
4098         (loongarch_legitimize_call_address): When medium mode, make a symbolic
4099         jump with two instructions.
4100         (loongarch_option_override_internal): Support medium.
4101         * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
4102         (@sibcall_internal_1<mode>): New function call templates added to support
4103         medium mode.
4104         (@sibcall_value_internal_1<mode>): Likewise.
4105         (@sibcall_value_multiple_internal_1<mode>): Likewise.
4106         (@call_internal_1<mode>): Likewise.
4107         (@call_value_internal_1<mode>): Likewise.
4108         (@call_value_multiple_internal_1<mode>): Likewise.
4109         * config/loongarch/loongarch.opt: Support medium.
4110         * config/loongarch/predicates.md: Add processing about medium mode.
4111         * doc/invoke.texi: Document for '-mcmodel=medium'.
4113 2022-08-24  Richard Biener  <rguenther@suse.de>
4115         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
4116         Start the compute_control_dep_chain walk from the immediate
4117         dominator of the PHI.
4119 2022-08-23  H.J. Lu  <hjl.tools@gmail.com>
4121         PR target/106714
4122         * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
4123         __PTRDIFF_TYPE__.
4124         (_tile_stream_loadd_internal): Likewise.
4125         (_tile_stored_internal): Likewise.
4127 2022-08-23  Richard Biener  <rguenther@suse.de>
4129         PR tree-optimization/106722
4130         * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
4131         MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
4132         * gimple-predicate-analysis.cc: ... here and document.
4133         (simple_control_dep_chain): New function, factored from
4134         predicate::use_cannot_happen.
4135         (predicate::use_cannot_happen): Adjust.
4136         (predicate::predicate): Use simple_control_dep_chain as fallback.
4138 2022-08-23  Aldy Hernandez  <aldyh@redhat.com>
4140         * range-op-float.cc (foperator_equal::op1_range): Set range to
4141         range of op2.
4143 2022-08-23  Richard Biener  <rguenther@suse.de>
4145         * gimple-predicate-analysis.cc (is_loop_exit): Split out
4146         from ...
4147         (is_non_loop_exit_postdominating): ... here.  Remove after
4148         inlining ...
4149         (find_control_equiv_block): ... here.
4150         (compute_control_dep_chain): ... and here.
4151         (predicate::is_use_guarded): Do not excempt loop exits
4152         from short-cutting the case of the use post-dominating the
4153         PHI definition.
4155 2022-08-23  Andrew MacLeod  <amacleod@redhat.com>
4157         PR tree-optimization/106687
4158         * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
4159         for the VREL_GT case as well.
4161 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
4163         * config/pru/pru.md (pru_<code>di3): New alternative for
4164         two operands but without earlyclobber.
4166 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
4168         * config/pru/pru.md (prumov<mode>, mov<mode>): Add
4169         variants for loading -1 consts.
4171 2022-08-22  Dimitar Dimitrov  <dimitar@dinux.eu>
4173         PR target/106564
4174         * config/pru/constraints.md (Um): New constraint for -1.
4175         (Uf): New constraint for IOR fill-bytes constants.
4176         (Uz): New constraint for AND zero-bytes constants.
4177         * config/pru/predicates.md (const_fillbytes_operand): New
4178         predicate for IOR fill-bytes constants.
4179         (const_zerobytes_operand): New predicate for AND zero-bytes
4180         constants.
4181         * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
4182         (struct pru_byterange): New struct to describe a byte range.
4183         (pru_calc_byterange): New declaration.
4184         * config/pru/pru.cc (pru_rtx_costs): Add penalty for
4185         64-bit zero-extend.
4186         (pru_output_sign_extend): Remove.
4187         (pru_calc_byterange): New helper function to extract byte
4188         range info from a constant.
4189         (pru_print_operand): Remove 'y' and 'z' print modifiers.
4190         * config/pru/pru.md (zero_extendqidi2): New pattern.
4191         (zero_extendhidi2): New pattern.
4192         (zero_extendsidi2): New pattern.
4193         (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
4194         (@pru_ior_fillbytes<mode>): New pattern.
4195         (@pru_and_zerobytes<mode>): New pattern.
4196         (<code>di3): Rewrite as an expand and handle ZERO and FILL
4197         special cases.
4198         (pru_<code>di3): New name for <code>di3.
4199         (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
4200         handle bit-test for 64-bit registers.
4202 2022-08-22  Richard Biener  <rguenther@suse.de>
4204         * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
4205         (predicate::def_expr): Likewise.
4206         (predicate::use_expr): Likewise.
4207         (predicate::expr): Likewise.
4208         * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
4209         (predicate::use_expr): Likewise.
4210         (predicate::expr): Likewise.
4211         (predicate::is_use_guarded): Do not build m_use_expr.
4213 2022-08-22  Martin Liska  <mliska@suse.cz>
4215         PR lto/106700
4216         * configure.ac: Detect O_NONBLOCK flag for open.
4217         * config.in: Regenerate.
4218         * configure: Regenerate.
4219         * opts-common.cc (jobserver_info::connect): Set is_connected
4220           properly based on O_NONBLOCK.
4221         * opts-jobserver.h (struct jobserver_info): Add is_connected
4222           member variable.
4224 2022-08-22  zhongjuzhe  <juzhe.zhong@rivai.ai>
4226         * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
4227         and repeat value different.
4229 2022-08-22  Tobias Burnus  <tobias@codesourcery.com>
4231         PR lto/106686
4232         * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
4233         (tool_cleanup): Unlink offload_names.
4234         (compile_offload_image): Take filename argument to set it early.
4235         (compile_images_for_offload_targets): Update call; set
4236         offload_names to NULL after freeing the array.
4238 2022-08-22  Richard Biener  <rguenther@suse.de>
4240         PR tree-optimization/105937
4241         * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
4242         on backedges.
4243         (execute_late_warn_uninitialized): Mark backedges.
4245 2022-08-22  Richard Biener  <rguenther@suse.de>
4247         * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
4248         If the use is guarded with multiple predicate paths compute
4249         the predicates intersection before going forward.  When
4250         compute_control_dep_chain wasn't able to come up with at
4251         least one path from function entry to the PHI edge compute
4252         a conservative sparse path instead.
4254 2022-08-20  Lulu Cheng  <chenglulu@loongson.cn>
4256         * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
4257         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
4258         Add extreme support for TLS GD and LD types.
4259         (loongarch_legitimize_tls_address): Add extreme support for TLS LE
4260         and IE.
4261         (loongarch_split_symbol): When compiling with -mcmodel=extreme,
4262         the symbol address will be obtained through five instructions.
4263         (loongarch_print_operand_reloc): Add support.
4264         (loongarch_print_operand): Add support.
4265         (loongarch_print_operand_address): Add support.
4266         (loongarch_option_override_internal): Set '-mcmodel=extreme' option
4267         incompatible with '-mno-explicit-relocs'.
4268         * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
4269         Loads bits 12-31 of data into registers.
4270         (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
4271         the source register.
4272         (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
4273         the source register.
4274         * config/loongarch/predicates.md: Symbols need to be decomposed
4275         when defining the macro TARGET_CMODEL_EXTREME
4276         * doc/invoke.texi: Modify the description information of cmodel in the document.
4277         Document -W[no-]extreme-plt.
4279 2022-08-19  Tobias Burnus  <tobias@codesourcery.com>
4281         * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
4282         files_to_cleanup.
4283         * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
4284         omp_requires_file to temp_files.
4285         * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
4286         (main): Remove local omp_requires_file var.
4287         (tool_cleanup): Handle omp_requires_file.
4289 2022-08-19  Aldy Hernandez  <aldyh@redhat.com>
4291         * gimple-range-path.cc (path_range_query::path_range_query):
4292         Remove constructor that takes edge.
4293         * gimple-range-path.h (class path_range_query): Same.
4294         * tree-ssa-loop-ch.cc (edge_range_query): New.
4295         (entry_loop_condition_is_static): Call edge_range_query.
4297 2022-08-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
4299         * config/xtensa/xtensa.h
4300         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
4301         Add new register class "ISC_REGS".
4302         * config/xtensa/constraints.md (c): Add new register constraint.
4303         * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
4304         (sibcall_internal, sibcall_value_internal):
4305         Change to use the new register constraint, and remove two split
4306         patterns for fixups that are no longer needed.
4308 2022-08-18  Maciej W. Rozycki  <macro@embecosm.com>
4310         * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
4311         pattern formatting.
4313 2022-08-18  Tim Lange  <mail@tim-lange.me>
4315         PR analyzer/106181
4316         * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
4318 2022-08-18  Aldy Hernandez  <aldyh@redhat.com>
4320         * gimple-range-path.cc (path_range_query::path_range_query): Add
4321         various constructors to take a path.
4322         (path_range_query::~path_range_query): Remove m_alloced_ranger.
4323         (path_range_query::range_on_path_entry): Adjust for m_ranger being
4324         a reference.
4325         (path_range_query::set_path): Rename to...
4326         (path_range_query::reset_path): ...this and call compute_ranges.
4327         (path_range_query::ssa_range_in_phi): Adjust for m_ranger
4328         reference.
4329         (path_range_query::range_defined_in_block): Same.
4330         (path_range_query::compute_ranges_in_block): Same.
4331         (path_range_query::adjust_for_non_null_uses): Same.
4332         (path_range_query::compute_exit_dependencies): Use m_path instead
4333         of argument.
4334         (path_range_query::compute_ranges): Remove path argument.
4335         (path_range_query::range_of_stmt): Adjust for m_ranger reference.
4336         (path_range_query::compute_outgoing_relations): Same.
4337         * gimple-range-path.h (class path_range_query): Add various
4338         constructors.
4339         Make compute_ranges and compute_exit_dependencies private.
4340         Rename set_path to reset_path.
4341         Make m_ranger a reference.
4342         Remove m_alloced_ranger.
4343         * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
4344         path_range_query.
4345         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
4346         ranger and instantiate a new path_range_query every time.
4347         (ch_base::copy_headers): Pass ranger instead of path_range_query.
4348         * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
4349         (back_threader::~back_threader): Remove m_solver.
4350         (back_threader::find_taken_edge_switch): Adjust for m_ranger
4351         reference.
4352         (back_threader::find_taken_edge_cond): Same.
4353         (back_threader::dump): Remove m_solver.
4354         (back_threader::back_threader): Move verify_marked_backedges
4355         here from the path_range_query constructor.
4356         * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
4357         some code from compute_ranges_from_state here.
4358         (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
4359         (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
4360         * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
4361         compute_ranges_from_state to compute_exit_dependencies.
4362         Remove m_path.
4364 2022-08-18  Richard Biener  <rguenther@suse.de>
4366         PR middle-end/106617
4367         * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
4368         guard, disable on GENERIC to not cause quadratic behavior
4369         with the fold-const.cc implementation and the use of !
4371 2022-08-18  Andrew Pinski  <apinski@marvell.com>
4373         PR gcov-profile/106659
4374         * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
4375           INCLUDE_VECTOR.
4377 2022-08-18  konglin1  <lingling.kong@intel.com>
4379         * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
4380         BFmode.
4381         (ix86_expand_vector_init_duplicate): Support vector BFmode.
4382         (ix86_expand_vector_init_one_nonzero): Ditto.
4383         (ix86_expand_vector_init_one_var): Ditto.
4384         (ix86_expand_vector_init_concat): Ditto.
4385         (ix86_expand_vector_init_interleave): Ditto.
4386         (ix86_expand_vector_init_general): Ditto.
4387         (ix86_expand_vector_init): Ditto.
4388         (ix86_expand_vector_set_var): Ditto.
4389         (ix86_expand_vector_set): Ditto.
4390         (ix86_expand_vector_extract): Ditto.
4391         * config/i386/i386.cc (classify_argument): Add BF vector modes.
4392         (function_arg_64): Ditto.
4393         (ix86_gimplify_va_arg): Ditto.
4394         (ix86_get_ssemov): Ditto.
4395         * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
4396         (VALID_AVX512F_REG_MODE): Ditto.
4397         (host_detect_local_cpu): Ditto.
4398         (VALID_SSE2_REG_MODE): Ditto.
4399         * config/i386/i386.md: Add BF vector modes.
4400         (MODE_SIZE): Ditto.
4401         (ssemodesuffix): Add bf suffix for BF vector modes.
4402         (ssevecmode): Ditto.
4403         * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
4404         (VI12HFBF_AVX512VL): Ditto.
4405         (V_256_512): Ditto.
4406         (VF_AVX512HFBF16): Ditto.
4407         (VF_AVX512BWHFBF16): Ditto.
4408         (VIHFBF): Ditto.
4409         (avx512): Ditto.
4410         (VIHFBF_256): Ditto.
4411         (VIHFBF_AVX512BW): Ditto.
4412         (VI2F_256_512):Ditto.
4413         (V8_128):Ditto.
4414         (V16_256): Ditto.
4415         (V32_512): Ditto.
4416         (sseinsnmode): Ditto.
4417         (sseconstm1): Ditto.
4418         (sseintmodesuffix): New mode_attr.
4419         (avx512fmaskmode): Ditto.
4420         (avx512fmaskmodelower): Ditto.
4421         (ssedoublevecmode): Ditto.
4422         (ssehalfvecmode): Ditto.
4423         (ssehalfvecmodelower): Ditto.
4424         (ssescalarmode): Add vector BFmode mapping.
4425         (ssescalarmodelower): Ditto.
4426         (ssexmmmode): Ditto.
4427         (ternlogsuffix): Ditto.
4428         (ssescalarsize): Ditto.
4429         (sseintprefix): Ditto.
4430         (i128): Ditto.
4431         (xtg_mode): Ditto.
4432         (bcstscalarsuff): Ditto.
4433         (<avx512>_blendm<mode>): New define_insn for BFmode.
4434         (<avx512>_store<mode>_mask): Ditto.
4435         (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
4436         (vec_set<mode>_0): New define_insn for BF vector set.
4437         (V8BFH_128): New mode_iterator for BFmode.
4438         (avx512fp16_mov<mode>): Ditto.
4439         (vec_set<mode>): New define_insn for BF vector set.
4440         (@vec_extract_hi_<mode>): Ditto.
4441         (@vec_extract_lo_<mode>): Ditto.
4442         (vec_set_hi_<mode>): Ditto.
4443         (vec_set_lo_<mode>): Ditto.
4444         (*vec_extract<mode>_0): New define_insn_and_split for BF
4445         vector extract.
4446         (*vec_extract<mode>): New define_insn.
4447         (VEC_EXTRACT_MODE): Add BF vector modes.
4448         (PINSR_MODE): Add V8BF.
4449         (sse2p4_1): Ditto.
4450         (pinsr_evex_isa): Ditto.
4451         (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
4452         insert for V8BFmode.
4453         (pbroadcast_evex_isa): Add BF vector modes.
4454         (AVX2_VEC_DUP_MODE): Ditto.
4455         (VEC_INIT_MODE): Ditto.
4456         (VEC_INIT_HALF_MODE): Ditto.
4457         (avx2_pbroadcast<mode>): Adjust to support BF vector mode
4458         broadcast.
4459         (avx2_pbroadcast<mode>_1): Ditto.
4460         (<avx512>_vec_dup<mode>_1): Ditto.
4461         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
4462         Ditto.
4464 2022-08-18  Martin Liska  <mliska@suse.cz>
4466         * configure: Regenerate.
4468 2022-08-18  Haochen Gui  <guihaoc@gcc.gnu.org>
4470         PR target/103109
4471         * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
4472         (<u>madddi4_highpart): New.
4473         (<u>madddi4_highpart_le): New.
4475 2022-08-18  Aldy Hernandez  <aldyh@redhat.com>
4477         * gimple-range-path.cc
4478         (path_range_query::compute_exit_dependencies): Use
4479         gimple_range_ssa_names.
4481 2022-08-18  zhongjuzhe  <juzhe.zhong@rivai.ai>
4483         * config/riscv/predicates.md: Adjust runtime invariant.
4484         * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
4485         (NUM_POLY_INT_COEFFS): New.
4486         * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
4487         runtime invariant.
4488         * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
4489         Adjust runtime invariant.
4490         * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
4491         invariant.
4492         (enum riscv_microarchitecture_type): Ditto.
4493         (riscv_valid_offset_p): Ditto.
4494         (riscv_valid_lo_sum_p): Ditto.
4495         (riscv_address_insns): Ditto.
4496         (riscv_load_store_insns): Ditto.
4497         (riscv_legitimize_move): Ditto.
4498         (riscv_binary_cost): Ditto.
4499         (riscv_rtx_costs): Ditto.
4500         (riscv_output_move): Ditto.
4501         (riscv_extend_comparands): Ditto.
4502         (riscv_flatten_aggregate_field): Ditto.
4503         (riscv_get_arg_info): Ditto.
4504         (riscv_pass_by_reference): Ditto.
4505         (riscv_elf_select_rtx_section): Ditto.
4506         (riscv_stack_align): Ditto.
4507         (riscv_compute_frame_info): Ditto.
4508         (riscv_initial_elimination_offset): Ditto.
4509         (riscv_set_return_address): Ditto.
4510         (riscv_for_each_saved_reg): Ditto.
4511         (riscv_first_stack_step): Ditto.
4512         (riscv_expand_prologue): Ditto.
4513         (riscv_expand_epilogue): Ditto.
4514         (riscv_can_use_return_insn): Ditto.
4515         (riscv_secondary_memory_needed): Ditto.
4516         (riscv_hard_regno_nregs): Ditto.
4517         (riscv_convert_vector_bits): New.
4518         (riscv_option_override): Adjust runtime invariant.
4519         (riscv_promote_function_mode): Ditto.
4520         * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
4521         (BITS_PER_RISCV_VECTOR): New.
4522         (BYTES_PER_RISCV_VECTOR): New.
4523         * config/riscv/riscv.md: Adjust runtime invariant.
4525 2022-08-18  Lulu Cheng  <chenglulu@loongson.cn>
4527         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
4528         Get __tls_get_addr address through got table when disable plt.
4530 2022-08-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
4532         * config/xtensa/xtensa.cc (xtensa_expand_prologue):
4533         Use an "addmi" machine instruction for updating the stack pointer
4534         rather than addition/subtraction via hard register A9, if the amount
4535         of change satisfies the literal value conditions of that instruction
4536         when the CALL0 ABI is used.
4537         (xtensa_expand_epilogue): Ditto.
4538         And also inhibit the stack pointer addition of constant zero.
4540 2022-08-17  Roger Sayle  <roger@nextmovesoftware.com>
4542         PR target/106640
4543         * config/i386/i386-features.cc
4544         (timde_scalar_chain::compute_convert_gain): Replace incorrect use
4545         of XINT with INTVAL (XEXP (src, 1)).
4547 2022-08-17  Aldy Hernandez  <aldyh@redhat.com>
4549         * gimple-range-path.cc
4550         (path_range_query::compute_ranges_in_block): Remove
4551         set_root_oracle call.
4552         (path_range_query::compute_ranges): Pass ranger oracle to
4553         reset_path.
4554         * value-relation.cc (path_oracle::reset_path): Set root oracle.
4555         * value-relation.h (path_oracle::reset_path): Add root oracle
4556         argument.
4558 2022-08-17  Marek Polacek  <polacek@redhat.com>
4560         PR c++/89780
4561         * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
4562         OPT_Wpessimizing_move and OPT_Wredundant_move.
4563         * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
4565 2022-08-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4566             Jakub Jelinek  <jakub@redhat.com>
4568         PR fortran/46539
4569         * common.opt (static-libquadmath): New option.
4570         * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
4571         * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
4573 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
4575         * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
4576         when filenames come out identically.
4578 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
4580         PR middle-end/106548
4581         * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
4582         for 'simd' linear-step values that are variable.
4584 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
4585             Chung-Lin Tang  <cltang@codesourcery.com>
4587         PR c++/104493
4588         * gimplify.cc (omp_notice_variable): Call omp_mappable_type
4589         instead of removed langhook.
4590         * omp-general.h (omp_mappable_type): New prototype.
4591         * omp-general.cc (omp_mappable_type):  New; moved from ...
4592         * langhooks.cc (lhd_omp_mappable_type): ... here.
4593         * langhooks-def.h (lhd_omp_mappable_type,
4594         LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
4595         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
4596         * langhooks.h (struct lang_hooks_for_types): Remove
4597         omp_mappable_type.
4599 2022-08-17  Christophe Lyon  <christophe.lyon@arm.com>
4601         * config.gcc (arm): Define with_float to hard if target name ends
4602         with 'hf'.
4604 2022-08-17  Richard Biener  <rguenther@suse.de>
4606         * tree-ssa-threadbackward.cc
4607         (back_threader_profitability): Split profitable_path_p
4608         into possibly_profitable_path_p and itself, keep state
4609         as new members.
4610         (back_threader::m_profit): Remove.
4611         (back_threader::find_paths): Likewise.
4612         (back_threader::maybe_register_path): Take profitability
4613         instance as parameter.
4614         (back_threader::find_paths_to_names): Likewise.  Use
4615         possibly_profitable_path_p and avoid the path range query
4616         when the path is currently too large.
4617         (back_threader::find_paths): Fold into ...
4618         (back_threader::maybe_thread_block): ... this.
4619         (get_gimple_control_stmt): Remove.
4620         (back_threader_profitability::possibly_profitable_path_p):
4621         Split out from profitable_path_p, do early profitability
4622         checks.
4623         (back_threader_profitability::profitable_path_p): Do final
4624         profitability path after the taken edge has been determined.
4626 2022-08-17  Xi Ruoyao  <xry111@xry111.site>
4628         * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
4629         (fmin<mode>3): Likewise.
4631 2022-08-17  Andrew MacLeod  <amacleod@redhat.com>
4633         * gimple-range-fold.cc (gimple_range_ssa_names): New.
4634         * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
4635         * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
4636           code to new routine.
4638 2022-08-16  Martin Liska  <mliska@suse.cz>
4640         PR target/106637
4641         * doc/install.texi: Remove link to www.bullfreeware.com
4643 2022-08-16  Kito Cheng  <kito.cheng@sifive.com>
4645         * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
4646         zfh and zfhmin.
4647         (riscv_ext_version_table): Ditto.
4648         (riscv_ext_flag_table): Ditto.
4649         * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
4650         (MASK_ZFH): Ditto.
4651         (TARGET_ZFHMIN): Ditto.
4652         (TARGET_ZFH): Ditto.
4653         * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
4654         for zfh and zfhmin.
4655         (riscv_emit_float_compare): Handle HFmode.
4656         * config/riscv/riscv.md (ANYF): Add HF.
4657         (SOFTF): Add HF.
4658         (load): Ditto.
4659         (store): Ditto.
4660         (truncsfhf2): New.
4661         (truncdfhf2): Ditto.
4662         (extendhfsf2): Ditto.
4663         (extendhfdf2): Ditto.
4664         (*movhf_hardfloat): Ditto.
4665         (*movhf_softfloat): Make sure not ZFHMIN.
4666         * config/riscv/riscv.opt (riscv_zf_subext): New.
4668 2022-08-16  Kito Cheng  <kito.cheng@sifive.com>
4670         * config/riscv/riscv-builtins.cc: include stringpool.h
4671         (riscv_float16_type_node): New.
4672         (riscv_init_builtin_types): Ditto.
4673         (riscv_init_builtins): Call riscv_init_builtin_types.
4674         * config/riscv/riscv-modes.def (HF): New.
4675         * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
4676         (riscv_mangle_type): New.
4677         (riscv_scalar_mode_supported_p): Ditto.
4678         (riscv_libgcc_floating_mode_supported_p): Ditto.
4679         (riscv_excess_precision): Ditto.
4680         (riscv_floatn_mode): Ditto.
4681         (riscv_init_libfuncs): Ditto.
4682         (TARGET_MANGLE_TYPE): Ditto.
4683         (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
4684         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
4685         (TARGET_INIT_LIBFUNCS): Ditto.
4686         (TARGET_C_EXCESS_PRECISION): Ditto.
4687         (TARGET_FLOATN_MODE): Ditto.
4688         * config/riscv/riscv.md (mode): Add HF.
4689         (softload): Add HF.
4690         (softstore): Ditto.
4691         (fmt): Ditto.
4692         (UNITMODE): Ditto.
4693         (movhf): New.
4694         (*movhf_softfloat): New.
4696 2022-08-16  Richard Biener  <rguenther@suse.de>
4698         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
4699         Do not walk further if we are leaving the current loop.
4701 2022-08-16  Sergei Trofimovich  <siarheit@google.com>
4703         PR driver/106624
4704         * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
4705         argument using xstrdup().
4707 2022-08-16  Aldy Hernandez  <aldyh@redhat.com>
4709         * gimple-range-path.cc (path_range_query::import_p): Rename to...
4710         (path_range_query::exit_dependency_p): ...this.
4711         (path_range_query::dump): Rename imports to exit dependencies.
4712         (path_range_query::compute_ranges_in_phis): Same.
4713         (path_range_query::compute_ranges_in_block): Same.
4714         (path_range_query::adjust_for_non_null_uses): Same.
4715         (path_range_query::compute_ranges): Same.
4716         (path_range_query::compute_phi_relations): Same.
4717         (path_range_query::add_to_imports): Rename to...
4718         (path_range_query::add_to_exit_dependencies): ...this.
4719         (path_range_query::compute_imports): Rename to...
4720         (path_range_query::compute_exit_dependencies): ...this.
4721         * gimple-range-path.h (class path_range_query): Rename imports to
4722         exit dependencies.
4724 2022-08-16  Martin Liska  <mliska@suse.cz>
4726         * value-range-storage.h (class obstack_vrange_allocator): Mark
4727           the class as final.
4728         (class ggc_vrange_allocator): Likewise.
4730 2022-08-16  Martin Liska  <mliska@suse.cz>
4732         * value-range-equiv.h (class value_range_equiv): Add virtual
4733           destructor.
4734         * value-range.h: Likewise.
4736 2022-08-16  Richard Biener  <rguenther@suse.de>
4738         PR middle-end/106630
4739         * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
4740         narrowing conversions.
4742 2022-08-16  Martin Liska  <mliska@suse.cz>
4744         * value-range-equiv.h (class value_range_equiv):
4746 2022-08-16  Martin Liska  <mliska@suse.cz>
4748         * config/i386/i386-features.h (class general_scalar_chain): Add
4749           final override for a method.
4750         (class timode_scalar_chain): Likewise.
4752 2022-08-16  Richard Biener  <rguenther@suse.de>
4754         * doc/invoke.texi (max-jump-thread-paths): Adjust.
4756 2022-08-16  Martin Liska  <mliska@suse.cz>
4758         * opts-common.cc (jobserver_info::connect): Open fifo
4759         in non-blocking mode.
4761 2022-08-16  Kewen.Lin  <linkw@gcc.gnu.org>
4763         PR target/103353
4764         * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
4765         check to preparation statements and add handlings for !TARGET_MMA.
4766         (define_expand movxo): Likewise.
4768 2022-08-16  Kewen Lin  <linkw@linux.ibm.com>
4770         PR tree-optimization/106322
4771         * tree-vect-stmts.cc (vectorizable_call): Don't allow
4772         vect_emulated_vector_p type for both vectype_in and vectype_out.
4774 2022-08-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
4776         * common/config/xtensa/xtensa-common.cc
4777         (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
4778         for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
4780 2022-08-15  Andrew MacLeod  <amacleod@redhat.com>
4782         PR tree-optimization/106621
4783         * value-range.cc (irange::set): Check for POLY_INT_CST early.
4785 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
4787         * config/i386/i386-features.cc
4788         (timode_scalar_chain::compute_convert_gain): Provide costs for
4789         shifts and rotates.
4790         (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
4791         and ROTATE just like existing ASHIFT and LSHIFTRT cases.
4792         (timode_scalar_to_vector_candidate_p): Handle all shifts and
4793         rotates by integer constants between 0 and 127.
4795 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
4797         * config/i386/i386-features.cc
4798         (timode_scalar_chain::compute_convert_gain): Provide gains for
4799         comparisons against 0/-1, including "*testti" patterns.
4801 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
4803         PR tree-optimization/64992
4804         PR tree-optimization/98956
4805         * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
4806         when X is zero_one_valued_p and the shift constant C is valid.
4807         (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
4808         when X is zero_one_valued_p and the shift constant C is valid.
4810 2022-08-15  Roger Sayle  <roger@nextmovesoftware.com>
4811             Richard Biener  <rguenther@suse.de>
4813         PR tree-optimization/71343
4814         * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
4815         expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
4816         (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
4817         to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
4819 2022-08-15  Richard Biener  <rguenther@suse.de>
4821         * gimple-range-path.cc (range_on_path_entry): Just
4822         call range_on_entry.
4824 2022-08-15  Jakub Jelinek  <jakub@redhat.com>
4826         PR rtl-optimization/106590
4827         * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
4828         (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
4829         mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
4830         further conditional moves.
4832 2022-08-15  konglin1  <lingling.kong@intel.com>
4834         * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
4835         * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
4836         (ix86_register_bf16_builtin_type): New function.
4837         (ix86_bf16_type_node): New.
4838         (ix86_bf16_ptr_type_node): Ditto.
4839         (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
4840         * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
4841         (ADJUST_FLOAT_FORMAT): Ditto.
4842         * config/i386/i386.cc (classify_argument): Handle BFmode.
4843         (construct_container): Ditto.
4844         (function_value_32): Return __bf16 by %xmm0.
4845         (function_value_64): Return __bf16 by SSE register.
4846         (ix86_output_ssemov): Handle BFmode.
4847         (ix86_legitimate_constant_p): Disable BFmode constant double.
4848         (ix86_secondary_reload): Require gpr as intermediate register
4849         to store __bf16 from sse register when sse4 is not available.
4850         (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
4851         (ix86_mangle_type): Add manlging for __bf16 type.
4852         (ix86_invalid_conversion): New function for target hook.
4853         (ix86_invalid_unary_op): Ditto.
4854         (ix86_invalid_binary_op): Ditto.
4855         (TARGET_INVALID_CONVERSION): New define for target hook.
4856         (TARGET_INVALID_UNARY_OP): Ditto.
4857         (TARGET_INVALID_BINARY_OP): Ditto.
4858         * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
4859         * config/i386/i386.md ("mode"): Add BFmode.
4860         (MODE_SIZE): Ditto.
4861         (X87MODEFH): Ditto.
4862         (HFBF): Add new define_mode_iterator.
4863         (*pushhf_rex64): Change for BFmode.
4864         (*push<mode>_rex64): Ditto.
4865         (*pushhf): Ditto.
4866         (*push<mode>): Ditto.
4867         (MODESH): Ditto.
4868         (hfbfconstf): Add new define_mode_attr.
4869         (*mov<mode>_internal): Add BFmode.
4871 2022-08-13  Roger Sayle  <roger@nextmovesoftware.com>
4872             Uroš Bizjak  <ubizjak@gmail.com>
4874         * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
4875         New predicate for values between 0/1 and 255, not multiples of 8.
4876         * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
4877         shifts by constant bit counts.
4878         (*ashlvti3_internal): New define_insn_and_split that lowers
4879         logical left shifts by constant bit counts, that aren't multiples
4880         of 8, before reload.
4881         (lshrv1ti3): Delay lowering of logical right shifts by constant.
4882         (*lshrv1ti3_internal): New define_insn_and_split that lowers
4883         logical right shifts by constant bit counts, that aren't multiples
4884         of 8, before reload.
4885         (ashrv1ti3):: Delay lowering of arithmetic right shifts by
4886         constant bit counts.
4887         (*ashrv1ti3_internal): New define_insn_and_split that lowers
4888         arithmetic right shifts by constant bit counts before reload.
4889         (rotlv1ti3): Delay lowering of rotate left by constant.
4890         (*rotlv1ti3_internal): New define_insn_and_split that lowers
4891         rotate left by constant bits counts before reload.
4892         (rotrv1ti3): Delay lowering of rotate right by constant.
4893         (*rotrv1ti3_internal): New define_insn_and_split that lowers
4894         rotate right by constant bits counts before reload.
4896 2022-08-12  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
4898         * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
4900 2022-08-12  Jan Hubicka  <hubicka@ucw.cz>
4902         PR middle-end/106057
4903         * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
4904         function.
4905         (possible_polymorphic_call_targets): Use it.
4907 2022-08-12  Andrew Carlotti  <andrew.carlotti@arm.com>
4909         * tree-ssa-loop.h: Improve comment
4911 2022-08-12  Jakub Jelinek  <jakub@redhat.com>
4913         PR tree-optimization/106506
4914         * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
4915         is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
4917 2022-08-12  Richard Biener  <rguenther@suse.de>
4919         PR tree-optimization/106593
4920         * tree-ssa-threadbackward.cc (back_threader::find_paths):
4921         If the imports from the conditional do not satisfy
4922         gimple_range_ssa_p don't try to thread anything.
4924 2022-08-12  Tamar Christina  <tamar.christina@arm.com>
4926         PR target/106524
4927         * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
4928         *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
4930 2022-08-12  Tim Lange  <mail@tim-lange.me>
4932         PR analyzer/106000
4933         * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
4935 2022-08-12  Andrew Pinski  <apinski@marvell.com>
4937         * config/aarch64/aarch64.md: Remove comment
4938         about MD_INCLUDES as it is out of date and not needed.
4940 2022-08-11  Richard Biener  <rguenther@suse.de>
4942         * gimple-range-path.cc (path_range_query::compute_imports):
4943         Restrict walking SSA defs to blocks inside the path.  Track
4944         the same operands as range_def_chain::get_def_chain does.
4946 2022-08-11  Richard Biener  <rguenther@suse.de>
4948         PR tree-optimization/106514
4949         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
4950         Compute and unwind both m_imports and interesting on the fly during
4951         path discovery.
4952         (back_threader::find_paths): Compute the original m_imports
4953         from just the SSA uses of the exit conditional.  Drop
4954         handling single_succ_to_potentially_threadable_block.
4955         * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
4956         constant PHI arguments without crashing.  Use PHI_ARG_DEF_FROM_EDGE.
4958 2022-08-11  Richard Biener  <rguenther@suse.de>
4960         * gimple-range-path.h (path_range_query::compute_imports):
4961         Take path as argument, not the exit block.
4962         * gimple-range-path.cc (path_range_query::compute_imports):
4963         Likewise, and adjust, avoiding possibly stale m_path.
4964         (path_range_query::compute_outgoing_relations): Register
4965         relations for all conditionals.
4966         * tree-ssa-threadbackward.cc (back_threader::find_paths):
4967         Adjust.
4969 2022-08-11  Kewen Lin  <linkw@linux.ibm.com>
4971         * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
4972         oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
4973         (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
4975 2022-08-11  Kewen Lin  <linkw@linux.ibm.com>
4977         * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
4978         Remove function declaration.
4980 2022-08-10  Richard Biener  <rguenther@suse.de>
4982         PR tree-optimization/106513
4983         * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
4984         for head_marker.
4986 2022-08-10  Martin Liska  <mliska@suse.cz>
4988         PR lto/106328
4989         * opts-jobserver.h (struct jobserver_info): Add pipefd.
4990         (jobserver_info::connect): New.
4991         (jobserver_info::disconnect): Likewise.
4992         (jobserver_info::get_token): Likewise.
4993         (jobserver_info::return_token): Likewise.
4994         * opts-common.cc: Implement the new functions.
4996 2022-08-10  Martin Liska  <mliska@suse.cz>
4998         * opts-jobserver.h: Add one member.
4999         * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
5000         format of --jobserver-auth.
5002 2022-08-10  Martin Liska  <mliska@suse.cz>
5004         * gcc.cc (driver::detect_jobserver): Remove and move to
5005         jobserver.h.
5006         * lto-wrapper.cc (jobserver_active_p): Likewise.
5007         (run_gcc): Likewise.
5008         * opts-jobserver.h: New file.
5009         * opts-common.cc (jobserver_info::jobserver_info): New function.
5011 2022-08-09  Roger Sayle  <roger@nextmovesoftware.com>
5013         * config/i386/i386-features.cc (scalar_chain::convert_compare):
5014         Create new pseudos only when/if needed.  Add support for TEST,
5015         i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
5016         When broadcasting V2DImode and V4SImode use new pseudo register.
5017         (timode_scalar_chain::convert_op): Do nothing if operand is
5018         already V1TImode.  Avoid generating useless SUBREG conversions,
5019         i.e. (SUBREG:V1TImode (REG:V1TImode) 0).  Handle CONST_WIDE_INT
5020         in addition to CONST_INT by using CONST_SCALAR_INT_P.
5021         (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
5022         CONST_WIDE_INT and CONST_INT.  Recognize new *testti_doubleword
5023         pattern as an STV candidate.
5024         (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
5025         operands in binary logic operations.
5026         * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
5027         for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
5028         as regular PTEST, i.e. cost->sse_op.
5029         * config/i386/i386.md (*testti_doubleword): New pre-reload
5030         define_insn_and_split that recognizes comparison of TI mode AND
5031         against zero.
5032         * config/i386/sse.md (*ptest<mode>_and): New pre-reload
5033         define_insn_and_split that recognizes UNSPEC_PTEST of identical
5034         AND operands.
5036 2022-08-09  Roger Sayle  <roger@nextmovesoftware.com>
5037             Richard Biener  <rguenther@suse.de>
5039         PR middle-end/21137
5040         PR tree-optimization/98954
5041         * fold-const.cc (fold_binary_loc): Remove optimizations to
5042         optimize ((X >> C1) & C2) ==/!= 0.
5043         * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
5044         check, and handle all values of INTEGER_CSTs @2 and @3.
5045         (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
5046         checks, and handle all values of INTEGER_CSTs @2 and @3.
5048 2022-08-09  David Malcolm  <dmalcolm@redhat.com>
5050         * doc/invoke.texi (Static Analyzer Options): Add notes on which
5051         functions the analyzer has hardcoded knowledge of.
5053 2022-08-09  Andrew Stubbs  <ams@codesourcery.com>
5055         * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
5056         (num_arg_regs): Allow vector arguments.
5057         (gcn_function_arg): Likewise.
5058         (gcn_function_arg_advance): Likewise.
5059         (gcn_arg_partial_bytes): Likewise.
5060         (gcn_return_in_memory): Likewise.
5061         (gcn_expand_epilogue): Get return value from v8.
5062         * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
5063         (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
5064         (FIRST_VPARM_REG): New.
5065         (FUNCTION_ARG_REGNO_P): Allow vector parameters.
5066         (struct gcn_args): Add vnum field.
5067         (LIBCALL_VALUE): All vector return values.
5068         * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
5069         (gcn_call_value_indirect): Likewise.
5071 2022-08-09  Richard Biener  <rguenther@suse.de>
5073         * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
5074         directly.  Avoid update_ssa when in SSA form.
5075         (expand_omp_atomic_store): Likewise.
5076         (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
5077         form.
5078         (expand_omp_atomic_pipeline): Likewise.
5079         (expand_omp_atomic_mutex): Likewise.
5080         * tree-parloops.cc (gen_parallel_loop): Use
5081         TODO_update_ssa_no_phi after loop_version.
5083 2022-08-09  Richard Biener  <rguenther@suse.de>
5085         * doc/invoke.texi (max-fsm-thread-length): Remove.
5086         * params.opt (max-fsm-thread-length): Likewise.
5087         * tree-ssa-threadbackward.cc
5088         (back_threader_profitability::profitable_path_p): Do not
5089         check max-fsm-thread-length.
5091 2022-08-09  Richard Biener  <rguenther@suse.de>
5093         PR tree-optimization/106514
5094         * params.opt (max-jump-thread-paths): New.
5095         * doc/invoke.texi (max-jump-thread-paths): Document.
5096         * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
5097         Honor max-jump-thread-paths, take overall_path argument.
5098         (back_threader::find_paths): Pass 1 as initial overall_path.
5100 2022-08-09  Tobias Burnus  <tobias@codesourcery.com>
5102         PR middle-end/106492
5103         * omp-low.cc (lower_rec_input_clauses): Add missing folding
5104         to data type of linear-clause list item.
5106 2022-08-08  Andrew MacLeod  <amacleod@redhat.com>
5108         PR tree-optimization/106556
5109         * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
5110           type of the cond_expr operands being evaluted.
5112 2022-08-08  Tom Honermann  <tom@honermann.net>
5114         * ginclude/stdatomic.h (atomic_char8_t,
5115         ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
5117 2022-08-08  Andrew Pinski  <apinski@marvell.com>
5119         PR middle-end/103645
5120         * gimplify.cc (gimplify_init_constructor): Don't build/add
5121         gimple assignment of an empty type.
5123 2022-08-08  Richard Biener  <rguenther@suse.de>
5125         PR lto/106540
5126         PR lto/106334
5127         * dwarf2out.cc (dwarf2out_register_external_die): Restore
5128         original assert.
5129         * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
5130         to input DECL_INITIAL, avoiding to commit drefs.
5132 2022-08-07  Roger Sayle  <roger@nextmovesoftware.com>
5134         * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
5135         for x86_64_hilo_general_operand to general operand.  Call
5136         force_reg on parts that are not x86_64_immediate_operand.
5138 2022-08-05  David Malcolm  <dmalcolm@redhat.com>
5140         PR analyzer/105947
5141         * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
5143 2022-08-05  Roger Sayle  <roger@nextmovesoftware.com>
5145         * expmed.cc (emit_store_flag_1): Move code to expand double word
5146         equality and inequality against zero or -1, using word operations,
5147         to after trying to use the backend's cstore<mode>4 optab/expander.
5149 2022-08-05  Tamar Christina  <tamar.christina@arm.com>
5151         PR middle-end/106534
5152         * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
5153         value_replacement and store_elim from diamonds.
5155 2022-08-05  Richard Biener  <rguenther@suse.de>
5157         * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
5158         Check whether the registry register_path rejected the path.
5159         (back_threader_registry::register_path): Return whether
5160         register_jump_thread succeeded.
5162 2022-08-05  Aldy Hernandez  <aldyh@redhat.com>
5164         PR tree-optimization/106514
5165         * value-range.cc (unsupported_range::unsupported_range): Move...
5166         * value-range.h (unsupported_range::unsupported_range): ...here.
5167         (unsupported_range::set_undefined): New.
5169 2022-08-05  Richard Biener  <rguenther@suse.de>
5171         PR tree-optimization/106533
5172         * tree-loop-distribution.cc (loop_distribution::execute): Continue
5173         analyzing the inner loops when find_seed_stmts_for_distribution
5174         fails.
5176 2022-08-05  Andrew Pinski  <apinski@marvell.com>
5178         * config/riscv/predicates.md (splittable_const_int_operand):
5179         Remove the check for TARGET_64BIT for single bit const values.
5181 2022-08-04  Andrew MacLeod  <amacleod@redhat.com>
5183         PR tree-optimization/106514
5184         * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
5185         Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
5187 2022-08-04  Tamar Christina  <tamar.christina@arm.com>
5189         * match.pd: New bit_not rule.
5191 2022-08-04  Tamar Christina  <tamar.christina@arm.com>
5193         PR middle-end/106519
5194         * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
5195         diamond shapes.
5197 2022-08-04  Sam Feifer  <sfeifer@redhat.com>
5199         PR tree-optimization/106243
5200         * match.pd (-x & 1): New simplification.
5202 2022-08-04  Richard Biener  <rguenther@suse.de>
5204         PR tree-optimization/106521
5205         * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
5206         CFG cleanup manually before rewriting into LC SSA.
5208 2022-08-04  Richard Biener  <rguenther@suse.de>
5210         * tree-ssa-threadbackward.cc (populate_worklist): Remove.
5211         (back_threader::resolve_phi): Likewise.
5212         (back_threader::find_paths_to_names): Rewrite greedy search.
5214 2022-08-04  Ilya Leoshkevich  <iii@linux.ibm.com>
5216         * config/s390/vector.md (V_HW_FT): New iterator.
5217         * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
5218         of V_HW.
5220 2022-08-03   Michael Meissner  <meissner@linux.ibm.com>
5222         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
5223         setting -mblock-ops-vector-pair.
5225 2022-08-03  Andrew MacLeod  <amacleod@redhat.com>
5227         PR tree-optimization/106514
5228         * value-relation.cc (path_oracle::killing_def) Do not walk the
5229           equivalence set clearing bits.
5231 2022-08-03  Tamar Christina  <tamar.christina@arm.com>
5233         * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
5234         sequence of a three-way conditional.
5235         (replace_phi_edge_with_variable): Support diamonds.
5236         (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
5237         min/max.
5238         (strip_bit_not, invert_minmax_code): New.
5240 2022-08-03  Richard Earnshaw  <rearnsha@arm.com>
5242         PR rtl-optimization/106187
5243         * alias.h (mems_same_for_tbaa_p): Declare.
5244         * alias.cc (mems_same_for_tbaa_p): New function.
5245         * dse.cc (record_store): Use it instead of open-coding
5246         alias check.
5247         * cselib.h (cselib_redundant_set_p): Declare.
5248         * cselib.cc: Include alias.h
5249         (cselib_redundant_set_p): New function.
5250         * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
5251         of rtx_equal_for_cselib_p.
5252         * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
5253         (reload_cse_noop_set_p): Delete.
5255 2022-08-03  Martin Liska  <mliska@suse.cz>
5257         * doc/gcov-dump.texi: Document the new option.
5258         * gcov-dump.cc (main): Parse the new option.
5259         (print_usage): Show the option.
5260         (tag_counters): Sort key:value pairs of TOP N counter.
5262 2022-08-03  Martin Liska  <mliska@suse.cz>
5264         * profile.cc (compute_branch_probabilities): Do not collect
5265         stats unless TDF_DETAILS.
5267 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
5268             Uroš Bizjak  <ubizjak@gmail.com>
5270         PR target/47949
5271         * config/i386/i386.md (peephole2): New peephole2 to convert
5272         SWI48 moves to/from %rax/%eax where the src is dead to xchg,
5273         when optimizing for minimal size with -Oz.
5275 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
5277         * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
5278         to split comparisons against -1 using AND and CMP -1 instructions.
5280 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
5282         * config/i386/i386-features.cc (compute_convert_gain): Add gain
5283         for converting suitable TImode shift to a V1TImode shift.
5284         (timode_scalar_chain::convert_insn): Add support for converting
5285         suitable ASHIFT and LSHIFTRT.
5286         (timode_scalar_to_vector_candidate_p): Consider logical shifts
5287         by integer constants that are multiples of 8 to be candidates.
5289 2022-08-03  Roger Sayle  <roger@nextmovesoftware.com>
5290             Segher Boessenkool  <segher@kernel.crashing.org>
5291             Richard Sandiford  <richard.sandiford@arm.com>
5293         * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
5294         optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
5295         that are all positive to complement the existing FFS and
5296         idempotent ABS simplifications.
5297         <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
5298         val_signbit_known_clear_p is true of the operand.
5299         Simplify sign extensions of SUBREG truncations of operands
5300         that are already suitably (zero) extended.
5301         <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
5302         of operands that are already suitably zero extended.
5304 2022-08-02  Andrew MacLeod  <amacleod@redhat.com>
5306         PR tree-optimization/106510
5307         * gimple-range-fold.cc (fur_source::register_outgoing_edges):
5308           Check for unsupported statements early.
5310 2022-08-02  Andrew MacLeod  <amacleod@redhat.com>
5312         PR tree-optimization/106474
5313         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
5314         range of equivalences that may contribute to the range.
5316 2022-08-02  Jose E. Marchesi  <jose.marchesi@oracle.com>
5318         * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
5319         encoding bit in BTF.
5321 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
5323         * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
5324         irange check.
5325         (tree_lower_bound): New.
5326         (tree_upper_bound): New.
5327         (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
5328         vrange.
5329         * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
5330         argument to vrange.
5332 2022-08-02  Richard Biener  <rguenther@suse.de>
5334         * tree-ssa-threadbackward.cc
5335         (back_threader_profitability::profitable_path_p): Apply
5336         size constraints to all paths again.
5338 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
5340         * range-op-float.cc (finite_operands_p): New.
5341         (frelop_early_resolve): New.
5342         (default_frelop_fold_range): New.
5343         (class foperator_equal): New.
5344         (class foperator_not_equal): New.
5345         (class foperator_lt): New.
5346         (class foperator_le): New.
5347         (class foperator_gt): New.
5348         (class foperator_ge): New.
5349         (class foperator_unordered): New.
5350         (class foperator_ordered): New.
5351         (class foperator_relop_unknown): New.
5352         (floating_op_table::floating_op_table): Add above classes to
5353         floating op table.
5354         * value-range.h (frange::supports_p): Enable.
5356 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
5358         * tree-core.h (struct tree_ssa_name): Add frange_info and
5359         reshuffle the rest.
5360         * value-range-storage.cc (vrange_storage::alloc_slot): Add case
5361         for frange.
5362         (vrange_storage::set_vrange): Same.
5363         (vrange_storage::get_vrange): Same.
5364         (vrange_storage::fits_p): Same.
5365         (frange_storage_slot::alloc_slot): New.
5366         (frange_storage_slot::set_frange): New.
5367         (frange_storage_slot::get_frange): New.
5368         (frange_storage_slot::fits_p): New.
5369         * value-range-storage.h (class frange_storage_slot): New.
5371 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
5373         * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
5374         query to integrals.
5376 2022-08-02  Aldy Hernandez  <aldyh@redhat.com>
5378         * value-range.cc (frange::set): Initialize m_props and cleanup.
5380 2022-08-02  Richard Biener  <rguenther@suse.de>
5382         PR tree-optimization/106497
5383         * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
5384         Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
5386 2022-08-02  Martin Liska  <mliska@suse.cz>
5388         * profile.cc (compute_branch_probabilities): Dump details only
5389         if TDF_DETAILS.
5390         * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
5391         TDF_ADDRESS is used, it makes comparison harder.
5393 2022-08-02  Richard Biener  <rguenther@suse.de>
5395         PR tree-optimization/106498
5396         * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
5397         SSA update here.
5398         (expand_omp_for): Or here.
5399         (execute_expand_omp): Instead schedule it here together
5400         with CFG cleanup via TODO.
5402 2022-08-02  Richard Biener  <rguenther@suse.de>
5404         PR lto/106334
5405         * dwarf2out.cc (dwarf2out_register_external_die): Adjust
5406         assert.
5408 2022-08-02  Richard Biener  <rguenther@suse.de>
5410         PR tree-optimization/106495
5411         * tree-ssa-threadbackward.cc
5412         (back_threader_profitability::profitable_path_p): If known_edge
5413         is probably never executed avoid threading.
5415 2022-08-01  David Malcolm  <dmalcolm@redhat.com>
5417         * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
5418         error.
5420 2022-08-01  Roger Sayle  <roger@nextmovesoftware.com>
5421             Uroš Bizjak  <ubizjak@gmail.com>
5423         PR target/106481
5424         * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
5425         Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
5426         CONST_VECTOR.
5428 2022-08-01  H.J. Lu  <hjl.tools@gmail.com>
5430         PR target/83782
5431         * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
5432         (TARGET_IFUNC_REF_LOCAL_OK): Use it.
5434 2022-08-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
5436         PR debug/106263
5437         * ctfc.h (struct ctf_dtdef): Add field linkage.
5438         * ctfc.cc (ctf_add_function): Set ctti_linkage.
5439         * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
5440         function types and subprograms.
5441         * btfout.cc (btf_asm_func_type): Emit linkage information for the
5442         function.
5443         (btf_dtd_emit_preprocess_cb): Propagate the linkage information
5444         for functions.
5446 2022-08-01  Andrew Stubbs  <ams@codesourcery.com>
5447             Jakub Jelinek   <jakub@redhat.com>
5449         * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
5450         the mask type.
5452 2022-08-01  Sam Feifer  <sfeifer@redhat.com>
5454         PR tree-optimization/104992
5455         * match.pd (x / y * y == x): New simplification.
5457 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
5459         * value-range.cc (tree_compare): New.
5460         (frange::set): Make more general.
5461         (frange::normalize_kind): Cleanup and return bool.
5462         (frange::union_): Use normalize_kind return value.
5463         (frange::intersect): Same.
5464         (frange::verify_range): Remove unnecessary else.
5465         * value-range.h (vrp_val_max): Move before frange class.
5466         (vrp_val_min): Same.
5467         (frange::frange): Remove set to m_type.
5469 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
5471         * value-range.cc (vrange::supports_type_p): Use const_tree.
5472         (irange::supports_type_p): Same.
5473         (frange::supports_type_p): Same.
5474         * value-range.h (Value_Range::supports_type_p): Same.
5475         (irange::supports_p): Same.
5477 2022-08-01  Aldy Hernandez  <aldyh@redhat.com>
5479         * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
5480         query SCEV for integers.
5481         (fold_using_range::range_of_ssa_name_with_loop_info): Remove
5482         irange check.
5484 2022-07-31  Roger Sayle  <roger@nextmovesoftware.com>
5486         * config/i386/i386.md (define_expand <any_rotate>ti3): For
5487         rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
5488         (rot[lr]64ti2_doubleword): New post-reload splitter.
5490 2022-07-31  Roger Sayle  <roger@nextmovesoftware.com>
5491             H.J. Lu  <hjl.tools@gmail.com>
5493         PR target/106450
5494         * config/i386/i386-features.cc (timode_check_non_convertible_regs):
5495         Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
5496         (timode_remove_non_convertible_regs): Update comment.
5497         Call timode_check_non_convertible_reg on all TImode register
5498         DEFs and USEs in each instruction.
5500 2022-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
5502         * config/xtensa/xtensa.md: Change hard register number used in
5503         the split patterns for indirect sibling call fixups from 10 to 11,
5504         the last free one for the CALL0 ABI.
5506 2022-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
5508         * config/xtensa/xtensa.cc (xtensa_rtx_costs):
5509         Add new case for IF_THEN_ELSE.
5511 2022-07-29  Andrew Stubbs  <ams@codesourcery.com>
5513         * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
5514         (<expander><mode>3<exec>): Use V_INT_noHI.
5515         (v<expander><mode>3<exec>): Likewise.
5517 2022-07-29  Andrew Stubbs  <ams@codesourcery.com>
5519         * config/gcn/gcn.md (one_cmpldi2): New.
5521 2022-07-29  Richard Biener  <rguenther@suse.de>
5523         PR tree-optimization/105679
5524         * tree-ssa-threadbackward.cc
5525         (back_threader_profitability::profitable_path_p): Avoid threading
5526         when the entry edge is probably never executed.
5528 2022-07-29  Richard Biener  <rguenther@suse.de>
5530         PR tree-optimization/106422
5531         * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
5532         Check whether we can copy thread blocks and cancel the thread if not.
5534 2022-07-29  Jakub Jelinek  <jakub@redhat.com>
5536         PR middle-end/106449
5537         * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
5538         iterators in non-rectangular simd loops.  Unshare fd->loops[i].n2
5539         or n2 before regimplifying it inside of a condition.
5541 2022-07-29  Jakub Jelinek  <jakub@redhat.com>
5543         * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
5544         extract_omp_for_update_vars, expand_omp_for_ordered_loops,
5545         expand_omp_simd): Don't fold_convert second argument to
5546         fold_build_pointer_plus to sizetype.
5548 2022-07-29  Lulu Cheng  <chenglulu@loongson.cn>
5550         * config.in: Regenerate.
5551         * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
5552         Select the value of the macro definition according to whether
5553         HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
5554         * configure: Regenerate.
5555         * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
5557 2022-07-29  Richard Biener  <rguenther@suse.de>
5559         * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
5560         Use CONVERT_EXPR_CODE_P.
5562 2022-07-29  Richard Biener  <rguenther@suse.de>
5564         * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
5565         get_vectype_for_scalar_type instead of
5566         vect_get_vector_types_for_stmt.
5568 2022-07-28  David Malcolm  <dmalcolm@redhat.com>
5570         PR analyzer/105893
5571         * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
5573 2022-07-28  David Malcolm  <dmalcolm@redhat.com>
5575         * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
5576         url.
5577         (Static Analyzer Options): Likewise.  Add urefs for all of the
5578         warnings that have associated CWE identifiers.
5580 2022-07-28  Maciej W. Rozycki  <macro@embecosm.com>
5582         * doc/implement-c.texi (Floating point implementation): Mention
5583         `-fno-trapping-math' in the context of FENV_ACCESS pragma.
5584         * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
5585         implication in the descriptions of `-fno-trapping-math' and
5586         `-frounding-math'.
5588 2022-07-28  Maciej W. Rozycki  <macro@embecosm.com>
5590         * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
5591         (QUIET_PATTERN): New int attribute.
5592         (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
5593         RTL insns entirely within the preparation statements.
5594         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
5595         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
5596         insns.
5597         (*riscv_fsnvsnan<mode>2): New insn.
5599 2022-07-28  Richard Biener  <rguenther@suse.de>
5601         PR middle-end/106457
5602         * tree.cc (array_at_struct_end_p): Handle array objects
5603         specially.
5605 2022-07-28  Jakub Jelinek  <jakub@redhat.com>
5607         PR tree-optimization/106099
5608         * internal-fn.def (TRAP): New internal fn.
5609         * internal-fn.h (expand_TRAP): Declare.
5610         * internal-fn.cc (expand_TRAP): Define.
5611         * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
5612         use internal fn rather than builtin.
5614 2022-07-27  Andrew Carlotti  <andrew.carlotti@arm.com>
5616         * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
5618 2022-07-27  WANG Xuerui  <i@xen0n.name>
5620         * doc/invoke.texi: Document -m[no-]explicit-relocs for
5621         LoongArch.
5623 2022-07-27  Maciej W. Rozycki  <macro@embecosm.com>
5625         * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
5626         duplicate backslashes.
5628 2022-07-27  Maciej W. Rozycki  <macro@embecosm.com>
5630         * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
5631         case.
5633 2022-07-27  Jakub Jelinek  <jakub@redhat.com>
5635         PR debug/106261
5636         * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
5637         output asm thunks for -dx.
5639 2022-07-27  Jakub Jelinek  <jakub@redhat.com>
5641         PR middle-end/106332
5642         * opts-common.cc (candidates_list_and_hint): Add gcc_assert
5643         that candidates is not an empty vector.
5645 2022-07-27  Xi Ruoyao  <xry111@xry111.site>
5647         * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
5648         assembler supports explicit relocation for LoongArch.
5649         * configure: Regenerate.
5650         * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
5651         Define to 0 if not defined.
5652         * config/loongarch/genopts/loongarch.opt.in
5653         (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
5654         * config/loongarch/loongarch.opt: Regenerate.
5656 2022-07-26  Peter Bergner  <bergner@linux.ibm.com>
5658         PR c/106016
5659         * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
5661 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
5663         * config/loongarch/loongarch-opts.cc: Modify the output message string
5664         of the warning.
5666 2022-07-26  Martin Liska  <mliska@suse.cz>
5668         * doc/tm.texi.in: Fix placement of defmac.
5669         * doc/tm.texi: Copy.
5671 2022-07-26  Martin Liska  <mliska@suse.cz>
5673         * doc/tm.texi.in: Fix cross @defmac and @hook.
5674         * doc/tm.texi: Copy.
5676 2022-07-26  Aldy Hernandez  <aldyh@redhat.com>
5678         PR tree-optimization/106444
5679         * value-range-pretty-print.cc (vrange_printer::visit): Handle
5680         legacy ranges.
5681         (vrange_printer::print_irange_bound): Work on wide_int's.
5682         * value-range-pretty-print.h (print_irange_bound): Same.
5683         * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
5685 2022-07-26  Richard Biener  <rguenther@suse.de>
5687         * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
5688         points to a constant continue checking ptr2.
5690 2022-07-26  Andrew Carlotti  <Andrew.Carlotti@arm.com>
5692         * config/aarch64/aarch64-builtins.cc
5693         (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
5694         (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
5695         (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
5696         (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
5697         (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
5698         (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
5699         (MODE_q_p128): Define macro to map to corresponding mode name.
5700         (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
5701         (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
5702         (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
5703         corresponding qualifier name.
5704         (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
5705         (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
5706         functions for the above mappings
5707         (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
5708         (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
5709         (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
5710         (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
5711         for all vreinterpret intrinsics
5712         (enum aarch64_builtins): Add vreinterpret function codes
5713         (aarch64_init_simd_intrinsics): New
5714         (handle_arm_neon_h): Improved comment.
5715         (aarch64_general_fold_builtin): Fold vreinterpret calls
5716         * config/aarch64/arm_neon.h
5717         (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
5718         (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
5719         (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
5720         (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
5721         (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
5722         (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
5723         (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
5724         (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
5725         (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
5726         (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
5727         (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
5728         (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
5729         (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
5730         (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
5731         (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
5732         (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
5733         (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
5734         (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
5735         (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
5736         (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
5737         (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
5738         (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
5739         (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
5740         (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
5741         (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
5742         (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
5743         (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
5744         (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
5745         (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
5746         (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
5747         (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
5748         (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
5749         (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
5750         (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
5751         (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
5752         (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
5753         (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
5754         (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
5755         (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
5756         (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
5757         (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
5758         (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
5759         (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
5760         (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
5761         (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
5762         (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
5763         (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
5764         (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
5765         (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
5766         (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
5767         (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
5768         (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
5769         (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
5770         (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
5771         (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
5772         (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
5773         (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
5774         (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
5775         (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
5776         (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
5777         (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
5778         (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
5779         (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
5780         (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
5781         (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
5782         (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
5783         (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
5784         (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
5785         (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
5786         (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
5787         (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
5788         (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
5789         (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
5790         (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
5791         (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
5792         (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
5793         (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
5794         (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
5795         (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
5796         (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
5797         (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
5798         (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
5799         (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
5800         (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
5801         (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
5802         (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
5803         (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
5804         (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
5805         (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
5806         (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
5807         (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
5808         (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
5809         (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
5810         (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
5811         (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
5812         (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
5813         (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
5814         (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
5815         (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
5816         (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
5817         (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
5818         (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
5819         (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
5820         (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
5821         (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
5822         (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
5823         (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
5824         (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
5825         (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
5826         (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
5827         (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
5828         (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
5829         (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
5830         (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
5831         (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
5832         (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
5833         (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
5834         (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
5835         (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
5836         (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
5837         (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
5838         (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
5839         (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
5840         (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
5841         (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
5842         (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
5843         (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
5844         (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
5845         (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
5846         (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
5847         (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
5848         (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
5849         (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
5850         (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
5851         (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
5852         (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
5853         (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
5854         (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
5855         (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
5856         (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
5857         (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
5858         (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
5859         (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
5860         (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
5861         (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
5862         (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
5863         (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
5864         (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
5865         (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
5866         (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
5867         (vreinterpretq_p128_bf16): Delete
5869 2022-07-26  Andrew Carlotti  <andrew.carlotti@arm.com>
5871         * config/aarch64/aarch64-builtins.cc
5872         (aarch64_simd_builtin_std_type): Rename to...
5873         (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
5874         (aarch64_lookup_simd_builtin_type): Rename to...
5875         (aarch64_simd_builtin_type): ...this. Add const/pointer
5876         support, and extract table lookup to...
5877         (aarch64_lookup_simd_type_in_table): ...this function.
5878         (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
5879         (aarch64_init_fcmla_laneq_builtins): Ditto.
5880         (aarch64_init_simd_builtin_functions): Ditto.
5882 2022-07-26  Andrew Carlotti  <andrew.carlotti@arm.com>
5884         * config/aarch64/aarch64-builtins.cc
5885         (aarch64_general_gimple_fold_builtin): Add combine.
5887 2022-07-26  Richard Biener  <rguenther@suse.de>
5889         PR tree-optimization/106189
5890         * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
5891         Divide using offset_ints.
5893 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
5895         * common/config/loongarch/loongarch-common.cc:
5896         Enable '-fsection-anchors' when O1 and more advanced optimization.
5897         * config/loongarch/genopts/loongarch.opt.in: Add new option
5898         '-mexplicit-relocs', and enable by default.
5899         * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
5900         Delete function declaration.
5901         (loongarch_split_move_insn): Delete function declaration.
5902         (loongarch_split_symbol_type): Add function declaration.
5903         * config/loongarch/loongarch.cc (enum loongarch_address_type):
5904         Add new address type 'ADDRESS_LO_SUM'.
5905         (loongarch_classify_symbolic_expression): New function definitions.
5906         Classify the base of symbolic expression X, given that X appears in
5907         context CONTEXT.
5908         (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
5909         (loongarch_split_symbol_type): New function definitions.
5910         Determines whether the symbol load should be split into two instructions.
5911         (loongarch_valid_lo_sum_p): New function definitions.
5912         Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
5913         symbol has type SYMBOL_TYPE.
5914         (loongarch_classify_address): Add handling of 'LO_SUM'.
5915         (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
5916         (loongarch_signed_immediate_p): Sort code.
5917         (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
5918         (loongarch_const_insns): Add handling of 'HIGH'.
5919         (loongarch_split_move_insn_p): Add the static attribute to the function.
5920         (loongarch_emit_set): New function definitions.
5921         (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
5922         (loongarch_legitimize_tls_address): Add symbol handling when defining the
5923         TARGET_EXPLICIT_RELOCS macro.
5924         (loongarch_split_symbol): New function definitions. Split symbol.
5925         (loongarch_legitimize_address): Add codes see if the address can split into a high part
5926         and a LO_SUM.
5927         (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
5928         high and low.
5929         (loongarch_split_move_insn): Delete function definitions.
5930         (loongarch_output_move): Add support for HIGH and LO_SUM.
5931         (loongarch_print_operand_reloc): New function definitions.
5932         Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
5933         (loongarch_memmodel_needs_release_fence): Sort code.
5934         (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
5935         and LOW output.
5936         (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
5937         (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
5938         (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
5939         * config/loongarch/loongarch.md (movti): Delete the template.
5940         (*movti): Delete the template.
5941         (movtf): Delete the template.
5942         (*movtf): Delete the template.
5943         (*low<mode>): New template of normal symbol low address.
5944         (@tls_low<mode>): New template of tls symbol low address.
5945         (@ld_from_got<mode>): New template load address from got table.
5946         (@ori_l_lo12<mode>): New template.
5947         * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
5948         * config/loongarch/predicates.md: Add support for symbol_type HIGH.
5950 2022-07-26  Lulu Cheng  <chenglulu@loongson.cn>
5952         * config/loongarch/constraints.md (a): Delete the constraint.
5953         (b): A constant call not local address.
5954         (h): Delete the constraint.
5955         (t): Delete the constraint.
5956         * config/loongarch/loongarch-opts.cc (loongarch_config_target):
5957         Remove cModel type support other than normal.
5958         * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
5959         Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
5960         (loongarch_split_symbol): Delete useless function declarations.
5961         (loongarch_split_symbol_type): Delete useless function declarations.
5962         * config/loongarch/loongarch.cc (enum loongarch_address_type):
5963         Delete unnecessary comment information.
5964         (loongarch_symbol_binds_local_p): Modified the judgment order of label
5965         and symbol.
5966         (loongarch_classify_symbol): Return symbol type. If symbol is a label,
5967         or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
5968         return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
5969         (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
5970         'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
5971         (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
5972         and 'SYMBOL_PCREL'.
5973         (loongarch_address_insns): Sort code.
5974         (loongarch_12bit_offset_address_p): Sort code.
5975         (loongarch_14bit_shifted_offset_address_p): Sort code.
5976         (loongarch_call_tls_get_addr): Sort code.
5977         (loongarch_legitimize_tls_address): Sort code.
5978         (loongarch_output_move): Remove schema support for cmodel other than normal.
5979         (loongarch_memmodel_needs_release_fence): Sort code.
5980         (loongarch_print_operand): Sort code.
5981         * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
5982         Rename to LARCH_12BIT_OFFSET_P.
5983         (LARCH_12BIT_OFFSET_P): New macro.
5984         * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
5985         support for cmodel other than normal.
5986         * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
5987         (is_const_call_plt_symbol): Delete this predicate.
5988         (is_const_call_global_noplt_symbol): Delete this predicate.
5989         (is_const_call_no_local_symbol): New predicate, determines whether it is a local
5990         symbol or label.
5992 2022-07-26  Kewen Lin  <linkw@linux.ibm.com>
5994         PR target/106091
5995         * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
5996         REG_EH_REGION when replacing one store insn having it.
5997         (replace_swapped_aligned_load): Likewise.
5999 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
6001         * Makefile.in (OBJS): Add range-op-float.o.
6002         * range-op.cc (get_float_handler): New.
6003         (range_op_handler::range_op_handler): Save code and type for
6004         delayed querying.
6005         (range_op_handler::oeprator bool): Move from header file, and
6006         add support for floats.
6007         (range_op_handler::fold_range): Add support for floats.
6008         (range_op_handler::op1_range): Same.
6009         (range_op_handler::op2_range): Same.
6010         (range_op_handler::lhs_op1_relation): Same.
6011         (range_op_handler::lhs_op2_relation): Same.
6012         (range_op_handler::op1_op2_relation): Same.
6013         * range-op.h (class range_operator_float): New.
6014         (class floating_op_table): New.
6015         * value-query.cc (range_query::get_tree_range): Add case for
6016         REAL_CST.
6017         * range-op-float.cc: New file.
6019 2022-07-25  Roger Sayle  <roger@nextmovesoftware.com>
6020             Uroš Bizjak  <ubizjak@gmail.com>
6022         PR target/91681
6023         * config/i386/i386-expand.cc (split_double_concat): A new helper
6024         function for setting a double word value from two word values.
6025         * config/i386/i386-protos.h (split_double_concat): Prototype here.
6026         * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
6027         (*add<dwi>3_doubleword_zext): New define_insn_and_split.
6028         (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
6029         (*concat<mode><dwi>3_1): New define_insn_and_split replacing
6030         previous define_split for implementing DST = (HI<<32)|LO as
6031         pair of move instructions, setting lopart and hipart.
6032         (*concat<mode><dwi>3_2): Likewise.
6033         (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
6034         (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
6036 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
6038         PR middle-end/106432
6039         * gimple-range.cc (gimple_ranger::range_on_edge): Return false
6040         when the result range type is unsupported.
6042 2022-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6044         * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
6046 2022-07-25  Richard Biener  <rguenther@suse.de>
6048         PR middle-end/106414
6049         * match.pd (~(x ^ y) -> x == y): Restrict to single bit
6050         precision types.
6052 2022-07-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6054         * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
6055         (@aarch64_rbit<mode>): ... to this and change it in...
6056         (ffs<mode>2,ctz<mode>2): ... here.
6057         (@aarch64_rev16<mode>): New.
6058         * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
6059         Define the following enum AARCH64_REV16, AARCH64_REV16L,
6060         AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
6061         (aarch64_init_data_intrinsics): New.
6062         (aarch64_general_init_builtins): Add call to
6063         aarch64_init_data_intrinsics.
6064         (aarch64_expand_builtin_data_intrinsic): New.
6065         (aarch64_general_expand_builtin): Add call to
6066         aarch64_expand_builtin_data_intrinsic.
6067         * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
6068         __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
6069         __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
6071 2022-07-25  Martin Liska  <mliska@suse.cz>
6073         * doc/extend.texi: Remove trailing whitespaces.
6074         * doc/invoke.texi: Likewise.
6076 2022-07-25  Aldy Hernandez  <aldyh@redhat.com>
6078         * value-range-pretty-print.cc (vrange_printer::visit): New.
6079         (vrange_printer::print_frange_prop): New.
6080         * value-range-pretty-print.h (class vrange_printer): Add visit and
6081         print_frange_prop.
6082         * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
6083         (vrange_allocator::alloc_frange): New.
6084         * value-range.cc (vrange::operator=): Handle frange.
6085         (vrange::operator==): Same.
6086         (frange::accept): New.
6087         (frange::set): New.
6088         (frange::normalize_kind): New.
6089         (frange::union_): New.
6090         (frange::intersect): New.
6091         (frange::operator=): New.
6092         (frange::operator==): New.
6093         (frange::supports_type_p): New.
6094         (frange::verify_range): New.
6095         * value-range.h (enum value_range_discriminator): Handle frange.
6096         (class fp_prop): New.
6097         (FP_PROP_ACCESSOR): New.
6098         (class frange_props): New.
6099         (FRANGE_PROP_ACCESSOR): New.
6100         (class frange): New.
6101         (Value_Range::init): Handle frange.
6102         (Value_Range::operator=): Same.
6103         (Value_Range::supports_type_p): Same.
6104         (frange_props::operator==): New.
6105         (frange_props::union_): New.
6106         (frange_props::intersect): New
6107         (frange::frange): New.
6108         (frange::type): New.
6109         (frange::set_varying): New.
6110         (frange::set_undefined): New.
6112 2022-07-25  Peter Bergner  <bergner@linux.ibm.com>
6113             Kewen Lin  <linkw@linux.ibm.com>
6115         PR testsuite/106345
6116         * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
6117         to filter out all -mtune options.
6119 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
6121         * value-query.cc (range_query::get_value_range): Add assert.
6122         * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
6123         on unsupported types in vr_values.
6124         (simplify_using_ranges::simplify): Same.
6126 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
6128         * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
6129         types.
6130         * value-query.cc (get_ssa_name_range_info): Remove precision check.
6132 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
6134         * value-relation.cc (value_relation::set_relation): Remove assert.
6135         (path_oracle::register_relation): Exit when trying to register
6136         same SSA name relations.
6138 2022-07-24  Aldy Hernandez  <aldyh@redhat.com>
6140         * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
6141         (ranger_cache::range_from_dom): Same.
6142         * tree-ssa-dom.cc
6143         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
6145 2022-07-24  Roger Sayle  <roger@nextmovesoftware.com>
6146             H.J. Lu  <hjl.tools@gmail.com>
6148         PR target/106303
6149         PR target/106347
6150         * config/i386/i386-features.cc (make_vector_copies): Move from
6151         general_scalar_chain to scalar_chain.
6152         (convert_reg): Likewise.
6153         (convert_insn_common): New scalar_chain method split out from
6154         general_scalar_chain convert_insn.
6155         (convert_registers): Move from general_scalar_chain to
6156         scalar_chain.
6157         (scalar_chain::convert): Call convert_insn_common before calling
6158         convert_insn.
6159         (timode_remove_non_convertible_regs): Iterate until there are
6160         no further changes to the candidates.
6161         * config/i386/i386-features.h (scalar_chain::hash_map): Move
6162         from general_scalar_chain.
6163         (scalar_chain::convert_reg): Likewise.
6164         (scalar_chain::convert_insn_common): New shared method.
6165         (scalar_chain::make_vector_copies): Move from general_scalar_chain.
6166         (scalar_chain::convert_registers): Likewise.  No longer virtual.
6167         (general_scalar_chain::hash_map): Delete.  Moved to scalar_chain.
6168         (general_scalar_chain::convert_reg): Likewise.
6169         (general_scalar_chain::make_vector_copies): Likewise.
6170         (general_scalar_chain::convert_registers): Delete virtual method.
6171         (timode_scalar_chain::convert_registers): Likewise.
6173 2022-07-23  Immad Mir  <mirimmad@outlook.com>
6175         * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
6176         "Common Function Attributes" section.
6177         * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
6178         -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
6179         warnings may be emitted through usage of three function attributes used
6180         for static analysis of file descriptors namely fd_arg, fd_arg_read and
6181         fd_arg_write.
6183 2022-07-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6185         * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
6186         Add a new insn_and_split pattern, and a few split patterns for
6187         spacial cases.
6189 2022-07-22  Richard Sandiford  <richard.sandiford@arm.com>
6191         * graphds.cc (graphds_scc): Fix algorithm attribution.
6193 2022-07-22  Richard Biener  <rguenther@suse.de>
6195         PR tree-optimization/106403
6196         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
6197         value valueization after check for IFN_MASKED_STORE or
6198         IFN_LEN_STORE.
6200 2022-07-22  Richard Biener  <rguenther@suse.de>
6202         PR tree-optimization/106397
6203         * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
6204         not update SSA form here.
6205         (mark_nontemporal_stores): Return whether we marked any
6206         non-temporal stores and inserted mfence.
6207         (loop_prefetch_arrays): Note when we need to update SSA.
6208         (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
6209         at the end of the pass.
6211 2022-07-22  Richard Biener  <rguenther@suse.de>
6213         PR tree-optimization/106387
6214         * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
6215         if ptr is not an SSA name.
6217 2022-07-22  liuhongt  <hongtao.liu@intel.com>
6219         PR target/106038
6220         * config/i386/mmx.md (<code><mode>3): New define_expand, it's
6221         original "<code><mode>3".
6222         (*<code><mode>3): New define_insn, it's original
6223         "<code><mode>3" be extended to handle memory and immediate
6224         operand with ix86_binary_operator_ok. Also adjust define_split
6225         after it.
6226         (mmxinsnmode): New mode attribute.
6227         (*mov<mode>_imm): Refactor with mmxinsnmode.
6228         * config/i386/predicates.md
6229         (register_or_x86_64_const_vector_operand): New predicate.
6231 2022-07-22  Will Schmidt  <will_schmidt@vnet.ibm.com>
6233         * config/rs6000/altivec.md:
6234         (vstrir_code_<mode>): Rename to...
6235         (vstrir_direct_<mode>): ... this.
6236         (vstrir_p_code_<mode>): Rename to...
6237         (vstrir_p_direct_<mode>): ... this.
6238         (vstril_code_<mode>): Rename to...
6239         (vstril_direct_<mode>): ... this.
6240         (vstril_p_code_<mode>): Rename to...
6241         (vstril_p_direct_<mode>): ... this.
6243 2022-07-22  Will Schmidt  <will_schmidt@vnet.ibm.com>
6245         * config/rs6000/rs6000-c.cc: Update comments.
6246         (rs6000_target_modify_macros): Remove bu_mask references.
6247         (rs6000_define_or_undefine_macro): Replace bu_mask reference
6248         with a rs6000_cpu value check.
6249         (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
6250         parameter from call to rs6000_target_modify_macros.
6251         * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
6252         rs6000_target_modify_macros_ptr): Remove parameter from extern
6253         for the prototype.
6254         * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
6255         parameter from prototype, update calls to this function.
6256         (rs6000_print_builtin_options): Remove prototype, call and function.
6257         (rs6000_builtin_mask_calculate): Remove function.
6258         (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
6259         (rs6000_option_override_internal): Remove rs6000_builtin_mask var
6260         and builtin_mask debug output.
6261         (rs6000_builtin_mask_names): Remove.
6262         (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
6263         diff_bumask references; Update calls to rs6000_target_modify_ptr.
6264         * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
6266 2022-07-21  Sam Feifer  <sfeifer@redhat.com>
6268         PR tree-optimization/94920
6269         * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
6270         (x <= 0 ? -x : 0): New simplification.
6272 2022-07-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6274         Revert:
6275         2022-07-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6277         * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
6278         instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
6280 2022-07-21  Richard Biener  <rguenther@suse.de>
6282         PR tree-optimization/106379
6283         * match.pd (~(a ^ b) -> a == b): New pattern.
6285 2022-07-21  Richard Biener  <rguenther@suse.de>
6287         PR tree-optimization/106378
6288         * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
6289         LEN_STORE, add mode to initialize a may-def and handle
6290         MASK_STORE that way.
6291         (dse_optimize_stmt): Query may-defs.  Handle internal
6292         functions LEN_STORE and MASK_STORE similar to how
6293         we handle memory builtins but without byte tracking.
6295 2022-07-21  Richard Biener  <rguenther@suse.de>
6297         PR tree-optimization/106365
6298         * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
6299         the offset to start encoding of RHS from.
6300         (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
6301         (vn_walk_cb_data::push_partial_def): Allow the first partial
6302         definition to be fully providing the def.  Offset RHS
6303         before encoding if requested.
6304         (vn_reference_lookup_3): Initialize def_rhs everywhere.
6305         Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
6307 2022-07-21  Richard Biener  <rguenther@suse.de>
6309         * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
6310         store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
6311         and IFN_MASK_LOAD_LANES.
6312         (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
6313         IFN_LEN_STORE and IFN_MASK_STORE_LANES.
6315 2022-07-20  Alexander Monakov  <amonakov@ispras.ru>
6317         PR rtl-optimization/101347
6318         * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
6319         population of nonlocal_goto_handler_labels from here ...
6320         (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
6321         * rtlanal.cc (remove_node_from_insn_list): Verify that a
6322         duplicate is not present in the remainder of the list.
6324 2022-07-20  Alexander Monakov  <amonakov@ispras.ru>
6326         * rtl.h (remove_node_from_expr_list): Remove declaration.
6327         * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
6329 2022-07-20  Richard Biener  <rguenther@suse.de>
6331         * tree-vect-data-refs.cc (bump_vector_ptr): Return an
6332         invariant updated address when the input was invariant.
6334 2022-07-20  liuhongt  <hongtao.liu@intel.com>
6336         * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
6337         and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
6338         * timevar.def (TV_TREE_POWCABS): New timevar.
6339         * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
6340         * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
6341         (class pass_expand_powcabs): Ditto.
6342         (pass_expand_powcabs::execute): Ditto.
6343         (make_pass_expand_powcabs): Ditto.
6344         (pass_cse_sincos::execute): Remove pow/cabs expand part.
6345         (make_pass_cse_sincos): Ditto.
6347 2022-07-20  Richard Biener  <richard.guenther@gmail.com>
6348             Hongtao Liu  <hongtao.liu@intel.com>
6350         PR tree-optimization/106010
6351         * tree-complex.cc (init_dont_simulate_again): Lower complex
6352         type move.
6353         (expand_complex_move): Also expand COMPLEX_CST for rhs.
6355 2022-07-19  Andrew MacLeod  <amacleod@redhat.com>
6357         * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
6358           for incoming ranges on join nodes and add to worklist.
6360 2022-07-19  Andrew MacLeod  <amacleod@redhat.com>
6362         * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
6363         (ranger_cache::range_from_dom): Put all nodes to be calculated
6364         in the worklist and resolve after the dom walk.
6365         * gimple-range-cache.h (resolve_dom): New prototype.
6367 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
6369         * tree-cfg.cc (gimple_verify_flow_info): Check placement of
6370         returns_twice calls.
6372 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
6374         * cfghooks.cc (duplicate_block): Expand comment.
6375         * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
6376         calls that may return twice.
6378 2022-07-19  Alexander Monakov  <amonakov@ispras.ru>
6380         * tree-ssa-sink.cc (select_best_block): Punt if selected block
6381         has incoming abnormal edges.
6383 2022-07-19  Martin Liska  <mliska@suse.cz>
6385         * doc/extend.texi: Remove trailing :.
6387 2022-07-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6389         * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
6390         instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
6392 2022-07-19  Richard Biener  <rguenther@suse.de>
6394         PR middle-end/106331
6395         * builtins.cc (get_memory_rtx): Compute alignment from
6396         the original address and set MEM_OFFSET to unknown when
6397         we create a MEM_EXPR from the base object of the address.
6399 2022-07-19  Richard Biener  <rguenther@suse.de>
6401         PR lto/106334
6402         * dwarf2out.cc (dwarf2out_register_external_die): Allow
6403         map entry re-use during WPA.
6405 2022-07-19  Roger Sayle  <roger@nextmovesoftware.com>
6406             Richard Biener  <rguenther@suse.de>
6408         PR c/106264
6409         * builtins.cc (fold_builtin_frexp): Call suppress_warning on
6410         COMPOUND_EXPR to silence spurious warning if result isn't used.
6411         (fold_builtin_modf): Likewise.
6412         (do_mpfr_remquo): Likewise.
6414 2022-07-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6416         * config/xtensa/xtensa.cc (xtensa_rtx_costs):
6417         Change the relative cost of '(set (reg) (const_int N))' where
6418         N fits into signed 12-bit from 4 to 0 if optimizing for size.
6419         And use the appropriate macro instead of the bare number 4.
6421 2022-07-18  Andrew MacLeod  <amacleod@redhat.com>
6423         PR tree-optimization/106280
6424         * value-relation.cc (dom_oracle::register_relation): Register
6425         transitives only when it is possible for there to be one.
6426         (dom_oracle::set_one_relation): Return NULL if this is an
6427         existing relation.
6429 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
6431         * doc/invoke.texi (RISC-V Options): Add index references for
6432         `mrelax' and `mriscv-attribute'.
6434 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
6436         * doc/invoke.texi (Option Summary): Add missing second space
6437         around `-mstack-protector-guard-reg='.
6439 2022-07-18  Maciej W. Rozycki  <macro@embecosm.com>
6441         * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
6442         (RISC-V Options): Likewise, and `-mriscv-attribute'.
6444 2022-07-18  Claudiu Zissulescu  <claziss@gmail.com>
6446         * config/arc/arc-arch.h (arc_tune_attr): Add
6447         ARC_TUNE_ARCHS4X_REL31A variant.
6448         * config/arc/arc.cc (arc_override_options): Tune options for
6449         release 310a.
6450         (arc_sched_issue_rate): Use correct enum.
6451         (arc600_corereg_hazard): Textual change.
6452         (arc_hazard): Add release 310a tunning.
6453         * config/arc/arc.md (tune): Update and take into consideration new
6454         tune option.
6455         (tune_dspmpy): Likewise.
6456         (tune_store): New attribute.
6457         * config/arc/arc.opt (mtune): New tune option.
6458         * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
6459         (hs4x_brcc_op): New instruction rezervation.
6460         (hs4x_data_store_1_op): Likewise.
6461         * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
6462         * config/arc/arc-tables.opt: Regenerate.
6463         * config/arc/t-multilib: Likewise.
6464         * doc/invoke.texi (ARC): Update mcpu and tune sections.
6466 2022-07-18  Richard Biener  <rguenther@suse.de>
6468         * tree-loop-distribution.cc (loop_distribution::distribute_loop):
6469         When computing cost-based merging do not disregard builtin
6470         classified partitions in some cases.
6472 2022-07-18  Richard Sandiford  <richard.sandiford@arm.com>
6474         PR target/106253
6475         * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
6476         Delete.
6477         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
6478         * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6479         Delete.
6480         * config/arm/arm_neon_builtins.def (copysignf): Delete.
6481         * config/arm/iterators.md (nvrint_pattern): New attribute.
6482         * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
6483         New pattern.
6484         (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
6485         Likewise.
6486         (neon_copysignf<mode>): Rename to...
6487         (copysign<mode>3): ...this.
6489 2022-07-18  Claudiu Zissulescu  <claziss@gmail.com>
6491         * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
6492         pointer first when in interrupts.
6494 2022-07-18  Richard Biener  <rguenther@suse.de>
6496         * tree-loop-distribution.cc (copy_loop_before): Add
6497         the ability to replace the original LC PHI defs.
6498         (generate_loops_for_partition): Pass through a flag
6499         whether to redirect original LC PHI defs.
6500         (generate_code_for_partition): Likewise.
6501         (loop_distribution::distribute_loop): Compute the partition
6502         that should provide the LC PHI defs for common reductions
6503         and pass that down.
6505 2022-07-18  Richard Ball  <richard.ball@arm.com>
6507         * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
6508         (aarch64_evpc_uzp): Likewise.
6509         (aarch64_evpc_zip): Likewise.
6511 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
6513         PR target/106231
6514         * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
6515         to recognize any_extend:DI of ctz:SI which is implicitly extended.
6516         (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
6517         extended ctz:SI that has preceding xor to break false dependency.
6519 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
6521         * config/i386/predicates.md (x86_64_const_vector_operand):
6522         Check the operand's mode matches the specified mode argument.
6524 2022-07-18  Roger Sayle  <roger@nextmovesoftware.com>
6526         * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
6527         (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
6528         (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
6529         (vec_pack_trunc_qi): Update to specify the now required
6530         UNSPEC_MASKOP unspec.
6531         (vec_pack_trunc_<mode>): Likewise.
6533 2022-07-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6535         * config/xtensa/xtensa.md
6536         (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
6537         *masktrue_const_shifted_mask): If the immediate for bitwise AND is
6538         represented as '-(1 << N)', decrease the lower bound of N from 12
6539         to 1.  And the other immediate for conditional branch is now no
6540         longer limited to zero, but also one of some positive integers.
6541         Finally, remove the checks of some conditions, because the comparison
6542         expressions that don't satisfy such checks are determined as
6543         compile-time constants and thus will be optimized away before
6544         RTL expansion.
6546 2022-07-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6548         * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
6549         (xtensa_constantsynth_2insn): Change to try all three synthetic
6550         methods and to use the one that fits the immediate value of
6551         the seed into a Narrow Move Immediate instruction "MOVI.N"
6552         when the Code Density Option is configured.
6554 2022-07-15  H.J. Lu  <hjl.tools@gmail.com>
6556         PR target/85620
6557         * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
6558         false if callee has indirect_return attribute and caller
6559         doesn't.
6561 2022-07-15  Roger Sayle  <roger@nextmovesoftware.com>
6563         PR target/106273
6564         * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
6565         constraints to reflect the output is earlyclobber, unless it is
6566         the same register (pair) as one of the operands.
6568 2022-07-15  David Malcolm  <dmalcolm@redhat.com>
6570         * doc/invoke.texi (Static Analyzer Options): Add the new fd
6571         warnings to the initial gccoptlist, and to the list of those
6572         disabled by -fanalyzer-checker=taint.
6574 2022-07-15  Andrew Carlotti  <andrew.carlotti@arm.com>
6576         * config/aarch64/aarch64-builtins.cc
6577         (enum aarch64_type_qualifiers): Remove qualifier_internal.
6578         (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
6580 2022-07-15  Andrew Carlotti  <andrew.carlotti@arm.com>
6582         * config/aarch64/aarch64-builtins.cc
6583         (v1di_UP): Add V1DI mode to _UP macros.
6584         * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
6585         * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
6586         * config/aarch64/aarch64-simd.md
6587         (vec_extractv2dfv1df): Replace with...
6588         (vec_extract<mode><V1half>): ...this.
6589         * config/aarch64/aarch64.cc
6590         (aarch64_classify_vector_mode): Add V1DI mode.
6591         * config/aarch64/iterators.md
6592         (VQ_2E, V1HALF, V1half): New.
6593         (nunits): Add V1DI mode.
6595 2022-07-15  Roger Sayle  <roger@nextmovesoftware.com>
6597         PR target/106278
6598         * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
6599         Fix indentation whitespace.
6600         (timode_scalar_chain::fix_debug_reg_uses): Likewise.
6601         (timode_scalar_chain::convert_insn): Delete dead code.
6602         Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
6603         Fix indentation whitespace.
6604         (convertible_comparison_p): Likewise.
6605         (timode_scalar_to_vector_candidate_p): Likewise.
6607 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
6609         * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
6611 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
6613         * Makefile.in (OBJS): Add value-range-pretty-print.o.
6614         * pretty-print.h (pp_vrange): New.
6615         * value-range.cc (vrange::dump): Call pp version.
6616         (unsupported_range::dump): Move to its own file.
6617         (dump_bound_with_infinite_markers): Same.
6618         (irange::dump): Same.
6619         (irange::dump_bitmasks): Same.
6620         (vrange::debug): Remove.
6621         * value-range.h: Remove virtual designation for dump methods.
6622         Remove dump_bitmasks method.
6623         * value-range-pretty-print.cc: New file.
6624         * value-range-pretty-print.h: New file.
6626 2022-07-15  Aldy Hernandez  <aldyh@redhat.com>
6628         * value-range.cc (irange::accept): New.
6629         (unsupported_range::accept): New.
6630         * value-range.h (class vrange_visitor): New.
6631         (class vrange): Add accept method.
6632         (class unsupported_range): Same.
6633         (class Value_Range): Same.
6635 2022-07-15  Jonathan Wakely  <jwakely@redhat.com>
6637         * diagnostic-format-json.cc (json_from_location_range): Adjust
6638         to new label_text API.
6639         * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
6640         Likewise.
6641         * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
6642         (layout::print_any_labels): Likewise.
6643         * tree-diagnostic-path.cc (class path_label): Likewise.
6644         (struct event_range): Likewise.
6645         (default_tree_diagnostic_path_printer): Likewise.
6646         (default_tree_make_json_for_path): Likewise.
6648 2022-07-15  konglin1  <lingling.kong@intel.com>
6650         PR target/106113
6651         * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
6652         comparison due to intrinsics changed over time.
6653         * config/i386/i386-expand.cc (ix86_ssecom_setcc):
6654         Add unordered check and mode for sse comi codegen.
6655         (ix86_expand_sse_comi): Add unordered check and check a different
6656         CCmode.
6657         (ix86_expand_sse_comi_round):Extract unordered check and mode part
6658         in ix86_ssecom_setcc.
6660 2022-07-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6662         * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
6663         op_mode instead of vmode in calls to force_reg for op0 and op1.
6665 2022-07-14  H.J. Lu  <hjl.tools@gmail.com>
6667         PR tree-optimization/103798
6668         * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
6669         (simplify_builtin_call): Inline memchr with constant strings of
6670         no more than the bytes of a word.
6671         * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
6672         * tree-ssa-strlen.h (use_in_zero_equality): New.
6674 2022-07-14  Eric Botcazou  <ebotcazou@adacore.com>
6676         * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
6677         and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
6678         (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
6679         pass it in the call to lookup_tmp_var.
6680         (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
6681         (get_initialized_tmp_var): Likewise.
6682         (prepare_gimple_addressable): Call internal_get_tmp_var instead of
6683         get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
6685 2022-07-14  Martin Liska  <mliska@suse.cz>
6687         * doc/gimple.texi: Close properly a deftypefn.
6689 2022-07-14  Martin Liska  <mliska@suse.cz>
6691         * doc/gimple.texi: Close properly a deftypefn.
6693 2022-07-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
6695         * config/xtensa/xtensa.md:
6696         In FP constant synthesis split pattern, subcontract to
6697         avoid_constant_pool_reference() as in the case of integer,
6698         because it can handle well too.  And cast to int32_t before
6699         calling xtensa_constantsynth() in order to ignore upper 32-bit.
6701 2022-07-13  Aldy Hernandez  <aldyh@redhat.com>
6703         * range-op.cc (operator_lt::fold_range): Use nonzero bits.
6705 2022-07-13  Aldy Hernandez  <aldyh@redhat.com>
6707         * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
6708         (irange::legacy_intersect): Clear nonzero mask.
6709         (irange::legacy_union): Same.
6710         (irange::invert): Same.
6712 2022-07-13  Richard Biener  <rguenther@suse.de>
6714         * tree-ssa-dom.h (record_temporary_equivalences): Remove.
6715         * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
6716         (dom_jt_state::get_blocks_on_stack): Likewise.
6717         (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
6718         (back_propagate_equivalences): Remove dominator bitmap
6719         compute and instead use passed in m_blocks_on_stack.
6720         (record_temporary_equivalences): Likewise.
6721         (record_equivalences_from_incoming_edge): Likewise.
6722         (dom_opt_dom_walker::before_dom_children): Maintain and
6723         pass down blocks on stack.
6724         (dom_opt_dom_walker::after_dom_children): Likewise.
6726 2022-07-13  Andrew Carlotti  <andrew.carlotti@arm.com>
6728         * config/aarch64/aarch64-builtins.cc
6729         (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
6731 2022-07-13  Richard Biener  <rguenther@suse.de>
6733         PR tree-optimization/106249
6734         * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
6735         Only verify LC SSA of the new_loop if we created it.
6736         Use TODO_update_ssa_nophi for the SSA update after versioning
6737         the loop.
6739 2022-07-12  Aldy Hernandez  <aldyh@redhat.com>
6741         * range-op.cc (unsigned_singleton_p): Remove.
6742         (operator_bitwise_and::remove_impossible_ranges): Remove.
6743         (operator_bitwise_and::fold_range): Set nonzero bits.  *
6744         * value-range.cc (irange::get_nonzero_bits): Remove
6745         legacy_mode_p assert.
6746         (irange::dump_bitmasks): Remove legacy_mode_p check.
6748 2022-07-12  Richard Sandiford  <richard.sandiford@arm.com>
6750         PR target/106253
6751         * predict.h (insn_optimization_type): Declare.
6752         * predict.cc (insn_optimization_type): New function.
6753         * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
6754         (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
6755         (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
6756         * internal-fn.cc (unary_convert_direct): New macro.
6757         (expand_convert_optab_fn): New function.
6758         (expand_unary_convert_optab_fn): New macro.
6759         (direct_unary_convert_optab_supported_p): Likewise.
6760         * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
6761         convert_optab_handler.
6762         * config/aarch64/aarch64-protos.h
6763         (aarch64_builtin_vectorized_function): Delete.
6764         * config/aarch64/aarch64-builtins.cc
6765         (aarch64_builtin_vectorized_function): Delete.
6766         * config/aarch64/aarch64.cc
6767         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
6768         * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
6769         * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
6770         optimize_insn_for_size_p test.
6772 2022-07-12  Richard Biener  <rguenther@suse.de>
6774         * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
6775         Remove.
6776         (vect_do_peeling): Do not call it, adjust comment.
6778 2022-07-12  Richard Sandiford  <richard.sandiford@arm.com>
6780         * config/aarch64/aarch64-builtins.cc
6781         (aarch64_builtin_vectorized_function): Remove handling of
6782         floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
6784 2022-07-11  Andrew MacLeod  <amacleod@redhat.com>
6786         PR tree-optimization/106234
6787         * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
6788         cache value before recursively resolving it.
6790 2022-07-11  Roger Sayle  <roger@nextmovesoftware.com>
6792         * config/i386/i386-features.h (scalar_chain): Add fields
6793         insns_conv, n_sse_to_integer and n_integer_to_sse to this
6794         parent class, moved from general_scalar_chain.
6795         (scalar_chain::convert_compare): Protected method moved
6796         from general_scalar_chain.
6797         (mark_dual_mode_def): Make protected, not private virtual.
6798         (scalar_chain:convert_op): New private virtual method.
6799         (general_scalar_chain::general_scalar_chain): Simplify constructor.
6800         (general_scalar_chain::~general_scalar_chain): Delete destructor.
6801         (general_scalar_chain): Move insns_conv, n_sse_to_integer and
6802         n_integer_to_sse fields to parent class, scalar_chain.
6803         (general_scalar_chain::mark_dual_mode_def): Delete prototype.
6804         (general_scalar_chain::convert_compare): Delete prototype.
6805         (timode_scalar_chain::compute_convert_gain): Remove simplistic
6806         implementation, convert to a method prototype.
6807         (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
6808         (timode_scalar_chain::convert_op): Prototype new virtual method.
6809         * config/i386/i386-features.cc (scalar_chain::scalar_chain):
6810         Allocate insns_conv and initialize n_sse_to_integer and
6811         n_integer_to_sse fields in constructor.
6812         (scalar_chain::scalar_chain): Free insns_conv in destructor.
6813         (general_scalar_chain::general_scalar_chain): Delete
6814         constructor, now defined in the class declaration.
6815         (general_scalar_chain::~general_scalar_chain): Delete destructor.
6816         (scalar_chain::mark_dual_mode_def): Renamed from
6817         general_scalar_chain::mark_dual_mode_def.
6818         (timode_scalar_chain::mark_dual_mode_def): Delete.
6819         (scalar_chain::convert_compare): Renamed from
6820         general_scalar_chain::convert_compare.
6821         (timode_scalar_chain::compute_convert_gain): New method to
6822         determine the gain from converting a TImode chain to V1TImode.
6823         (timode_scalar_chain::convert_op): New method to convert an
6824         operand from TImode to V1TImode.
6825         (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
6826         on REG_EQUAL notes that were originally TImode (not CONST_INT).
6827         Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
6828         (timode_mem_p): Helper predicate to check where operand is
6829         memory reference with sufficient alignment for TImode STV.
6830         (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
6831         to check whether COMPARE is convertible.  Handle SET_DESTs that
6832         that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
6833         CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
6835 2022-07-11  Richard Sandiford  <richard.sandiford@arm.com>
6837         PR tree-optimization/106250
6838         * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
6839         argument to directly_supported_p.
6841 2022-07-11  Richard Biener  <rguenther@suse.de>
6843         * tree-into-ssa.cc (update_ssa): Do not forcefully
6844         re-compute dominance fast queries for TODO_update_ssa_no_phi.
6846 2022-07-11  Richard Biener  <rguenther@suse.de>
6848         PR tree-optimization/106228
6849         * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
6850         VUSE compute for the non-loop case.
6852 2022-07-11  Richard Biener  <rguenther@suse.de>
6854         * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
6855         (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
6856         (rewrite_update_dom_walker::m_in_region_flag): New.
6857         (rewrite_update_dom_walker::before_dom_children): If the region
6858         to update is marked, STOP at exits.
6859         (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
6860         to be updated.
6861         (dump_update_ssa): Use bitmap_empty_p.
6862         (update_ssa): Likewise.  Use REWRITE_UPDATE_REGION when
6863         TODO_update_ssa_no_phi.
6864         * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
6865         pending update_ssa to the caller.
6867 2022-07-11  Richard Biener  <rguenthert@suse.de>
6869         PR target/105459
6870         * config/i386/i386-options.cc (ix86_set_current_function):
6871         Rebuild the target optimization node whenever necessary,
6872         not only when the optimization node didn't change.
6874 2022-07-11  Richard Biener  <rguenther@suse.de>
6876         PR tree-optimization/106228
6877         * tree-vect-data-refs.cc (vect_setup_realignment): Properly
6878         set a VUSE operand on the emitted load.
6880 2022-07-11  Aldy Hernandez  <aldyh@redhat.com>
6882         * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
6883         verification against legacy value_range.
6884         (gimple_ranger::register_inferred_ranges): Same.
6885         (gimple_ranger::export_global_ranges): Rename update_global_range
6886         to set_range_info.
6887         * tree-core.h (struct range_info_def): Remove.
6888         (struct irange_storage_slot): New.
6889         (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
6890         (struct tree_ssa_name): Add vrange_storage support.
6891         * tree-ssanames.cc (range_info_p): New.
6892         (range_info_fits_p): New.
6893         (range_info_alloc): New.
6894         (range_info_free): New.
6895         (range_info_get_range): New.
6896         (range_info_set_range): New.
6897         (set_range_info_raw): Remove.
6898         (set_range_info): Adjust to use vrange_storage.
6899         (set_nonzero_bits): Same.
6900         (get_nonzero_bits): Same.
6901         (duplicate_ssa_name_range_info): Remove overload taking
6902         value_range_kind.
6903         Rewrite tree overload to use vrange_storage.
6904         (duplicate_ssa_name_fn): Adjust to use vrange_storage.
6905         * tree-ssanames.h (struct range_info_def): Remove.
6906         (set_range_info): Adjust prototype to take vrange.
6907         * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
6908         duplicate_ssa_name_range_info.
6909         * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
6910         (SSA_NAME_RANGE_TYPE): Remove.
6911         * value-query.cc (get_ssa_name_range_info): Adjust to use
6912         vrange_storage.
6913         (update_global_range): Remove.
6914         (get_range_global): Remove as_a<irange>.
6915         * value-query.h (update_global_range): Remove.
6916         * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
6917         Rename update_global_range to set_range_info.
6918         * value-range-storage.cc (vrange_storage::alloc_slot): Remove
6919         gcc_unreachable.
6921 2022-07-10  Aldy Hernandez  <aldyh@redhat.com>
6923         * value-range.cc (irange::operator=): Call verify_range.
6924         (irange::irange_set): Normalize kind after everything else has
6925         been set.
6926         (irange::irange_set_anti_range): Same.
6927         (irange::set): Same.
6928         (irange::verify_range): Disallow nonzero masks for VARYING.
6929         (irange::irange_union): Call verify_range.
6930         Handle nonzero masks better.
6931         (irange::irange_intersect): Same.
6932         (irange::set_nonzero_bits): Calculate mask if either range has an
6933         explicit mask.
6934         (irange::intersect_nonzero_bits): Same.
6935         (irange::union_nonzero_bits): Same.
6936         (range_tests_nonzero_bits): New.
6937         (range_tests): Call range_tests_nonzero_bits.
6938         * value-range.h (class irange): Remove set_nonzero_bits method
6939         with trees.
6940         (irange::varying_compatible_p): Set nonzero mask.
6942 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
6944         * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
6945         the sign-extend of result in the RTL template.
6946         (<any_div><mode>3): Adjust for <any_div>di3_fake change.
6948 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
6950         * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
6951         Remove static, for use in the machine description file.
6952         * config/loongarch/loongarch-protos.h:
6953         (loongarch_check_zero_div_p): Add prototype.
6954         * config/loongarch/loongarch.md (enabled): New attr.
6955         (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
6956         idiv.  Conditionally enable the alternatives using
6957         loongarch_check_zero_div_p.
6958         (<optab>di3_fake): Likewise.
6960 2022-07-10  Xi Ruoyao  <xry111@xry111.site>
6962         * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
6963         instead of mul.d.
6965 2022-07-09  Aldy Hernandez  <aldyh@redhat.com>
6967         * value-range.cc (irange::irange_single_pair_union): Set
6968         VR_VARYING when appropriate.
6970 2022-07-09  Vit Kabele  <vit.kabele@sysgo.com>
6972         * stor-layout.cc (finalize_record_size): Extend warning message.
6974 2022-07-09  Sam Feifer  <sfeifer@redhat.com>
6976         PR tree-optimization/98304
6977         * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
6979 2022-07-09  Jeff Law  <jeffreyalaw@gmail.com>
6981         * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
6982         initializer and use clear_storage rather than copying the
6983         NULs to the destination array.
6985 2022-07-09  Roger Sayle  <roger@nextmovesoftware.com>
6987         * config/i386/i386.md (define_peephole2): Use match_operand of
6988         flags_reg_operand to capture and preserve the mode of FLAGS_REG.
6989         (define_peephole2): Likewise.
6990         (define_peephole2): Likewise...
6992 2022-07-09  Roger Sayle  <roger@nextmovesoftware.com>
6994         * config/i386/i386-features.cc (convert_compare): Add support
6995         for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
6996         by generating a pandn followed by ptest.
6997         (convertible_comparison_p): Recognize both *cmpdi_doubleword and
6998         recent *testdi_not_doubleword comparison patterns.
7000 2022-07-09  Tamar Christina  <tamar.christina@arm.com>
7002         * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
7003         indicate that the value is not undefined.
7005 2022-07-09  Andrew Pinski  <apinski@marvell.com>
7007         PR tree-optimization/106087
7008         * tree-ssa-dce.cc (simple_dce_from_worklist): Check
7009         to make sure the statement is only defining one operand.
7011 2022-07-08  Lewis Hyatt  <lhyatt@gmail.com>
7013         PR preprocessor/91733
7014         * input.cc (find_end_of_line): New helper function.
7015         (file_cache_slot::get_next_line): Recognize \r as a line ending.
7016         * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
7017         since \r will now be interpreted as a line-ending.
7019 2022-07-08  Martin Liska  <mliska@suse.cz>
7021         PR sanitizer/106132
7022         * opts.cc (finish_options): Use 2 calls to
7023         report_conflicting_sanitizer_options.
7025 2022-07-08  Richard Biener  <rguenther@suse.de>
7027         PR tree-optimization/106226
7028         * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
7029         no SSA update is needed.  Move virtual SSA update ...
7030         * tree-vectorizer.cc (pass_vectorize::execute): ... here,
7031         via forced virtual renaming when TODO_update_ssa_only_virtuals
7032         is queued.
7033         (vect_transform_loops): Return TODO_update_ssa_only_virtuals
7034         when virtual SSA update is required.
7035         (try_vectorize_loop_1): Adjust.
7036         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
7037         virtual renaming if the ABI forces an aggregate return
7038         but the original call did not have a virtual definition.
7040 2022-07-08  Martin Liska  <mliska@suse.cz>
7042         * toplev.cc (init_asm_output): Do not init asm_out_file.
7044 2022-07-08  Tamar Christina  <tamar.christina@arm.com>
7046         PR tree-optimization/106063
7047         * match.pd: Do not apply pattern after veclower is not supported.
7049 2022-07-08  Thomas Schwinge  <thomas@codesourcery.com>
7051         * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
7052         'fn2' computation.
7054 2022-07-08  Tamar Christina  <tamar.christina@arm.com>
7056         * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
7057         still undefined and if so emit a subreg move instead.
7058         (store_integral_bit_field): Likewise.
7059         (store_bit_field): Likewise.
7060         * expr.h (write_complex_part): Likewise.
7061         * expmed.h (store_bit_field): Add new parameter.
7062         * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
7063         parameter.
7064         (expand_ifn_atomic_compare_exchange): Likewise.
7065         * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
7066         * emit-rtl.cc (validate_subreg): Likewise.
7067         * expr.cc (emit_group_store): Likewise.
7068         (copy_blkmode_from_reg): Likewise.
7069         (copy_blkmode_to_reg): Likewise.
7070         (clear_storage_hints): Likewise.
7071         (write_complex_part):  Likewise.
7072         (emit_move_complex_parts): Likewise.
7073         (expand_assignment): Likewise.
7074         (store_expr): Likewise.
7075         (store_field): Likewise.
7076         (expand_expr_real_2): Likewise.
7077         * ifcvt.cc (noce_emit_move_insn): Likewise.
7078         * internal-fn.cc (expand_arith_set_overflow): Likewise.
7079         (expand_arith_overflow_result_store): Likewise.
7080         (expand_addsub_overflow): Likewise.
7081         (expand_neg_overflow): Likewise.
7082         (expand_mul_overflow): Likewise.
7083         (expand_arith_overflow): Likewise.
7085 2022-07-08  Haochen Jiang  <haochen.jiang@intel.com>
7087         PR target/106180
7088         * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
7089         Rename from *sse2_cvtps2pd<mask_name>_1.
7090         (vec_unpacks_lo_v4sf): Add handler for memory operand.
7092 2022-07-08  Lulu Cheng  <chenglulu@loongson.cn>
7094         * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
7095         Modify fp_sp_offset and gp_sp_offset's calculation method,
7096         when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
7097         or UNITS_PER_FP_REG.
7099 2022-07-07  David Malcolm  <dmalcolm@redhat.com>
7101         * diagnostic-format-json.cc (json_from_location_range): Update for
7102         removal of label_text::maybe_free in favor of automatic memory
7103         management.
7104         * diagnostic-format-sarif.cc
7105         (sarif_builder::make_location_object): Likewise.
7106         * diagnostic-show-locus.cc (struct pod_label_text): New.
7107         (class line_label): Convert m_text from label_text to pod_label_text.
7108         (layout::print_any_labels): Move "text" to the line_label.
7109         * tree-diagnostic-path.cc (path_label::get_text): Update for
7110         removal of label_text::maybe_free in favor of automatic memory
7111         management.
7112         (event_range::print): Likewise.
7113         (default_tree_diagnostic_path_printer): Likewise.
7114         (default_tree_make_json_for_path): Likewise.
7116 2022-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7118         * statistics.cc (get_function_name): Add check to see if fn is not NULL.
7120 2022-07-07  Richard Biener  <rguenther@suse.de>
7122         * tree-into-ssa.cc (iterating_old_ssa_names): New.
7123         (add_new_name_mapping): Grow {new,old}_ssa_names separately
7124         and only when actually needed.  Assert we are not growing
7125         the old_ssa_names set when iterating over it.
7126         (update_ssa): Remove old_ssa_names copying and empty_p
7127         query, note we are iterating over it and expect no set changes.
7129 2022-07-07  Thomas Schwinge  <thomas@codesourcery.com>
7131         * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
7132         (prepare_target_image, main): Handle OpenMP 'requires'.
7133         (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
7134         'GOMP_offload_unregister_ver'.
7136 2022-07-07  Richard Biener  <rguenther@suse.de>
7138         PR target/106219
7139         * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
7140         set DECL_PURE_P.
7142 2022-07-07  Richard Biener  <rguenther@suse.de>
7144         * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
7145         number of LC PHIs inserted.
7146         (add_exit_phis): Return whether any variable required
7147         multiple LC PHI nodes.
7148         (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
7149         when possible.
7151 2022-07-07  Richard Biener  <rguenther@suse.de>
7153         * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
7154         the def loop exit block bitmap as argument instead of
7155         re-computing it here.
7156         (add_exit_phis_var): Adjust.
7157         (loop_name_cmp): New function.
7158         (add_exit_phis): Sort variables to insert LC PHI nodes
7159         after definition loop, for each definition loop compute
7160         the exit block bitmap once.
7161         (get_loops_exit): Remove.
7162         (rewrite_into_loop_closed_ssa_1): Do not pre-record
7163         all loop exit blocks into bitmaps.  Record loop exits
7164         if required.
7166 2022-07-07  Dimitrije Milosevic  <Dimitrije.Milosevic@Syrmia.com>
7168         * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
7169         to handle the N32 ABI.
7170         * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
7171         the macro, as it is not needed anymore.
7173 2022-07-06  Thomas Schwinge  <thomas@codesourcery.com>
7175         * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
7176         '[...]_data'.
7177         * config/nvptx/mkoffload.cc (process): Likewise.
7179 2022-07-06  Thomas Schwinge  <thomas@codesourcery.com>
7181         * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
7183 2022-07-05  Andrew MacLeod  <amacleod@redhat.com>
7185         * value-relation.cc (relation_to_code): New vector.
7186         (relation_oracle::validate_relation): New.
7187         (set_relation): Allow ssa1 == ssa2 to be registered.
7188         * value-relation.h (validate_relation): New prototype.
7189         (query_relation): Make internal variant protected.
7191 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
7193         * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
7194         for double word comparisons and tests (comparisons against zero).
7195         * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
7196         and;cmp into andn;cmp $0 as a pre-reload splitter.
7197         (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
7198         (*<any_or><dwi>3_doubleword): Likewise.
7200 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
7201             Hongtao Liu  <hongtao.liu@intel.com>
7203         * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
7204         CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
7205         * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
7206         and gen_ssse3_palignv1ti instead of TImode.
7207         * config/i386/sse.md (SSESCALARMODE): Delete.
7208         (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
7209         (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
7210         iterator instead of SSESCALARMODE.
7211         (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
7212         using a single move instruction (if required).
7214 2022-07-05  Roger Sayle  <roger@nextmovesoftware.com>
7215             Uroš Bizjak  <ubizjak@gmail.com>
7217         PR rtl-optimization/96692
7218         * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
7219         as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
7221 2022-07-05  Richard Biener  <rguenther@suse.de>
7223         PR tree-optimization/106198
7224         * tree-cfgcleanup.cc (repair_loop_structures): Always do a
7225         full LC SSA rewrite but only if any blocks changed loop
7226         depth.
7228 2022-07-05  Richard Biener  <rguenther@suse.de>
7230         * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
7231         (find_uses_to_rename_in_loop): Likewise.
7232         (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
7233         uses.
7234         (rewrite_into_loop_closed_ssa): Adjust.
7236 2022-07-05  Richard Biener  <rguenther@suse.de>
7238         PR tree-optimization/106186
7239         * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
7240         Properly handle virtual PHI nodes.
7242 2022-07-05  Richard Biener  <rguenther@suse.de>
7244         PR tree-optimization/106196
7245         * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
7246         handle aggregate returns of calls for VDEF updates.
7248 2022-07-05  Richard Biener  <rguenther@suse.de>
7250         * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
7251         Maintain LC SSA.
7253 2022-07-05  Richard Sandiford  <richard.sandiford@arm.com>
7255         * tree-vect-patterns.cc (vect_convert_input): Expect the input
7256         type to be signed for optab_vector_mixed_sign.  Update the vectype
7257         at the same time as type.
7258         (vect_recog_dot_prod_pattern): Update accordingly.  If usdot isn't
7259         available, try sdot instead.
7260         * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
7261         (vect_model_reduction_cost): Model the cost of implementing usdot
7262         using sdot.
7263         (vectorizable_reduction): Likewise.  Skip target support test
7264         for lane reductions.
7265         (vect_emulate_mixed_dot_prod): New function.
7266         (vect_transform_reduction): Use it to emulate usdot via sdot.
7268 2022-07-05  Richard Biener  <rguenther@suse.de>
7270         PR tree-optimization/106182
7271         * loop-init.cc (fix_loop_structure): Return the number
7272         of newly discovered plus the number of deleted loops.
7273         * tree-cfgcleanup.cc (repair_loop_structures): Adjust
7274         variable name.
7276 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
7278         * gimple-range-fold.cc
7279         (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
7280         call to SCEV for irange supported types.
7281         (fold_using_range::range_of_builtin_int_call): Convert to vrange.
7282         * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
7283         * tree-ssa-dom.cc (cprop_operand): Same.
7285 2022-07-04  Roger Sayle  <roger@nextmovesoftware.com>
7287         PR target/104489
7288         * calls.cc (precompute_register_parameters): Allow promotion
7289         of floating point values to be passed in wider integer modes
7290         by calling new convert_float_to_wider_int.
7291         (expand_call): Allow floating point results to be returned in
7292         wider integer modes by calling new convert wider_int_to_float.
7293         * cfgexpand.cc (expand_value_return): Allow backends to promote
7294         a scalar floating point return value to a wider integer mode
7295         by calling new convert_float_to_wider_int.
7296         * expr.cc (convert_float_to_wider_int): New function.
7297         (convert_wider_int_to_float): Likewise.
7298         (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
7299         scalar FP PARM_DECLs to wider integer modes, by calling new
7300         convert_wider_int_to_float.
7301         * expr.h (convert_modes): Name arguments for improved documentation.
7302         (convert_float_to_wider_int): Prototype new function here.
7303         (convert_wider_int_to_float): Likewise.
7304         * function.cc (assign_parm_setup_stack): Allow floating point
7305         values to be passed on the stack as wider integer modes by
7306         calling new convert_wider_int_to_float.
7308 2022-07-04  Martin Jambor  <mjambor@suse.cz>
7310         PR tree-optimization/105860
7311         * tree-sra.cc (build_reconstructed_reference): Start expr
7312         traversal only just below the outermost union.
7314 2022-07-04  Richard Biener  <rguenther@suse.de>
7316         * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
7317         and update virtual SSA form again.  Assert we do so for
7318         a known set of transforms only.
7319         * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
7320         * tree-vect-stmts.cc (vectorizable_load): When vectorizing
7321         using load-lanes allow virtual SSA update.
7323 2022-07-04  Tobias Burnus  <tobias@codesourcery.com>
7324             Chung-Lin Tang  <cltang@codesourcery.com>
7325             Thomas Schwinge  <thomas@codesourcery.com>
7327         * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
7328         (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
7329         (main): Ask lto1 to obtain omp_requires_mask and pass it on.
7330         * config/nvptx/mkoffload.cc (process, main): Likewise.
7331         * lto-cgraph.cc (omp_requires_to_name): New.
7332         (input_offload_tables): Save omp_requires_mask.
7333         (output_offload_tables): Read it, check for consistency,
7334         save value for mkoffload.
7335         * omp-low.cc (lower_omp_target): Force output_offloadtables
7336         call for OMP_REQUIRES_TARGET_USED.
7338 2022-07-04  Richard Biener  <rguenther@suse.de>
7340         * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
7341         no SSA update is needed instead of updating virtual SSA
7342         form.
7343         * tree-vect-stmts.cc (vectorizable_load): For hoisted
7344         invariant load use the loop entry virtual use.
7345         For emulated gather loads use the virtual use of the
7346         original stmt like vect_finish_stmt_generation would do.
7348 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
7350         * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
7351         for direct circularity.
7353 2022-07-04  Eric Botcazou  <ebotcazou@adacore.com>
7355         * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
7356         the language for vector types.
7358 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
7360         * value-range-storage.cc (irange_storage_slot::set_irange): Set
7361         nonzero bits in irange.
7362         (irange_storage_slot::get_irange): Get nonzero bits from irange.
7363         * value-range.cc (irange::operator=): Set nonzero bits.
7364         (irange::irange_set): Same.
7365         (irange::irange_set_anti_range): Same.
7366         (irange::set): Same.
7367         (irange::verify_range): Same.
7368         (irange::legacy_equal_p): Check nonzero bits.
7369         (irange::equal_p): Same.
7370         (irange::contains_p): Handle nonzero bits.
7371         (irange::irange_union): Same.
7372         (irange::irange_intersect): Same.
7373         (irange::dump): Same.
7374         (irange::set_nonzero_bits): New.
7375         (irange::get_nonzero_bits): New.
7376         (irange::intersect_nonzero_bits): New.
7377         (irange::union_nonzero_bits): New.
7378         (irange::dump_bitmasks): New.
7379         * value-range.h (class irange): Add m_nonzero_mask.
7380         (gt_ggc_mx): Handle nonzero bits.
7381         (gt_pch_nx): Same.
7382         (irange::set_undefined): Set nonzero bits.
7383         (irange::set_varying): Same.
7384         (irange::normalize_kind): Call set_undefined.
7386 2022-07-04  Richard Biener  <rguenther@suse.de>
7388         * tree-ssa-loop-manip.h
7389         (rewrite_virtuals_into_loop_closed_ssa): Remove.
7390         (rewrite_into_loop_closed_ssa_1): Likewise.
7391         * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
7392         Make static.
7393         (rewrite_into_loop_closed_ssa): Remove loop overload,
7394         always rewrite virtuals into LC SSA.
7395         (check_loop_closed_ssa_bb): Also check virtuals.
7396         * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
7397         LC PHIs when in LC SSA.
7398         * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
7399         loop-closed SSA here, but ...
7400         (tree_loop_unroll_and_jam): ... here once.
7401         * tree-if-conv.cc (version_loop_for_if_conversion): Use
7402         the cheaper TODO_update_ssa_no_phi.
7403         * tree-loop-distribution.cc (version_loop_by_alias_check):
7404         Likewise.
7405         * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
7406         Likewise.
7407         * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
7408         (tree_unswitch_outer_loop): Do not rewrite virtuals into
7409         LC ssa.
7410         * tree-parloops.cc (transform_to_exit_first_loop_alt):
7411         Likewise.
7412         (pass_parallelize_loops::execute): After finishing rewrite
7413         into LC SSA again because we do not maintain it properly.
7415 2022-07-04  Richard Biener  <rguenther@suse.de>
7417         PR tree-optimization/106055
7418         * graphite.cc (canonicalize_loop_closed_ssa): Check whether
7419         we can propagate.
7421 2022-07-04  Haochen Jiang  <haochen.jiang@intel.com>
7423         PR target/43618
7424         * config/i386/sse.md (extendv2sfv2df2): New define_expand.
7425         (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
7426         (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
7428 2022-07-04  Aldy Hernandez  <aldyh@redhat.com>
7430         * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
7431         * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
7432         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
7433         with two arguments.
7434         (find_unswitching_predicates_for_bb): Same.
7435         * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
7436         * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
7437         * value-range.cc (irange::equal_p): Rename to...
7438         (irange::operator==): ...this.
7439         * value-range.h (irange::set): Remove.
7440         (irange::operator==): Remove.
7441         (irange::set_zero): Use set with two arguments.
7442         * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
7443         (vr_values::extract_range_from_unary_expr): Same.
7444         (check_for_binary_op_overflow): Same.
7445         (bounds_of_var_in_loop): Same.
7447 2022-07-03  H.J. Lu  <hjl.tools@gmail.com>
7449         PR target/106022
7450         * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
7451         New.
7452         * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
7453         New.
7454         * config/i386/mmx.md (V_16_32_64): New.
7455         (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
7456         and 64-bit constant vector.
7457         * config/i386/predicates.md (x86_64_const_vector_operand): New.
7459 2022-07-03  Aldy Hernandez  <aldyh@redhat.com>
7461         * gimple-range-cache.cc: Include value-range-storage.h.
7462         * gimple-range-cache.h (class block_range_cache): Add "class" to
7463         m_range_allocator.
7464         * gimple-range-edge.cc
7465         (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
7466         (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
7467         (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
7468         * gimple-range-edge.h: Add "class" to m_range_allocator.
7469         * gimple-range-infer.cc
7470         (infer_range_manager::infer_range_manager): Allocate allocator.
7471         (infer_range_manager::~infer_range_manager): Free allocator.
7472         (infer_range_manager::get_nonzero): Dereference allocator.
7473         (infer_range_manager::add_range): Same.
7474         * gimple-range-infer.h (class vrange_allocator): Add "class" to
7475         m_range_allocator.
7476         * value-range-storage.h (class vrange_allocator): Move from
7477         value-range.h.
7478         (class obstack_vrange_allocator): Same.
7479         (class ggc_vrange_allocator): Same.
7480         (vrange_allocator::alloc_vrange): Same.
7481         (vrange_allocator::alloc_irange): Same.
7482         * value-range.h (class vrange_allocator): Move to value-range-storage.h.
7483         (class obstack_vrange_allocator): Same.
7484         (class ggc_vrange_allocator): Same.
7486 2022-07-03  Aldy Hernandez  <aldyh@redhat.com>
7488         * Makefile.in (OBJS): Add value-range-storage.o.
7489         (GTFILES): Add value-range-storage.h.
7490         * gengtype.cc (open_base_files): Add value-range-storage.h.
7491         * value-range-storage.cc: New file.
7492         * value-range-storage.h: New file.
7494 2022-07-03  Xi Ruoyao  <xry111@xry111.site>
7495             Lulu Cheng  <chenglulu@loongson.cn>
7497         * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
7498         New static function.
7499         (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
7500         of TARGET_CHECK_ZERO_DIV.
7501         (loongarch_output_division): Likewise.
7502         * common/config/loongarch/loongarch-common.cc
7503         (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
7504         * doc/invoke.texi: Update to match the new behavior.
7506 2022-07-03  Ian Lance Taylor  <iant@golang.org>
7508         * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
7509         statement if -fdelete-dead-exceptions.
7511 2022-07-02  Tim Lange  <mail@tim-lange.me>
7513         PR analyzer/105900
7514         * doc/invoke.texi: Added Wanalyzer-allocation-size.
7516 2022-07-02  Immad Mir  <mirimmad17@gmail.com>
7518         PR analyzer/106003
7519         * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
7520         * doc/invoke.texi:  Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
7521         -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
7522         -Wanalyzer-fd-use-after-close.
7524 2022-07-01  Aldy Hernandez  <aldyh@redhat.com>
7526         * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
7527         (trailing_wide_ints::set_precision): Add num_elements argument.
7528         (trailing_wide_ints::extra_size): Same.
7530 2022-07-01  Uroš Bizjak  <ubizjak@gmail.com>
7532         * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
7533         Use "r" constraint for operand 1.
7535 2022-07-01  Richard Biener  <rguenther@suse.de>
7537         * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
7538         Do not look at interesting_blocks which is a copy of
7539         blocks_to_update.
7540         (update_ssa): Do not initialize it.
7541         (pass_build_ssa::execute): Set interesting_blocks to NULL
7542         after releasing it.
7544 2022-07-01  Richard Biener  <rguenther@suse.de>
7546         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
7547         back to using maybe_ne (off, -1).
7549 2022-07-01  Richard Biener  <rguenther@suse.de>
7551         * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
7552         checking dominance check conditional on flag_checking.
7554 2022-07-01  Tobias Burnus  <tobias@codesourcery.com>
7556         * config/gcn/gcn-protos.h (print_operand_address): Remove register
7557         keyword on 'rtx addr' argument.
7559 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
7560             Uroš Bizjak  <ubizjak@gmail.com>
7562         * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
7563         to post-reload define_insn_and_split.
7565 2022-07-01  Jakub Jelinek  <jakub@redhat.com>
7567         PR middle-end/106144
7568         * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
7569         emitting element for shift or if shift is 0 first element after start.
7570         (wide_int_cc_tests): Add tests for equivalency of wi::mask and
7571         wi::shifted_mask with 0 start.
7573 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
7575         PR target/106122
7576         * config/i386/i386.md (peephole2): Avoid generating pop %esp
7577         when optimizing for size.
7579 2022-07-01  Roger Sayle  <roger@nextmovesoftware.com>
7580             Uroš Bizjak  <ubizjak@gmail.com>
7582         * config/i386/i386.md (general_szext_operand): Add TImode
7583         support using x86_64_hilo_general_operand predicate.
7584         (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
7585         (*add<dwi>3_doubleword): Improved optimization of zero addition.
7586         (and<mode>3): Use SDWIM mode iterator to add support for double
7587         word bit-wise AND in TImode.  Use force_reg when double word
7588         immediate operand isn't x86_64_hilo_general_operand.
7589         (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
7590         converted into a post-reload splitter.
7591         (*andndi3_doubleword): Previous define_insn deleted.
7592         (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
7593         TARGET_BMI that splits post-reload.
7594         (*andn<mode>3_doubleword): New define_insn_and_split for
7595         !TARGET_BMI, that lowers/splits before reload.
7596         (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
7597         double word bit-wise XOR and bit-wise IOR in TImode.  Use
7598         force_reg when double word immediate operand isn't
7599         x86_64_hilo_general_operand.
7600         (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
7601         (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
7602         double word bit-wise NOT in TImode.
7603         (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
7604         and converted into a post-reload splitter.
7606 2022-07-01  Eric Botcazou  <ebotcazou@adacore.com>
7608         PR middle-end/105874
7609         * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
7610         EXPAND_MEMORY for the expansion of the inner reference only
7611         in the usual cases where a memory reference is required.
7613 2022-07-01  Richard Biener  <rguenther@suse.de>
7615         PR tree-optimization/106131
7616         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
7617         zero when offsetting the read looking through an aggregate
7618         copy.
7620 2022-07-01  Martin Liska  <mliska@suse.cz>
7622         PR tree-optimization/106126
7623         * gimple-if-to-switch.cc (struct condition_info): Save
7624         has_side_effect.
7625         (find_conditions): Parse all BBs.
7626         (pass_if_to_switch::execute): Allow only side effects for first
7627         BB.
7629 2022-07-01  Haochen Jiang  <haochen.jiang@intel.com>
7631         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
7632         Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
7633         OPTION_MASK_ISA2_AVX512BF16_UNSET and
7634         OPTION_MASK_ISA2_AVX512FP16_UNSET.
7636 2022-06-30  Joseph Myers  <joseph@codesourcery.com>
7638         PR lto/106129
7639         * lto-wrapper.cc (find_option): Add argument start.
7640         (merge_and_complain): Loop over existing_opt_index and
7641         existing_opt2_index for Xassembler check.  Update calls to
7642         find_option.
7643         (find_and_merge_options): Add argument first to determine whether
7644         to merge options with those passed in *opts.
7645         (run_gcc): Update calls to find_and_merge_options.
7647 2022-06-30  Aldy Hernandez  <aldyh@redhat.com>
7649         * gimple-range-cache.cc (block_range_cache::block_range_cache):
7650         Rename vrange_allocator to obstack_vrange_allocator.
7651         (ssa_global_cache::ssa_global_cache): Same.
7652         * gimple-range-edge.h (class gimple_outgoing_range): Same.
7653         * gimple-range-infer.h (class infer_range_manager): Same.
7654         * value-range.h (class vrange_allocator): Make abstract.
7655         (class obstack_vrange_allocator): Inherit from vrange_allocator.
7656         (class ggc_vrange_allocator): New.
7658 2022-06-30  Roger Sayle  <roger@nextmovesoftware.com>
7659             Uroš Bizjak  <ubizjak@gmail.com>
7661         * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
7662         provide gen_swapsi.
7663         (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
7664         via new gen_<insn>32di2_doubleword below.
7665         (<anyrotate>32di2_doubleword): New define_insn_and_split
7666         that splits after reload as either a pair of move instructions
7667         or an xchgl (using gen_swapsi).
7669 2022-06-30  Richard Biener  <rguenther@suse.de>
7671         * domwalk.h (dom_walker::dom_walker): Update comment to
7672         reflect reality and new special argument value for
7673         bb_index_to_rpo.
7674         * domwalk.cc (dom_walker::dom_walker): Recognize -1
7675         bb_index_to_rpo.
7676         * tree-into-ssa.cc
7677         (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
7678         dom_walker to not use RPO.
7680 2022-06-30  Martin Liska  <mliska@suse.cz>
7682         * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
7683         it is unused.
7685 2022-06-30  Andrew MacLeod  <amacleod@redhat.com>
7687         PR tree-optimization/106114
7688         * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
7689         statement operands instead of GORI cache.
7691 2022-06-30  Antoni Boucher  <bouanto@zoho.com>
7693         PR target/106095
7694         * config/i386/sse.md: Fix asm generation.
7696 2022-06-29  Sergei Trofimovich  <siarheit@google.com>
7698         PR c++/106102
7699         * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
7701 2022-06-29  Joseph Myers  <joseph@codesourcery.com>
7703         * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
7704         not gen_const_mem for UNSPEC_PIC_CALL_SYM.
7706 2022-06-29  Richard Biener  <rguenther@suse.de>
7708         PR rtl-optimization/106082
7709         * combine.cc (distribute_notes): Preserve notes when
7710         they indicate a call doesn't perform a non-local goto.
7712 2022-06-29  Richard Biener  <rguenther@suse.de>
7714         PR tree-optimization/106112
7715         * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
7716         a constant operand according to its type.
7718 2022-06-29  Martin Liska  <mliska@suse.cz>
7720         * doc/invoke.texi: Remove removed evrp-mode.
7722 2022-06-29  Lulu Cheng  <chenglulu@loongson.cn>
7724         PR target/106097
7725         * config/loongarch/loongarch.cc (loongarch_build_integer):
7726         Remove undefined behavior from code.
7728 2022-06-28  Dimitar Dimitrov  <dimitar@dinux.eu>
7730         * doc/sourcebuild.texi: Document new no_alignment_constraints
7731         effective target check.
7733 2022-06-28  Aldy Hernandez  <aldyh@redhat.com>
7735         * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
7736         * flag-types.h (enum evrp_mode): Remove.
7737         * params.opt: Remove --param=evrp-mode.
7738         * tree-vrp.cc (make_pass_early_vrp): New.
7739         (pass_vrp::execute): Call early VRP instance.
7740         * gimple-ssa-evrp-analyze.cc: Removed.
7741         * gimple-ssa-evrp-analyze.h: Removed.
7742         * gimple-ssa-evrp.cc: Removed.
7744 2022-06-28  Alexandre Oliva  <oliva@adacore.com>
7746         * Makefile.in (TFLAGS): New.
7747         (GCC_FOR_TARGET): Add TFLAGS.
7748         (FLAGS_TO_PASS): Pass TFLAGS down.
7750 2022-06-28  Richard Biener  <rguenther@suse.de>
7752         * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
7753         call update_ssa.
7755 2022-06-28  Richard Biener  <rguenther@suse.de>
7757         * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
7758         mark_block_for_update.
7759         (update_ssa): Adjust.
7761 2022-06-28  Xi Ruoyao  <xry111@xry111.site>
7763         PR target/106096
7764         * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
7765         $r13 from SIBCALL_REGS.
7766         * config/loongarch/loongarch.cc (loongarch_regno_to_class):
7767         Change $r13 to JIRL_REGS.
7769 2022-06-28  Aldy Hernandez  <aldyh@redhat.com>
7771         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
7772         irange::supports_p.
7774 2022-06-28  Richard Biener  <rguenther@suse.de>
7776         PR middle-end/106053
7777         * match.pd ((T)a == (T)b): Avoid folding away sign
7778         changes in a comparison if we'd truncate to a boolean.
7780 2022-06-28  Kewen Lin  <linkw@linux.ibm.com>
7782         * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
7783         iterator GPR with SImode, adjust the condition and output template,
7784         rename to ...
7785         (*rotlsi3_insert_4): ... this.
7787 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
7789         * genmatch.cc: Add "final" and "override" to various vfunc
7790         implementations, removing redundant "virtual" as appropriate.
7791         * gensupport.cc: Likewise.
7792         * gimple-range-cache.h: Likewise.
7793         * ipa-icf-gimple.h: Likewise.
7794         * ipa-icf.h: Likewise.
7795         * read-md.h: Likewise.
7796         * read-rtl-function.cc: Likewise.
7797         * tree-ssa-loop-ch.cc: Likewise.
7798         * tree-ssa-sccvn.cc: Likewise.
7800 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
7802         * config/i386/i386-features.h: Add "final" and "override" to
7803         scalar_chain vfunc implementations as appropriate.
7805 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
7807         * tree-switch-conversion.h: Add "final" and "override" to cluster
7808         vfunc implementations as appropriate.
7810 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
7812         * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
7813         implementations as appropriate.
7815 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
7817         * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
7818         implementations, removing redundant "virtual" as appropriate.
7819         * gimple-ssa-strength-reduction.cc: Likewise.
7820         * ipa-prop.cc: Likewise.
7821         * rtl-ssa/blocks.cc: Likewise.
7822         * tree-into-ssa.cc: Likewise.
7823         * tree-ssa-dom.cc: Likewise.
7824         * tree-ssa-math-opts.cc: Likewise.
7825         * tree-ssa-phiopt.cc: Likewise.
7826         * tree-ssa-propagate.cc: Likewise.
7827         * tree-ssa-sccvn.cc: Likewise.
7828         * tree-ssa-strlen.cc: Likewise.
7829         * tree-ssa-uncprop.cc: Likewise.
7831 2022-06-27  David Malcolm  <dmalcolm@redhat.com>
7833         * adjust-alignment.cc: Add "final" and "override" to opt_pass
7834         vfunc implementations, removing redundant "virtual" as
7835         appropriate.
7836         * asan.cc: Likewise.
7837         * auto-inc-dec.cc: Likewise.
7838         * auto-profile.cc: Likewise.
7839         * bb-reorder.cc: Likewise.
7840         * cfgcleanup.cc: Likewise.
7841         * cfgexpand.cc: Likewise.
7842         * cfgrtl.cc: Likewise.
7843         * cgraphbuild.cc: Likewise.
7844         * combine-stack-adj.cc: Likewise.
7845         * combine.cc: Likewise.
7846         * compare-elim.cc: Likewise.
7847         * config/i386/i386-features.cc: Likewise.
7848         * coroutine-passes.cc: Likewise.
7849         * cprop.cc: Likewise.
7850         * cse.cc: Likewise.
7851         * dce.cc: Likewise.
7852         * df-core.cc: Likewise.
7853         * dse.cc: Likewise.
7854         * dwarf2cfi.cc: Likewise.
7855         * early-remat.cc: Likewise.
7856         * except.cc: Likewise.
7857         * final.cc: Likewise.
7858         * function.cc: Likewise.
7859         * fwprop.cc: Likewise.
7860         * gcse.cc: Likewise.
7861         * gimple-harden-conditionals.cc: Likewise.
7862         * gimple-if-to-switch.cc: Likewise.
7863         * gimple-isel.cc: Likewise.
7864         * gimple-laddress.cc: Likewise.
7865         * gimple-loop-interchange.cc: Likewise.
7866         * gimple-loop-jam.cc: Likewise.
7867         * gimple-loop-versioning.cc: Likewise.
7868         * gimple-low.cc: Likewise.
7869         * gimple-ssa-backprop.cc: Likewise.
7870         * gimple-ssa-evrp.cc: Likewise.
7871         * gimple-ssa-isolate-paths.cc: Likewise.
7872         * gimple-ssa-nonnull-compare.cc: Likewise.
7873         * gimple-ssa-split-paths.cc: Likewise.
7874         * gimple-ssa-store-merging.cc: Likewise.
7875         * gimple-ssa-strength-reduction.cc: Likewise.
7876         * gimple-ssa-warn-access.cc: Likewise.
7877         * gimple-ssa-warn-alloca.cc: Likewise.
7878         * gimple-ssa-warn-restrict.cc: Likewise.
7879         * gimple-warn-recursion.cc: Likewise.
7880         * graphite.cc: Likewise.
7881         * ifcvt.cc: Likewise.
7882         * init-regs.cc: Likewise.
7883         * ipa-comdats.cc: Likewise.
7884         * ipa-cp.cc: Likewise.
7885         * ipa-devirt.cc: Likewise.
7886         * ipa-fnsummary.cc: Likewise.
7887         * ipa-free-lang-data.cc: Likewise.
7888         * ipa-icf.cc: Likewise.
7889         * ipa-inline.cc: Likewise.
7890         * ipa-modref.cc: Likewise.
7891         * ipa-profile.cc: Likewise.
7892         * ipa-pure-const.cc: Likewise.
7893         * ipa-reference.cc: Likewise.
7894         * ipa-split.cc: Likewise.
7895         * ipa-sra.cc: Likewise.
7896         * ipa-visibility.cc: Likewise.
7897         * ipa.cc: Likewise.
7898         * ira.cc: Likewise.
7899         * jump.cc: Likewise.
7900         * loop-init.cc: Likewise.
7901         * lower-subreg.cc: Likewise.
7902         * mode-switching.cc: Likewise.
7903         * modulo-sched.cc: Likewise.
7904         * multiple_target.cc: Likewise.
7905         * omp-expand.cc: Likewise.
7906         * omp-low.cc: Likewise.
7907         * omp-oacc-kernels-decompose.cc: Likewise.
7908         * omp-oacc-neuter-broadcast.cc: Likewise.
7909         * omp-offload.cc: Likewise.
7910         * omp-simd-clone.cc: Likewise.
7911         * passes.cc: Likewise.
7912         * postreload-gcse.cc: Likewise.
7913         * postreload.cc: Likewise.
7914         * predict.cc: Likewise.
7915         * recog.cc: Likewise.
7916         * ree.cc: Likewise.
7917         * reg-stack.cc: Likewise.
7918         * regcprop.cc: Likewise.
7919         * reginfo.cc: Likewise.
7920         * regrename.cc: Likewise.
7921         * reorg.cc: Likewise.
7922         * sancov.cc: Likewise.
7923         * sanopt.cc: Likewise.
7924         * sched-rgn.cc: Likewise.
7925         * stack-ptr-mod.cc: Likewise.
7926         * store-motion.cc: Likewise.
7927         * tracer.cc: Likewise.
7928         * trans-mem.cc: Likewise.
7929         * tree-call-cdce.cc: Likewise.
7930         * tree-cfg.cc: Likewise.
7931         * tree-cfgcleanup.cc: Likewise.
7932         * tree-complex.cc: Likewise.
7933         * tree-eh.cc: Likewise.
7934         * tree-emutls.cc: Likewise.
7935         * tree-if-conv.cc: Likewise.
7936         * tree-into-ssa.cc: Likewise.
7937         * tree-loop-distribution.cc: Likewise.
7938         * tree-nrv.cc: Likewise.
7939         * tree-object-size.cc: Likewise.
7940         * tree-parloops.cc: Likewise.
7941         * tree-predcom.cc: Likewise.
7942         * tree-profile.cc: Likewise.
7943         * tree-sra.cc: Likewise.
7944         * tree-ssa-ccp.cc: Likewise.
7945         * tree-ssa-copy.cc: Likewise.
7946         * tree-ssa-dce.cc: Likewise.
7947         * tree-ssa-dom.cc: Likewise.
7948         * tree-ssa-dse.cc: Likewise.
7949         * tree-ssa-forwprop.cc: Likewise.
7950         * tree-ssa-ifcombine.cc: Likewise.
7951         * tree-ssa-loop-ch.cc: Likewise.
7952         * tree-ssa-loop-im.cc: Likewise.
7953         * tree-ssa-loop-ivcanon.cc: Likewise.
7954         * tree-ssa-loop-prefetch.cc: Likewise.
7955         * tree-ssa-loop-split.cc: Likewise.
7956         * tree-ssa-loop-unswitch.cc: Likewise.
7957         * tree-ssa-loop.cc: Likewise.
7958         * tree-ssa-math-opts.cc: Likewise.
7959         * tree-ssa-phiopt.cc: Likewise.
7960         * tree-ssa-phiprop.cc: Likewise.
7961         * tree-ssa-pre.cc: Likewise.
7962         * tree-ssa-reassoc.cc: Likewise.
7963         * tree-ssa-sccvn.cc: Likewise.
7964         * tree-ssa-sink.cc: Likewise.
7965         * tree-ssa-strlen.cc: Likewise.
7966         * tree-ssa-structalias.cc: Likewise.
7967         * tree-ssa-uncprop.cc: Likewise.
7968         * tree-ssa-uninit.cc: Likewise.
7969         * tree-ssanames.cc: Likewise.
7970         * tree-stdarg.cc: Likewise.
7971         * tree-switch-conversion.cc: Likewise.
7972         * tree-tailcall.cc: Likewise.
7973         * tree-vect-generic.cc: Likewise.
7974         * tree-vectorizer.cc: Likewise.
7975         * tree-vrp.cc: Likewise.
7976         * tsan.cc: Likewise.
7977         * ubsan.cc: Likewise.
7978         * var-tracking.cc: Likewise.
7979         * vtable-verify.cc: Likewise.
7980         * web.cc: Likewise.
7982 2022-06-27  Andrew Stubbs  <ams@codesourcery.com>
7984         * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
7985         (jump): Likewise.
7986         (movdi_symbol_save_scc): Likewise.
7988 2022-06-27  Roger Sayle  <roger@nextmovesoftware.com>
7990         PR rtl-optimization/7061
7991         * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
7993 2022-06-27  Roger Sayle  <roger@nextmovesoftware.com>
7995         PR tree-optimization/94026
7996         * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
7997         (((X >> C1) & C2) eq/ne C3): Likewise.
7999 2022-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8001         * statistics.cc: Include tree.h.
8002         (get_function_name): New function.
8003         (statistics_fini_pass_2): Call get_function_name instead of
8004         current_function_name.
8005         (statistics_counter_event): Call get_function_name instead of
8006         function_name.
8007         (statistics_histogram_event): Likewise.
8009 2022-06-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8011         * config/xtensa/xtensa.md:
8012         Suppress unnecessary emitting nop insn in the split patterns for
8013         integer/FP constant synthesis, and add new peephole2 pattern that
8014         folds such synthesized additions.
8016 2022-06-25  Aldy Hernandez  <aldyh@redhat.com>
8018         * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
8019         instead of evrp.
8020         (dom_jt_state::push): Remove m_evrp.
8021         (dom_jt_state::pop): Same.
8022         (dom_jt_state::record_ranges_from_stmt): Remove.
8023         (dom_jt_state::register_equiv): Remove updating of evrp ranges.
8024         (class dom_jt_simplifier): Pass ranger to constructor.
8025         Inherit from hybrid_jt_simplifier.
8026         (dom_jt_simplifier::simplify): Convert to ranger.
8027         (pass_dominator::execute): Same.
8028         (all_uses_feed_or_dominated_by_stmt): New.
8029         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
8030         (dom_opt_dom_walker::before_dom_children): Call
8031         set_global_ranges_from_unreachable_edges.
8032         Do not call record_ranges_from_stmt.
8033         (dom_opt_dom_walker::after_dom_children): Remove evrp use.
8034         (cprop_operand): Use int_range<> instead of value_range.
8035         (dom_opt_dom_walker::fold_cond): New.
8036         (dom_opt_dom_walker::optimize_stmt): Pass ranger to
8037         cprop_into_stmt.
8038         Use fold_cond() instead of vrp_visit_cond_stmt().
8039         * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
8040         pass state to simplifier.
8041         * vr-values.h (class vr_values): Make fold_cond public.
8043 2022-06-25  Jeff Law  <jeffreyalaw@gmail.com>
8045         * common/config/tilegx/tilegx-common.cc: Removed.
8046         * common/config/tilepro/tilepro-common.cc: Removed.
8047         * config.gcc: Remove tilegx and tilepro entries.
8048         * config/tilegx/constraints.md: Removed.
8049         * config/tilegx/feedback.h: Removed.
8050         * config/tilegx/linux.h: Removed.
8051         * config/tilegx/mul-tables.cc: Removed.
8052         * config/tilegx/predicates.md: Removed.
8053         * config/tilegx/sync.md: Removed.
8054         * config/tilegx/t-tilegx: Removed.
8055         * config/tilegx/tilegx-builtins.h: Removed.
8056         * config/tilegx/tilegx-c.cc: Removed.
8057         * config/tilegx/tilegx-generic.md: Removed.
8058         * config/tilegx/tilegx-modes.def: Removed.
8059         * config/tilegx/tilegx-multiply.h: Removed.
8060         * config/tilegx/tilegx-opts.h: Removed.
8061         * config/tilegx/tilegx-protos.h: Removed.
8062         * config/tilegx/tilegx.cc: Removed.
8063         * config/tilegx/tilegx.h: Removed.
8064         * config/tilegx/tilegx.md: Removed.
8065         * config/tilegx/tilegx.opt: Removed.
8066         * config/tilepro/constraints.md: Removed.
8067         * config/tilepro/feedback.h: Removed.
8068         * config/tilepro/gen-mul-tables.cc: Removed.
8069         * config/tilepro/linux.h: Removed.
8070         * config/tilepro/mul-tables.cc: Removed.
8071         * config/tilepro/predicates.md: Removed.
8072         * config/tilepro/t-tilepro: Removed.
8073         * config/tilepro/tilepro-builtins.h: Removed.
8074         * config/tilepro/tilepro-c.cc: Removed.
8075         * config/tilepro/tilepro-generic.md: Removed.
8076         * config/tilepro/tilepro-modes.def: Removed.
8077         * config/tilepro/tilepro-multiply.h: Removed.
8078         * config/tilepro/tilepro-protos.h: Removed.
8079         * config/tilepro/tilepro.cc: Removed.
8080         * config/tilepro/tilepro.h: Removed.
8081         * config/tilepro/tilepro.md: Removed.
8082         * config/tilepro/tilepro.opt: Removed.
8083         * configure.ac: Remove tilegx and tilepro entries.
8084         * configure: Rebuilt.
8085         * doc/extend.texi: Remove tilegx and tilepro entries.
8086         * doc/install.texi: Remove tilegx and tilepro entries.
8087         * doc/invoke.texi: Remove tilegx and tilepro entries.
8088         * doc/md.texi: Remove tilegx and tilepro entries.
8090 2022-06-25  Roger Sayle  <roger@nextmovesoftware.com>
8091             Richard Biener  <rguenther@suse.de>
8093         * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
8094         iteration over each basic block that was updated by the second
8095         iteration.
8097 2022-06-24  Jason Merrill  <jason@redhat.com>
8099         PR c++/87729
8100         PR c++/20423
8101         * doc/invoke.texi: Document changes.
8103 2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
8105         * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
8106         condition to avoid overflow.
8108 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
8110         * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
8111         OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
8112         * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
8113         OPTION_MASK_PPC_GFXOPT.
8114         * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
8115         * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
8116         OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
8117         * config/rs6000/rs6000-c.cc: Update comment.
8118         * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
8119         * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
8120         MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
8121         (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
8122         with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
8123         * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
8124         MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
8125         MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
8126         MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
8128 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
8130         * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
8131         OPTION_MASK_MFCRF.
8132         * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
8133         OPTION_MASK_MULTIPLE.
8134         * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
8135         * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
8136         OPTION_MASK_MFCRF.
8137         * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
8138         OPTION_MASK_EABI.
8139         * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
8140         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
8141         MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
8142         * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
8143         MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
8144         MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
8145         MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
8146         MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
8147         Replace with
8148         OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
8149         OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
8150         OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
8151         OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
8152         OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
8153         OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
8154         OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
8155         * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
8156         MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
8157         * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
8158         with OPTION_MASK_MULTIPLE.
8159         (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
8160         MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
8161         MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
8162         MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
8163         MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
8164         * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
8165         with OPTION_MASK_EABI.
8167 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
8169         * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
8170         RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
8171         RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
8172         RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
8173         OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
8174         OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
8175         OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
8176         * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
8177         RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
8178         RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
8179         RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
8181 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
8183         * config/rs6000/rs6000-c.cc: Update comments.
8184         * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
8185         RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
8186         RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
8187         RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
8188         RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
8189         with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
8190         OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
8191         OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
8192         OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
8193         OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
8194         OPTION_MASK_MMA, OPTION_MASK_POWER10.
8195         * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
8196         RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
8197         RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
8198         RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
8199         RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
8201 2022-06-24  Will Schmidt  <will_schmidt@vnet.ibm.com>
8203         * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
8204         MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
8205         OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
8207 2022-06-24  Richard Biener  <rguenther@suse.de>
8209         PR middle-end/106070
8210         * match.pd (a != b ? a : b): Fix translation of
8211         operand_equal_for_comparison_p.
8213 2022-06-24  Jan Hubicka  <jh@suse.cz>
8215         PR ipa/106057
8216         * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
8218 2022-06-24  Martin Liska  <mliska@suse.cz>
8220         PR middle-end/106059
8221         * profile-count.h: *= and /= operators need to modify this
8222         object.
8224 2022-06-24  Roger Sayle  <roger@nextmovesoftware.com>
8225             Uroš Bizjak  <ubizjak@gmail.com>
8227         PR target/105930
8228         * config/i386/i386.md (*<any_or>di3_doubleword): Split after
8229         reload.  Use rtx_equal_p to avoid creating memory-to-memory moves,
8230         and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
8232 2022-06-24  Alexandre Oliva  <oliva@adacore.com>
8234         * common.opt (nostdlib++): New.
8235         * doc/invoke.texi (-nostdlib++): Document it.
8237 2022-06-24  Alexandre Oliva  <oliva@adacore.com>
8239         * doc/sourcebuild.texi (Environment attributes): Document
8240         two_plus_gigs.
8242 2022-06-23  David Malcolm  <dmalcolm@redhat.com>
8244         * common.opt (fdiagnostics-show-rules): New option.
8245         * diagnostic-format-json.cc (diagnostic_output_format_init_json):
8246         Fix up context->show_rules.
8247         * diagnostic-format-sarif.cc
8248         (diagnostic_output_format_init_sarif): Likewise.
8249         * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
8250         (diagnostic_metadata::precanned_rule): New class.
8251         (diagnostic_metadata::add_rule): New.
8252         (diagnostic_metadata::get_num_rules): New.
8253         (diagnostic_metadata::get_rule): New.
8254         (diagnostic_metadata::m_rules): New field.
8255         * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
8256         (print_any_rules): New.
8257         (diagnostic_report_diagnostic): Call it.
8258         * diagnostic.h (diagnostic_context::show_rules): New field.
8259         * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
8260         * opts.cc (common_handle_option): Handle
8261         OPT_fdiagnostics_show_rules.
8262         * toplev.cc (general_init): Set up global_dc->show_rules.
8264 2022-06-23  Martin Liska  <mliska@suse.cz>
8266         PR c++/106062
8267         * ubsan.cc (sanitize_unreachable_fn): Change order of calls
8268         in order to initialize UBSAN built-ins.
8270 2022-06-23  Martin Liska  <mliska@suse.cz>
8272         PR ipa/105600
8273         * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
8274         Skip variables with body_removed.
8276 2022-06-23  liuhongt  <hongtao.liu@intel.com>
8278         * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
8279         reg_or_subregno.
8280         (sse4_2_pcmpistr): Ditto.
8282 2022-06-23  Xionghu Luo  <xionghuluo@tencent.com>
8284         * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
8285         typo.
8286         * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
8287         * tree-switch-conversion.h: Likewise.
8289 2022-06-22  Jason Merrill  <jason@redhat.com>
8291         PR c++/104642
8292         * common.opt: Add -funreachable-traps.
8293         * doc/invoke.texi (-funreachable-traps): Document it.
8294         * opts.cc (finish_options): Enable at -O0 or -Og.
8295         * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
8296         (builtin_decl_unreachable, build_builtin_unreachable): New.
8297         * tree.h: Declare them.
8298         * ubsan.cc (sanitize_unreachable_fn): Factor out.
8299         (ubsan_instrument_unreachable): Use
8300         gimple_build_builtin_unreachable.
8301         * ubsan.h (sanitize_unreachable_fn): Declare.
8302         * gimple.cc (gimple_build_builtin_unreachable): New.
8303         * gimple.h: Declare it.
8304         * builtins.cc (expand_builtin_unreachable): Add assert.
8305         (fold_builtin_0): Call build_builtin_unreachable.
8306         * sanopt.cc: Don't run for just SANITIZE_RETURN
8307         or SANITIZE_UNREACHABLE when trapping.
8308         * cgraphunit.cc (walk_polymorphic_call_targets): Use new
8309         unreachable functions.
8310         * gimple-fold.cc (gimple_fold_call)
8311         (gimple_get_virt_method_for_vtable)
8312         * ipa-fnsummary.cc (redirect_to_unreachable)
8313         * ipa-prop.cc (ipa_make_edge_direct_to_target)
8314         (ipa_impossible_devirt_target)
8315         * ipa.cc (walk_polymorphic_call_targets)
8316         * tree-cfg.cc (pass_warn_function_return::execute)
8317         (execute_fixup_cfg)
8318         * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
8319         (unloop_loops)
8320         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
8321         Likewise.
8323 2022-06-22  Richard Sandiford  <richard.sandiford@arm.com>
8325         PR tree-optimization/106019
8326         * tree-data-ref.cc (dr_may_alias_p): Try using the
8327         innermost_loop_behavior to disambiguate non-loop queries.
8329 2022-06-22  Palmer Dabbelt  <palmer@rivosinc.com>
8331         * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
8333 2022-06-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8335         * config/xtensa/xtensa.md (bswapsi2_internal):
8336         Enlarge the buffer that is obviously smaller than the template
8337         string given to sprintf().
8339 2022-06-21  Roger Sayle  <roger@nextmovesoftware.com>
8340             Marek Polacek  <polacek@redhat.com>
8341             Segher Boessenkool  <segher@kernel.crashing.org>
8342             Kewen Lin  <linkw@linux.ibm.com>
8344         PR target/105991
8345         * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
8346         exact_log2 doesn't return -1 (or zero).
8347         (plus_xor): New code iterator.
8348         (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
8350 2022-06-21  Nathan Sidwell  <nathan@acm.org>
8352         * doc/invoke.texi (C++ Modules): Remove language-linkage
8353         as missing feature.
8355 2022-06-21  Arjun Shankar  <arjun@redhat.com>
8357         PR tree-optimization/94899
8358         * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
8359         0x80000000): New simplification.
8361 2022-06-21  Jakub Jelinek  <jakub@redhat.com>
8363         PR rtl-optimization/106032
8364         * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
8365         t may_trap_or_fault_p, even if it is cheap.
8367 2022-06-21  Jakub Jelinek  <jakub@redhat.com>
8369         PR middle-end/106030
8370         * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
8371         temp to expand_operands if mode has been promoted.
8373 2022-06-21  Xionghu Luo  <xionghuluo@tencent.com>
8375         PR target/105740
8376         * gimple-if-to-switch.cc (find_conditions): Don't skip the first
8377         condition bb.
8379 2022-06-21  Siddhesh Poyarekar  <siddhesh@gotplt.org>
8381         PR tree-optimization/105736
8382         * tree-object-size.cc (addr_object_size): Return size_unknown
8383         when object offset computation returns an error.
8385 2022-06-20  H.J. Lu  <hjl.tools@gmail.com>
8387         PR target/105960
8388         * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
8389         false if PIC register is used when calling ifunc functions.
8391 2022-06-20  Richard Biener  <rguenther@suse.de>
8393         PR middle-end/106027
8394         * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
8395         type of the prevailing comparison for the new comparison type.
8396         (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
8397         to A < X && A >= Y folding.
8399 2022-06-20  Kewen Lin  <linkw@linux.ibm.com>
8401         PR tree-optimization/105940
8402         * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
8403         slp_done_for_suggested_uf and adjust with it accordingly.
8404         (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
8405         pass it down to vect_analyze_loop_2 for the initial analysis and
8406         applying suggested unroll factor.
8407         (vect_is_simple_reduction): Add parameter slp and adjust with it.
8408         (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
8409         (vect_analyze_scalar_cycles): Likewise.
8411 2022-06-20  Martin Liska  <mliska@suse.cz>
8413         * bb-reorder.cc (find_traces_1_round): Add operators / and * and
8414         use them.
8415         (better_edge_p): Likewise.
8416         * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
8417         * cfgloopmanip.cc (scale_loop_profile): Likewise.
8418         * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
8419         * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
8420         * config/sh/sh.cc (expand_cbranchdi4): Likewise.
8421         * dojump.cc (do_compare_rtx_and_jump): Likewise.
8422         * final.cc (compute_alignments): Likewise.
8423         * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
8424         (decide_about_value): Likewise.
8425         * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
8426         * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
8427         * modulo-sched.cc (sms_schedule): Likewise.
8428         * omp-expand.cc (extract_omp_for_update_vars): Likewise.
8429         (expand_omp_ordered_sink): Likewise.
8430         (expand_omp_for_ordered_loops): Likewise.
8431         (expand_omp_for_static_nochunk): Likewise.
8432         * predict.cc (maybe_hot_count_p): Likewise.
8433         (probably_never_executed): Likewise.
8434         (set_even_probabilities): Likewise.
8435         (handle_missing_profiles): Likewise.
8436         (expensive_function_p): Likewise.
8437         * profile-count.h: Likewise.
8438         * profile.cc (compute_branch_probabilities): Likewise.
8439         * stmt.cc (emit_case_dispatch_table): Likewise.
8440         * symtab-thunks.cc (expand_thunk): Likewise.
8441         * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
8442         * tree-ssa-sink.cc (select_best_block): Likewise.
8443         * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
8444         (switch_decision_tree::balance_case_nodes): Likewise.
8445         (switch_decision_tree::emit_case_nodes): Likewise.
8446         * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
8448 2022-06-20  yulong  <shiyulong@iscas.ac.cn>
8450         * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
8451         * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
8452         of RISCV_BUILTIN.
8453         * config/riscv/riscv-ftypes.def (0): Remove unused.
8454         (1): New.
8456 2022-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8458         * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
8459         Consider relaxed MOVI instructions as L32R.
8461 2022-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8463         * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
8464         Use can_create_pseudo_p(), instead of using individual
8465         reload_in_progress and reload_completed.
8466         (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
8467         the existing predicate function.
8468         (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
8469         Use the standard RTX code predicate macros such as MEM_P,
8470         SYMBOL_REF_P and/or CONST_INT_P.
8471         * config/xtensa/xtensa.md: Avoid using numeric literals to determine
8472         if callee-saved register, at the split patterns for indirect sibcall
8473         fixups.
8475 2022-06-18  Jakub Jelinek  <jakub@redhat.com>
8477         * common.opt (flag_sanitize_trap): New variable.
8478         (fsanitize-trap=, fsanitize-trap): New options.
8479         (fsanitize-undefined-trap-on-error): Change into deprecated alias
8480         for -fsanitize-trap=all.
8481         * opts.h (struct sanitizer_opts_s): Add can_trap member.
8482         * opts.cc (finish_options): Complain about unsupported
8483         -fsanitize-trap= options.
8484         (sanitizer_opts): Add can_trap values to all entries.
8485         (get_closest_sanitizer_option): Ignore -fsanitize-trap=
8486         options which have can_trap false.
8487         (parse_sanitizer_options): Add support for -fsanitize-trap=.
8488         For -fsanitize-trap=all, enable
8489         SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT.  Disallow
8490         -fsanitize-trap=vptr here.
8491         (common_handle_option): Handle OPT_fsanitize_trap_ and
8492         OPT_fsanitize_trap.
8493         * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
8494         flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
8495         flag_sanitize_undefined_trap_on_error.
8496         * gcc.cc (sanitize_spec_function): Use
8497         flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
8498         and drop use of flag_sanitize_undefined_trap_on_error in
8499         "undefined" handling.
8500         * ubsan.cc (ubsan_instrument_unreachable): Use
8501         flag_sanitize_trap & SANITIZE_??? instead of
8502         flag_sanitize_undefined_trap_on_error.
8503         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
8504         ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
8505         ubsan_build_overflow_builtin, instrument_bool_enum_load,
8506         ubsan_instrument_float_cast, instrument_nonnull_arg,
8507         instrument_nonnull_return, instrument_builtin): Likewise.
8508         * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
8509         (-fsanitize-undefined-trap-on-error): Document as deprecated
8510         alias of -fsanitize-trap.
8512 2022-06-18  Jakub Jelinek  <jakub@redhat.com>
8514         PR middle-end/105998
8515         * varasm.cc (narrowing_initializer_constant_valid_p): Check
8516         SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
8517         ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
8519 2022-06-18  Roger Sayle  <roger@nextmovesoftware.com>
8521         PR tree-optimization/105835
8522         * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
8523         Narrow integer multiplication by a zero_one_valued_p operand.
8524         (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
8525         conversions inside COND_EXPR where both data operands are
8526         integer constants.
8528 2022-06-18  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8530         * config/xtensa/constraints.md (Y):
8531         Change to include integer constants until reload begins.
8532         * config/xtensa/predicates.md (move_operand): Ditto.
8533         * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
8534         Change to allow storing integer constants into litpool only after
8535         reload begins.
8537 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
8539         PR target/105209
8540         * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
8541         * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
8542         (alpha_store_data_bypass_p_1): Ditto.
8543         * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
8544         of generic store_data_bypass_p.
8545         (ev4_ist_c): Remove insn reservation.
8547 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
8549         PR target/105970
8550         * config/i386/i386.cc (ix86_function_arg): Assert that
8551         the mode of pointer argumet is equal to ptr_mode, not Pmode.
8553 2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
8555         PR target/105993
8556         * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
8557         instead of REGNO comparisons in combine splitter.
8559 2022-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
8561         * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
8562         types.
8564 2022-06-17  Kito Cheng  <kito.cheng@sifive.com>
8566         * config/riscv/bitmanip.md: Supress warning.
8568 2022-06-17  Richard Earnshaw  <rearnsha@arm.com>
8570         PR target/106004
8571         * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
8572         Clear bits in the mask above bit 31.
8574 2022-06-17  Richard Earnshaw  <rearnsha@arm.com>
8576         * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
8577         to avoid spilling trivial literals to the constant pool.
8579 2022-06-16  David Malcolm  <dmalcolm@redhat.com>
8581         * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
8582         auto_diagnostic_group to group any warning with its note.
8583         (maybe_warn_for_bound): Likewise.
8584         (check_access): Likewise.
8585         (warn_dealloc_offset): Likewise.
8586         (pass_waccess::maybe_warn_memmodel): Likewise.
8587         (pass_waccess::maybe_check_dealloc_call): Likewise.
8588         (pass_waccess::warn_invalid_pointer): Likewise.
8589         (pass_waccess::check_dangling_stores): Likewise.
8591 2022-06-16  Jason Merrill  <jason@redhat.com>
8593         * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
8594         opts_set->x_flag_sanitize.
8596 2022-06-16  Jason Merrill  <jason@redhat.com>
8598         * flags.h (issue_strict_overflow_warning): Comment #endif.
8600 2022-06-16  Andrew MacLeod  <amacleod@redhat.com>
8602         * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
8603         was invaraint before, clear the invariant bit.
8604         * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
8605         * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
8607 2022-06-16  Andrew MacLeod  <amacleod@redhat.com>
8609         * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
8611 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
8613         PR tree-optimization/105983
8614         * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
8615         y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
8616         on non-equality comparisons.
8618 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
8620         PR tree-optimization/105984
8621         * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
8622         x > stype_max / cst || x < stype_min / cst): fold_convert @1
8623         to TREE_TYPE (@0) just once and test for negative divisor
8624         also on that folded constant instead of on @1.
8626 2022-06-16  Jakub Jelinek  <jakub@redhat.com>
8628         PR middle-end/105951
8629         * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
8630         optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
8631         as last argument to the internal functions.
8632         * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
8633         extra call argument to ifns.  If expand_atomic_fetch_op fails for the
8634         lhs == NULL_TREE case, fall through into the optab code with
8635         gen_reg_rtx (mode) as target.  If second expand_atomic_fetch_op
8636         fails, construct a CALL_EXPR and expand that.
8637         (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
8638         to ifns.  If expand_atomic_fetch_op fails, construct a CALL_EXPR and
8639         expand that.
8641 2022-06-16  Haochen Gui  <guihaoc@gcc.gnu.org>
8643         PR target/103316
8644         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
8645         gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
8646         RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
8647         RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
8648         * config/rs6000/vector.md (VEC_IC): New mode iterator.  Add support
8649         for new Power10 V1TI instructions.
8650         (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
8651         (vec_cmpu<mode><mode>): Likewise.
8652         (vector_nlt<mode>): Set mode iterator to VEC_IC.
8653         (vector_nltv1ti): Remove.
8654         (vector_gtu<mode>): Set mode iterator to VEC_IC.
8655         (vector_gtuv1ti): Remove.
8656         (vector_nltu<mode>): Set mode iterator to VEC_IC.
8657         (vector_nltuv1ti): Remove.
8658         (vector_geu<mode>): Set mode iterator to VEC_IC.
8659         (vector_ngt<mode>): Likewise.
8660         (vector_ngtv1ti): Remove.
8661         (vector_ngtu<mode>): Set mode iterator to VEC_IC.
8662         (vector_ngtuv1ti): Remove.
8663         (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
8664         (vector_gtu_v1ti_p): Remove.
8665         (vrotl<mode>3): Set mode iterator to VEC_IC.  Emit insns for V1TI.
8666         (vrotlv1ti3): Remove.
8667         (vashr<mode>3): Set mode iterator to VEC_IC.  Emit insns for V1TI.
8668         (vashrv1ti3): Remove.
8670 2022-06-16  Martin Liska  <mliska@suse.cz>
8672         * gengtype-state.cc (read_a_state_token): Do not skip extra
8673         character after escaped sequence.
8675 2022-06-16  Martin Liska  <mliska@suse.cz>
8677         PR driver/105564
8678         * spellcheck.cc (test_find_closest_string): Add new test.
8679         * spellcheck.h (class best_match): Prefer a difference in
8680         trailing sign symbol.
8682 2022-06-16  liuhongt  <hongtao.liu@intel.com>
8684         PR tree-optimization/53533
8685         * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
8686         (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
8687         and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
8689 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8691         * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
8693 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8695         * config/xtensa/predicates.md (reload_operand):
8696         New predicate.
8697         * config/xtensa/xtensa.md: New peephole2 pattern.
8699 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8701         * config/xtensa/xtensa.md (*round_up_to_even):
8702         New insn-and-split pattern.
8703         (*signed_ge_zero): Ditto.
8705 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8707         * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
8708         xtensa_emit_sibcall): New prototypes.
8709         (xtensa_expand_epilogue): Add new argument that specifies whether
8710         or not sibling call.
8711         * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
8712         New macro definition.
8713         (xtensa_prepare_expand_call): New function in order to share
8714         the common code.
8715         (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
8716         New functions.
8717         (xtensa_expand_epilogue): Add new argument sibcall_p and use it
8718         for sibling call handling.
8719         * config/xtensa/xtensa.md (call, call_value):
8720         Use xtensa_prepare_expand_call.
8721         (call_internal, call_value_internal):
8722         Add the condition in order to be disabled if sibling call.
8723         (sibcall, sibcall_value, sibcall_epilogue): New expansions.
8724         (sibcall_internal, sibcall_value_internal): New insn patterns,
8725         and split ones in order to take care of the indirect sibcalls.
8727 2022-06-15  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8729         * doc/invoke.texi: Document -mextra-l32r-costs= option.
8731 2022-06-15  David Malcolm  <dmalcolm@redhat.com>
8733         PR analyzer/105962
8734         * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
8735         * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
8736         Extend -fdiagnostics-path-format=separate-events so that with
8737         -fdiagnostics-show-path-depths it prints fndecls as well as stack
8738         depths.
8740 2022-06-15  David Malcolm  <dmalcolm@redhat.com>
8742         * value-relation.h: Add "final" and "override" to relation_oracle
8743         vfunc implementations as appropriate.
8745 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
8747         PR middle-end/105975
8748         Revert everything apart from the expand_fn_using_insn and
8749         expand_direct_optab_fn changes from:
8750         * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
8751         (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
8752         (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
8753         (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
8754         * internal-fn.h (direct_internal_fn_info::directly_mapped): New
8755         member variable.
8756         (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
8757         (direct_internal_fn_p): Also return true for internal functions
8758         that map directly to instructions defined target-insns.def.
8759         (direct_internal_fn): Adjust comment accordingly.
8760         * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
8761         (vectorizable_optab2): New local macros.
8762         (not_direct): Initialize directly_mapped.
8763         (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
8764         (gather_load_direct, len_load_direct, mask_store_direct)
8765         (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
8766         (vec_cond_direct, scatter_store_direct, len_store_direct)
8767         (vec_set_direct, unary_direct, binary_direct, ternary_direct)
8768         (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
8769         (while_direct, fold_extract_direct, fold_left_direct)
8770         (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
8771         (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
8772         (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
8773         (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
8774         (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
8775         (direct_internal_fn_types): Handle functions that map to instructions
8776         defined in target-insns.def.
8777         (direct_internal_fn_types): Likewise.
8778         (direct_internal_fn_supported_p): Likewise.
8779         (internal_fn_expanders): Likewise.
8780         (expand_fn_using_insn): New function,
8781         split out and adapted from...
8782         (expand_direct_optab_fn): ...here.
8783         (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
8784         (expand_GOMP_SIMT_EXIT): Likewise.
8785         (expand_GOMP_SIMT_LANE): Likewise.
8786         (expand_GOMP_SIMT_LAST_LANE): Likewise.
8787         (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
8788         (expand_GOMP_SIMT_VOTE_ANY): Likewise.
8789         (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
8790         (expand_GOMP_SIMT_XCHG_IDX): Likewise.
8792 2022-06-15  Richard Earnshaw  <rearnsha@arm.com>
8794         PR target/105981
8795         * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
8796         to first_reg and second_reg respectively.  Initialize them correctly
8797         when generating big-endian code.
8799 2022-06-15  Richard Earnshaw  <rearnsha@arm.com>
8801         PR target/105974
8802         * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
8804 2022-06-15  Richard Biener  <rguenther@suse.de>
8806         PR tree-optimization/105971
8807         * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
8808         FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
8809         to leak less surprising alias results.
8811 2022-06-15  Richard Biener  <rguenther@suse.de>
8813         PR tree-optimization/105969
8814         * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
8815         by zero in overflow check.
8817 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
8819         PR tree-optimization/105254
8820         PR tree-optimization/105940
8821         Revert:
8822         * config/aarch64/aarch64.cc
8823         (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
8824         loop_vec_info as argument.  Restrict the unroll factor to values
8825         that divide the VF.
8826         (aarch64_vector_costs::finish_cost): Update call accordingly.
8828 2022-06-15  Richard Sandiford  <richard.sandiford@arm.com>
8830         * read-rtl.cc (find_int): Substitute symbolic constants
8831         before converting the string to an integer.
8833 2022-06-15  Roger Sayle  <roger@nextmovesoftware.com>
8834             Richard Biener  <rguenther@suse.de>
8836         * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
8837         left shifts by a constant when the result is truncated, and the
8838         shift constant is well-defined.
8839         * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
8840         support for rotations of signed integer types, by lowering
8841         using unsigned vector shifts.
8843 2022-06-15  liuhongt  <hongtao.liu@intel.com>
8845         PR target/105953
8846         * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
8847         operands[3].
8849 2022-06-14  Surya Kumari Jangala  <jskumari@linux.ibm.com>
8851         PR rtl-optimization/105041
8852         * regrename.cc (check_new_reg_p): Use nregs value from du chain.
8854 2022-06-14  Segher Boessenkool  <segher@kernel.crashing.org>
8856         * config/rs6000/vsx.md (VS_scalar): Delete.
8857         (rest of file): Adjust.
8859 2022-06-14  Jan Hubicka  <hubicka@ucw.cz>
8861         PR ipa/105739
8862         * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
8864 2022-06-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
8866         * config/riscv/bitmanip.md: Add split to handle opportunities
8867         for slli + sh[123]add.uw
8869 2022-06-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
8871         * config/riscv/predicates.md (consecutive_bits_operand):
8872         Implement new predicate.
8874 2022-06-14  Richard Biener  <rguenther@suse.de>
8876         PR tree-optimization/105946
8877         * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
8878         Do not look at arguments not specified in the function call.
8880 2022-06-14  Richard Biener  <rguenther@suse.de>
8882         PR middle-end/105965
8883         * match.pd (view_convert CONSTRUCTOR): Handle single-element
8884         CTOR case.
8886 2022-06-14  Eric Botcazou  <ebotcazou@adacore.com>
8888         * warning-control.cc (copy_warning) [generic version]: Do not erase
8889         the warning data of the destination location when the no-warning
8890         bit is not set on the source.
8891         (copy_warning) [tree version]: Return early if TO is equal to FROM.
8892         (copy_warning) [gimple version]: Likewise.
8894 2022-06-14  Kewen Lin  <linkw@linux.ibm.com>
8896         PR tree-optimization/105940
8897         * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
8898         applying suggested_unroll_factor after start_over.
8900 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8902         * config/xtensa/predicates.md (shifted_mask_operand):
8903         New predicate.
8904         * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
8905         New insn-and-split pattern.
8906         (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
8907         *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
8908         *masktrue_const_shifted_mask): Ditto.
8910 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8912         * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
8914 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8916         * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
8917         Remove the first argument.
8918         (xtensa_emit_bit_branch): Remove it because now called only from the
8919         output statement of *bittrue insn pattern.
8920         * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
8921         argument 'p_invert', and make so that the condition is reversed by
8922         itself as needed.
8923         (xtensa_expand_conditional_branch): Share the common path, and remove
8924         condition inversion code.
8925         (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
8926         "false side" pattern.
8927         (xtensa_emit_bit_branch): Remove it because of the abovementioned
8928         reason, and move the function body to *bittrue insn pattern.
8929         * config/xtensa/xtensa.md (*bittrue): Transplant the output
8930         statement from removed xtensa_emit_bit_branch().
8931         (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
8932         insn patterns.
8934 2022-06-14  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8936         * config/xtensa/predicates.md (logical_shift_operator,
8937         xtensa_shift_per_byte_operator): New predicates.
8938         * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
8939         New prototype.
8940         * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
8941         New helper function for funnel shift patterns.
8942         * config/xtensa/xtensa.md (ior_op): New code iterator.
8943         (*ashlsi3_1): Replace with new split pattern.
8944         (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
8945         (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
8946         New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
8947         in order to omit unnecessary bitwise AND operation.
8948         (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
8949         *shlrd_per_byte_<code>_omit_AND):
8950         New insn patterns for funnel shifts.
8952 2022-06-13  Jason Merrill  <jason@redhat.com>
8954         * tree-cfg.cc (pass_warn_function_return::execute): Also check
8955         BUILT_IN_TRAP.
8957 2022-06-13  Maciej W. Rozycki  <macro@embecosm.com>
8959         * config/riscv/riscv.md (length): Remove the explicit setting
8960         for "fcmp".
8962 2022-06-13  H.J. Lu  <hjl.tools@gmail.com>
8964         * common/config/i386/cpuinfo.h (get_available_features): Require
8965         AVX for F16C and VAES.
8967 2022-06-13  Uroš Bizjak  <ubizjak@gmail.com>
8969         PR target/105927
8970         * config/i386/predicates.md (register_no_elim_operand):
8971         Return true for subreg of a memory operand.
8973 2022-06-13  Richard Sandiford  <richard.sandiford@arm.com>
8975         * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
8976         (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
8977         (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
8978         (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
8979         * internal-fn.h (direct_internal_fn_info::directly_mapped): New
8980         member variable.
8981         (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
8982         (direct_internal_fn_p): Also return true for internal functions
8983         that map directly to instructions defined target-insns.def.
8984         (direct_internal_fn): Adjust comment accordingly.
8985         * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
8986         (vectorizable_optab2): New local macros.
8987         (not_direct): Initialize directly_mapped.
8988         (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
8989         (gather_load_direct, len_load_direct, mask_store_direct)
8990         (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
8991         (vec_cond_direct, scatter_store_direct, len_store_direct)
8992         (vec_set_direct, unary_direct, binary_direct, ternary_direct)
8993         (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
8994         (while_direct, fold_extract_direct, fold_left_direct)
8995         (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
8996         (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
8997         (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
8998         (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
8999         (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
9000         (direct_internal_fn_types): Handle functions that map to instructions
9001         defined in target-insns.def.
9002         (direct_internal_fn_types): Likewise.
9003         (direct_internal_fn_supported_p): Likewise.
9004         (internal_fn_expanders): Likewise.
9006 2022-06-13  Richard Sandiford  <richard.sandiford@arm.com>
9008         * internal-fn.cc (expand_fn_using_insn): New function,
9009         split out and adapted from...
9010         (expand_direct_optab_fn): ...here.
9011         (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
9012         (expand_GOMP_SIMT_EXIT): Likewise.
9013         (expand_GOMP_SIMT_LANE): Likewise.
9014         (expand_GOMP_SIMT_LAST_LANE): Likewise.
9015         (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
9016         (expand_GOMP_SIMT_VOTE_ANY): Likewise.
9017         (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
9018         (expand_GOMP_SIMT_XCHG_IDX): Likewise.
9020 2022-06-13  Jakub Jelinek  <jakub@redhat.com>
9022         * omp-expand.cc (expand_omp_target): Remap user provided
9023         device clause arguments, -1 to -2 and -2 to -3, either
9024         at compile time if constant, or at runtime.
9026 2022-06-13  Eric Botcazou  <ebotcazou@adacore.com>
9028         * common.opt (finstrument-functions): Set explicit value.
9029         (-finstrument-functions-once): New option.
9030         * doc/invoke.texi (Program Instrumentation Options): Document it.
9031         * gimplify.cc (build_instrumentation_call): New static function.
9032         (gimplify_function_tree): Call it to emit the instrumentation calls
9033         if -finstrument-functions[-once] is specified.
9035 2022-06-13  Eric Botcazou  <ebotcazou@adacore.com>
9037         * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
9038         * gimple.h (gimple_set_location): Do not copy warning data from
9039         the previous location when it is UNKNOWN_LOCATION.
9040         * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
9042 2022-06-13  Jakub Jelinek  <jakub@redhat.com>
9044         PR target/105911
9045         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
9046         *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
9047         (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
9048         operands[3] unmodified.
9050 2022-06-12  Simon Wright  <simon@pushface.org>
9052         PR target/104871
9053         * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
9054         version is darwin20 (macOS 11) or greater, truncate the version to the
9055         major number.
9057 2022-06-12  Mark Mentovai  <mark@mentovai.com>
9059         * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
9061 2022-06-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9063         PR target/96463
9064         * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
9065         (svld1rq_impl::fold): Define.
9066         * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
9067         op_mode and op_vec_flags.
9068         (aarch64_evpc_reencode): Initialize newd.op_mode and
9069         newd.op_vec_flags.
9070         (aarch64_evpc_sve_dup): New function.
9071         (aarch64_expand_vec_perm_const_1): Gate existing calls to
9072         aarch64_evpc_* functions under d->vmode == d->op_mode,
9073         and call aarch64_evpc_sve_dup.
9074         (aarch64_vectorize_vec_perm_const): Remove assert
9075         d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
9076         * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
9077         vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
9078         constant.
9080 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9082         * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
9083         New prototype.
9084         * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
9085         xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
9086         xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
9087         New backend functions that process the abovementioned logic.
9088         (xtensa_emit_move_sequence): Revert the previous changes.
9089         * config/xtensa/xtensa.md: New split patterns for integer
9090         and floating-point, as the frontend part.
9092 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9094         * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
9095         for ABS and NEG, add missing case for BSWAP and CLRSB, and
9096         double the costs for integer divisions using libfuncs if
9097         optimizing for speed, in order to take advantage of fast constant
9098         division by multiplication.
9099         (TARGET_INSN_COST): New macro definition.
9100         (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
9101         calculating relative costs of a RTL insns, for both of speed and
9102         size.
9103         * config/xtensa/xtensa.md (return, nop, trap): Correct values of
9104         the attribute "length" that depends on TARGET_DENSITY.
9105         (define_asm_attributes, blockage, frame_blockage): Add missing
9106         attributes.
9107         * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
9108         dependent option, however, preparatory work for now.
9110 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9112         * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
9113         Pass through the block length / loop count conditions if
9114         zero-overhead looping is configured and active,
9116 2022-06-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9118         * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
9119         Split into individual signedness, in order to use libcall
9120         "__umulsidi3" but not the other.
9121         (<u>mulhisi3): Merge into one by using code iterator.
9122         (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
9124 2022-06-11   Michael Meissner  <meissner@linux.ibm.com>
9126         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
9127         not generate block copies with vector pair instructions if we are
9128         tuning for power10.
9130 2022-06-10  Roger Sayle  <roger@nextmovesoftware.com>
9132         PR rtl-optimization/7061
9133         * expr.cc (emit_group_store): For groups that consist of a single
9134         scalar integer register that hold a complex mode value, use
9135         gen_lowpart to generate a SUBREG to "view_convert" to the complex
9136         mode.  For modes of different sizes, first convert to an integer
9137         mode of the appropriate size.
9139 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9141         * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
9143 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9145         * config/xtensa/xtensa.md (*andsi3_bitcmpl):
9146         New insn_and_split pattern.
9148 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9150         * config/xtensa/xtensa.md (one_cmplsi2):
9151         Rearrange as an insn_and_split pattern.
9153 2022-06-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
9155         * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
9157 2022-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
9159         * config/rs6000/rs6000.md (FP_ISA3): Delete.
9160         (float<QHI:mode><FP_ISA3:mode>2): Rename to...
9161         (float<QHI:mode><SFDF:mode>2): ... this.  Adjust.
9162         (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
9163         (*float<QHI:mode><SFDF:mode>2_internal): ... this.  Adjust.
9164         (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
9165         (floatuns<QHI:mode><SFDF:mode>2): ... this.  Adjust.
9166         (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
9167         (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this.  Adjust.
9169 2022-06-09  Maciej W. Rozycki  <macro@embecosm.com>
9171         * config/riscv/riscv.md
9172         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
9173         (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
9174         rather than space with FSFLAGS.
9176 2022-06-09  Tobias Burnus  <tobias@codesourcery.com>
9178         * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
9179         omp_discover_declare_target_fn_r): Don't walk reverse-offload
9180         target regions.
9182 2022-06-09  Jakub Jelinek  <jakub@redhat.com>
9184         * doc/invoke.texi (-Waddress): Fix a typo in small example.
9185         Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
9187 2022-06-09  Cui,Lili  <lili.cui@intel.com>
9189         PR target/105493
9190         * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
9191         from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
9192         unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
9193         (icelake_cost): Ditto.
9194         (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
9195         stores and unaligned stores cost from {6, 6, 6, 10, 15} to
9196         {8, 8, 8, 10, 15}.
9198 2022-06-09  Haochen Gui  <guihaoc@gcc.gnu.org>
9200         * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
9201         and ior insns to one rotate and mask insn.
9202         (define_split for bswapdi register): Likewise.
9204 2022-06-08  Roger Sayle  <roger@nextmovesoftware.com>
9206         PR middle-end/105874
9207         * expr.cc (expand_expr_real_1) <normal_inner_ref>:  New local
9208         variable tem_modifier for calculating the expand_modifier enum to
9209         use for expanding tem.  If tem is a VAR_DECL, use EXPAND_MEMORY.
9211 2022-06-08  Max Filippov  <jcmvbkbc@gmail.com>
9213         PR target/105879
9214         * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
9215         to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
9216         'gen_highpart' bitwise semantics and fix order of highpart and
9217         lowpart depending on target endianness.
9219 2022-06-08  Chung-Ju Wu  <jasonwucj@gmail.com>
9221         * config/arm/arm-cpus.in (star-mc1): New cpu.
9222         * config/arm/arm-tables.opt: Regenerate.
9223         * config/arm/arm-tune.md: Regenerate.
9224         * doc/invoke.texi: Update docs.
9226 2022-06-08  liuhongt  <hongtao.liu@intel.com>
9228         PR target/105513
9229         PR target/105504
9230         * config/i386/i386.md (*movsi_internal): Change alternative
9231         from *v to ?v.
9232         (*movdi_internal): Ditto.
9233         * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
9234         to ?r.
9235         (*vec_extractv4sf_mem): Ditto.
9236         (*vec_extracthf): Ditto.
9238 2022-06-07  Richard Earnshaw  <rearnsha@arm.com>
9240         PR target/105090
9241         * config/arm/arm.cc (arm_bfi_1_p): New function.
9242         (arm_bfi_p): New function.
9243         (arm_rtx_costs_internal): Add costs for BFI idioms.
9244         (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
9245         * config/arm/constraints.md (Dj): New constraint.
9246         * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
9247         (insv_zero): Convert to an insn with a split.
9248         (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
9250 2022-06-07  liuhongt  <hongtao.liu@intel.com>
9252         PR target/105854
9253         * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
9254         from Yv to Yw.
9256 2022-06-07  Roger Sayle  <roger@nextmovesoftware.com>
9258         PR middle-end/105853
9259         PR target/105856
9260         * calls.cc (load_register_parameters): Call store_constructor
9261         and int_expr_size directly instead of expanding via expand_expr.
9262         * expr.cc (static void store_constructor): Don't prototype here.
9263         (static HOST_WIDE_INT int_expr_size): Likewise.
9264         (store_constructor): No longer static.
9265         (int_expr_size): Likewise, no longer static.
9266         * expr.h (store_constructor): Prototype here.
9267         (int_expr_size): Prototype here.
9269 2022-06-07  Jan Beulich  <jbeulich@suse.com>
9271         Revert:
9272         2022-06-03  Jan Beulich  <jbeulich@suse.com>
9274         * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
9275         * configure.ac: Check for objcopy, producing
9276         ORIGINAL_OBJCOPY_FOR_TARGET.
9277         * configure: Update accordingly.
9278         * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
9279         Handle objcopy.
9281 2022-06-07  Jakub Jelinek  <jakub@redhat.com>
9283         * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
9284         * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
9285         Adjust clause printing style depending on
9286         OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
9288 2022-06-07  Jan Beulich  <jbeulich@suse.com>
9290         * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
9291         Change type.
9292         * config/i386/i386-builtin-types.def: New function type
9293         (V4DI, V32QI, V32QI).
9294         * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
9295         V4DI_FTYPE_V32QI_V32QI.
9297 2022-06-07  Jan Beulich  <jbeulich@suse.com>
9299         * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
9300         into account for reg-only insns.
9302 2022-06-07  Roger Sayle  <roger@nextmovesoftware.com>
9304         * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
9305         IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
9306         TARGET_CMOVE's (scalar integer) conditional moves.
9307         * config/i386/sse.md (define_split): Recognize XOP's vpcmov
9308         from its equivalent (canonical) pxor;pand;pxor sequence.
9310 2022-06-07  Kewen Lin  <linkw@linux.ibm.com>
9312         * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
9313         parameter ORDER.
9315 2022-06-06  Andrew Stubbs  <ams@codesourcery.com>
9317         * config.in: Regenerate.
9318         * configure: Regenerate.
9319         * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
9321 2022-06-04  Roger Sayle  <roger@nextmovesoftware.com>
9323         PR middle-end/95126
9324         * calls.cc (load_register_parameters): When loading a suitable
9325         immediate_const_ctor_p VAR_DECL into a single word_mode register,
9326         construct it directly in a pseudo rather than read it (by parts)
9327         from memory.
9328         * expr.cc (int_expr_size): Make tree argument a const_tree.
9329         (immediate_const_ctor_p): Helper predicate.  Return true for
9330         simple constructors that may be materialized in a register.
9331         (expand_expr_real_1) [VAR_DECL]: When expanding a constant
9332         VAR_DECL with a suitable immediate_const_ctor_p constructor
9333         use store_constructor to materialize it directly in a pseudo.
9334         * expr.h (immediate_const_ctor_p): Prototype here.
9335         * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
9336         VALUE argument from tree to const_tree.
9337         * varasm.h (initializer_constant_valid_for_bitfield_p): Update
9338         prototype.
9340 2022-06-04  Jakub Jelinek  <jakub@redhat.com>
9342         PR target/105825
9343         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
9344         *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
9345         bits of mask aren't all set, use operands[2] mode for the AND
9346         operation instead of always SImode.
9348 2022-06-03  Jakub Jelinek  <jakub@redhat.com>
9350         PR middle-end/30314
9351         PR middle-end/105777
9352         * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
9353         x > stype_max / cst || x < stype_min / cst): New simplification.
9355 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
9357         * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
9358         Value_Range.
9359         * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
9360         * value-range.h (Value_Range::Value_Range): Implement copy
9361         constructor for Value_Range.
9363 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
9365         * value-range.h (struct vrange_traits): Remove.
9366         (is_a): Rewrite without vrange_traits.
9367         (as_a): Same.
9369 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
9371         * value-range.cc (vrange::contains_p): Implement.
9372         (vrange::type): Return void.
9373         (vrange::supports_type_p): Implement.
9374         (irange::fits_p): Same.
9375         (vrange::set_undefined): Same.
9376         (irange::set_nonnegative): Same.
9377         (vrange::set_varying): Same.
9378         (vrange::union_): Same.
9379         (unsupported_range::set): Move to vrange.
9380         (unsupported_range::type): Move to vrange.
9381         (vrange::intersect): Implement for varying and undefined.
9382         (vrange::zero_p): Implement.
9383         (unsupported_range::supports_type_p): Move to vrange.
9384         (vrange::nonzero_p): Implement.
9385         (unsupported_range::set_undefined): Move to vrange.
9386         (unsupported_range::set_varying): Same.
9387         (unsupported_range::dump): Same.
9388         (unsupported_range::union_): Same.  Implement for varying and
9389         undefined.
9390         (unsupported_range::intersect): Move to vrange.
9391         (unsupported_range::zero_p): Same.
9392         (unsupported_range::nonzero_p): Same.
9393         (unsupported_range::set_nonzero): Same.
9394         (unsupported_range::set_zero): Same.
9395         (unsupported_range::set_nonnegative): Same.
9396         (unsupported_range::fits_p): Same.
9397         * value-range.h (class vrange): Remove abstract markers for most
9398         methods.
9399         (class unsupported_range): Remove most methods as they will now be
9400         inherited from vrange.
9402 2022-06-03  Aldy Hernandez  <aldyh@redhat.com>
9404         * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
9405         an object level supports_type_p for irange and a static
9406         Value_Range::supports_type_p.
9407         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
9408         (fold_using_range::range_of_address): Same.
9409         (fold_using_range::range_of_builtin_call): Same.
9410         * gimple-range-fold.h (gimple_range_type): Same.
9411         (gimple_range_ssa_p): Same.
9412         * gimple-range-path.cc (path_range_query::internal_range_of_expr):
9413         Same.
9414         (path_range_query::range_of_stmt): Same.
9415         (path_range_query::add_to_imports): Same.
9416         * gimple-range.cc (gimple_ranger::range_on_edge): Same.
9417         (gimple_ranger::export_global_ranges): Same.
9418         * gimple-ssa-evrp-analyze.cc
9419         (evrp_range_analyzer::record_ranges_from_phis):  Same.
9420         * range-op.cc (range_operator::wi_fold): Same.
9421         (range_operator::fold_range): Same.
9422         * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
9423         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
9424         (evaluate_control_stmt_using_entry_checks): Same.
9425         * tree-ssa-threadedge.cc
9426         (hybrid_jt_simplifier::compute_ranges_from_state): Same.
9427         * tree-vrp.cc (supported_types_p): Same.
9428         * value-query.cc (range_query::value_of_expr): Same.
9429         (range_query::value_on_edge): Same.
9430         (range_query::value_of_stmt): Same.
9431         (range_query::get_tree_range): Same.
9432         (get_range_global): Same.
9433         (global_range_query::range_of_expr): Same.
9434         * value-range-equiv.h (class value_range_equiv): Same.
9435         * value-range.cc (irange::supports_type_p): Same.
9436         (unsupported_range::supports_type_p): Same.
9437         * value-range.h (enum value_range_discriminator): Same.
9438         (Value_Range::init): Same.
9439         (Value_Range::supports_type_p): Same.
9440         (irange::supports_type_p): Same.
9441         (irange::supports_p): Same.
9442         (vrange::supports_type_p): Same.
9443         (vrange_allocator::alloc_vrange): Same.
9445 2022-06-03  Jan Beulich  <jbeulich@suse.com>
9447         * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
9448         * configure.ac: Check for objcopy, producing
9449         ORIGINAL_OBJCOPY_FOR_TARGET.
9450         * configure: Update accordingly.
9451         * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
9452         Handle objcopy.
9454 2022-06-03  Jan Beulich  <jbeulich@suse.com>
9456         * config/i386/mmx.md (mmx_psadbw): Convert to expander.
9457         (*mmx_psadbw): New. Mark as commutative.
9458         * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
9459         (*<sse2_avx2>_psadbw): New. Mark as commutative.
9461 2022-06-03  Alexandre Oliva  <oliva@adacore.com>
9463         PR tree-optimization/105665
9464         PR tree-optimization/100810
9465         * tree-ssa-loop-ivopts.cc
9466         (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
9467         (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
9468         (find_ssa_undef): Check precomputed flag and intervening uses.
9469         (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
9471 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
9473         * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
9474         tree-logical-location.o.
9475         (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
9476         (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
9477         * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
9478         (sarif-stderr, sarif-file): New enum values.
9479         * diagnostic-client-data-hooks.h: New file.
9480         * diagnostic-format-sarif.cc: New file.
9481         * diagnostic-path.h (enum diagnostic_event::verb): New enum.
9482         (enum diagnostic_event::noun): New enum.
9483         (enum diagnostic_event::property): New enum.
9484         (struct diagnostic_event::meaning): New struct.
9485         (diagnostic_event::get_logical_location): New vfunc.
9486         (diagnostic_event::get_meaning): New vfunc.
9487         (simple_diagnostic_event::get_logical_location): New vfunc impl.
9488         (simple_diagnostic_event::get_meaning): New vfunc impl.
9489         * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
9490         (diagnostic_initialize): Initialize m_client_data_hooks.
9491         (diagnostic_finish): Clean up m_client_data_hooks.
9492         (diagnostic_event::meaning::dump_to_pp): New.
9493         (diagnostic_event::meaning::maybe_get_verb_str): New.
9494         (diagnostic_event::meaning::maybe_get_noun_str): New.
9495         (diagnostic_event::meaning::maybe_get_property_str): New.
9496         (get_cwe_url): Make non-static.
9497         (diagnostic_output_format_init): Handle
9498         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
9499         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
9500         * diagnostic.h (enum diagnostics_output_format): Add
9501         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
9502         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
9503         (class diagnostic_client_data_hooks): New forward decl.
9504         (class logical_location): New forward decl.
9505         (diagnostic_context::m_client_data_hooks): New field.
9506         (diagnostic_output_format_init_sarif_stderr): New decl.
9507         (diagnostic_output_format_init_sarif_file): New decl.
9508         (get_cwe_url): New decl.
9509         * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
9510         sarif-file.
9511         * doc/sourcebuild.texi (Scan a particular file): Add
9512         scan-sarif-file and scan-sarif-file-not.
9513         * langhooks-def.h (lhd_get_sarif_source_language): New decl.
9514         (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
9515         (LANG_HOOKS_INITIALIZER): Add
9516         LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
9517         * langhooks.cc (lhd_get_sarif_source_language): New.
9518         * langhooks.h (lang_hooks::get_sarif_source_language): New field.
9519         * logical-location.h: New file.
9520         * plugin.cc (struct for_each_plugin_closure): New.
9521         (for_each_plugin_cb): New.
9522         (for_each_plugin): New.
9523         * plugin.h (for_each_plugin): New decl.
9524         * tree-diagnostic-client-data-hooks.cc: New file.
9525         * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
9526         (tree_diagnostics_defaults): Populate m_client_data_hooks.
9527         * tree-logical-location.cc: New file.
9528         * tree-logical-location.h: New file.
9530 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
9532         * common.opt (fdiagnostics-format=): Add json-stderr and json-file
9533         to description.
9534         (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
9535         (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
9536         (diagnostics_output_format): Add json-stderr and json-file.
9537         * diagnostic-format-json.cc (json_flush_to_file): New.
9538         (json_final_cb): Convert to...
9539         (json_flush_to_file): ...this, ...
9540         (json_stderr_final_cb): ...this, and...
9541         (json_file_final_cb): ...this.
9542         (diagnostic_output_format_init): Move to diagnostic.cc.
9543         (json_output_base_file_name): New.
9544         (diagnostic_output_format_init_json): New.
9545         (diagnostic_output_format_init_json_stderr): New.
9546         (diagnostic_output_format_init_json_file): New.
9547         * diagnostic.cc (diagnostic_output_format_init): Move here from
9548         diagnostic-format-json.cc; update for changes to enum.
9549         * diagnostic.h (enum diagnostics_output_format): Rename
9550         DIAGNOSTICS_OUTPUT_FORMAT_JSON to
9551         DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
9552         DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
9553         (diagnostic_output_format_init): Add base_file_name param.
9554         (diagnostic_output_format_init_json_stderr): New decl.
9555         (diagnostic_output_format_init_json_file): New dec.
9556         * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
9557         "json-file".  Rewrite so that the existing "json" is a synonym of
9558         "json-stderr".
9559         * gcc.cc (driver_handle_option): Pass dump_base_name to
9560         diagnostic_output_format_init.
9561         * opts.cc (common_handle_option): Likewise.
9563 2022-06-02  David Malcolm  <dmalcolm@redhat.com>
9565         * json.cc (string::print): Fix escaping of '\'.
9567 2022-06-02  Philipp Tomsich  <philipp.tomsich@vrull.eu>
9569         * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
9570         (-1 << 31) for the single-bit case, when operating on (1 << 31)
9571         in SImode.
9572         * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
9573         any single-bit value, moving the special case for (1 << 31) to
9574         riscv_build_integer_1 (in riscv.c).
9576 2022-06-02  Roger Sayle  <roger@nextmovesoftware.com>
9578         PR target/105791
9579         * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
9580         (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
9582 2022-06-02  Jakub Jelinek  <jakub@redhat.com>
9584         PR target/105778
9585         * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
9586         from AND and its operands and just verify operands[2] has HImode,
9587         SImode or for TARGET_64BIT DImode.  Allow operands[3] to be a mask
9588         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
9589         just throw away the masking.  Use force_reg before calling
9590         gen_lowpart.
9591         (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
9592         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
9593         just throw away the masking.
9594         (*ashl<mode>3_doubleword): Rename to ...
9595         (ashl<mode>3_doubleword): ... this.
9596         (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
9597         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
9598         Use force_reg before calling gen_lowpart.
9599         (*<insn><mode>3_mask): Likewise.
9600         (*<insn><dwi>3_doubleword_mask): Likewise.  Allow operands[3] to be
9601         a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
9602         case just throw away the masking.  Use force_reg before calling
9603         gen_lowpart.
9604         (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
9605         with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
9606         throw away the masking.
9607         (*<insn><mode>3_doubleword): Rename to ...
9608         (<insn><mode>3_doubleword): ... this.
9609         (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
9610         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
9611         Use force_reg before calling gen_lowpart.
9612         (splitter after it): Remove :SI from AND and its operands and just
9613         verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
9614         (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
9615         operands and just verify operands[1] has HImode, SImode or for
9616         TARGET_64BIT DImode.  Use force_reg before calling gen_lowpart.
9617         (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
9618         * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
9619         ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
9621 2022-06-02  Richard Biener  <rguenther@suse.de>
9623         PR tree-optimization/101668
9624         * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
9625         for vector types with compatible lane types.
9626         (vect_build_slp_tree_2): Deal with this.
9627         (vect_add_slp_permutation): Adjust.  Emit lowpart/concat
9628         special cases without VEC_PERM.
9629         (vectorizable_slp_permutation): Select the operand vector
9630         type and relax requirements.  Handle identity permutes
9631         with mismatching operand types.
9632         * optabs-query.cc (can_vec_perm_const_p): Only allow variable
9633         permutes for op_mode == mode.
9635 2022-06-02  Richard Biener  <rguenther@suse.de>
9637         PR tree-optimization/105802
9638         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
9639         Make sure to also compute the range in the type of the switch index.
9641 2022-06-01  David Seifert  <soap@gentoo.org>
9643         PR plugins/95648
9644         * configure: Regenerate.
9646 2022-06-01  H.J. Lu  <hjl.tools@gmail.com>
9648         PR rtl-optimization/105638
9649         * df-core.cc (df_find_single_def_src): Moved and renamed from
9650         find_single_def_src in loop-iv.cc.  Change the argument to rtx
9651         and use rtx_equal_p.  Return null for partial or conditional
9652         defs.
9653         * df.h (df_find_single_def_src): New prototype.
9654         * dse.cc (record_store): Use the constant source if the source
9655         register is set only once.
9656         * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
9657         (replace_single_def_regs): Replace find_single_def_src with
9658         df_find_single_def_src.
9660 2022-06-01  Wilco Dijkstra  <wilco.dijkstra@arm.com>
9662         * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
9663         selected_tune.
9664         (explicit_arch): Rename to selected_arch.
9665         (x_aarch64_override_tune_string): Remove.
9666         (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
9667         (aarch64_override_tune_string): Add Save so it gets saved/restored.
9668         * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
9669         * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
9670         (processor): Remove archtecture_version field.
9671         (selected_arch): Remove global.
9672         (selected_cpu): Remove global.
9673         (selected_tune): Remove global.
9674         (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
9675         (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
9676         (aarch64_override_options): Further simplify code to only set
9677         selected_arch and selected_tune globals.
9678         (aarch64_option_save): Remove now that target options are saved.
9679         (aarch64_option_restore): Remove redundant target option restores.
9680         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
9681         AARCH64_ISA_V9.
9682         * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
9683         * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
9684         (aarch64_ra_sign_key): Remove.
9686 2022-06-01  Jakub Jelinek  <jakub@redhat.com>
9688         PR middle-end/30314
9689         * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
9690         x > ~(utype)0 / cst): New simplification.
9692 2022-06-01  Richard Biener  <rguenther@suse.de>
9694         PR tree-optimization/105786
9695         * tree-loop-distribution.cc
9696         (loop_distribution::transform_reduction_loop): Only do strlen
9697         replacement for integer type reductions.
9699 2022-06-01  Jakub Jelinek  <jakub@redhat.com>
9701         PR tree-optimization/105770
9702         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
9703         CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
9705 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
9707         * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
9708         (sbr_vector::sbr_vector): Same.
9709         (sbr_vector::grow): Same.
9710         (sbr_vector::set_bb_range): Same.
9711         (sbr_vector::get_bb_range): Same.
9712         (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
9713         (sbr_sparse_bitmap::set_bb_range): Same.
9714         (sbr_sparse_bitmap::get_bb_range): Same.
9715         (block_range_cache::set_bb_range): Same.
9716         (block_range_cache::get_bb_range): Same.
9717         (block_range_cache::dump): Same.
9718         (ssa_global_cache::get_global_range): Same.
9719         (ssa_global_cache::set_global_range): Same.
9720         (ssa_global_cache::clear): Same.
9721         (ssa_global_cache::dump): Same.
9722         (ranger_cache::get_global_range): Same.
9723         (ranger_cache::set_global_range): Same.
9724         (ranger_cache::range_of_def): Same.
9725         (ranger_cache::entry_range): Same.
9726         (ranger_cache::exit_range): Same.
9727         (ranger_cache::edge_range): Same.
9728         (ranger_cache::range_of_expr): Same.
9729         (ranger_cache::range_on_edge): Same.
9730         (ranger_cache::block_range): Same.
9731         (ranger_cache::propagate_cache): Same.
9732         (ranger_cache::fill_block_cache): Same.
9733         (ranger_cache::range_from_dom): Same.
9734         * gimple-range-cache.h: Same.
9735         * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
9736         Same.
9737         (gimple_outgoing_range::switch_edge_range): Same.
9738         (gimple_outgoing_range::edge_range_p): Same.
9739         * gimple-range-edge.h: Same.
9740         * gimple-range-fold.cc (fur_source::get_operand): Same.
9741         (fur_source::get_phi_operand): Same.
9742         (fur_edge::get_operand): Same.
9743         (fur_edge::get_phi_operand): Same.
9744         (fur_stmt::get_operand): Same.
9745         (fur_stmt::get_phi_operand): Same.
9746         (fur_list::fur_list): Same.
9747         (fur_list::get_operand): Same.
9748         (fur_list::get_phi_operand): Same.
9749         (fold_range): Same.
9750         (adjust_imagpart_expr): Same.
9751         (adjust_realpart_expr): Same.
9752         (gimple_range_adjustment): Same.
9753         (fold_using_range::fold_stmt): Same.
9754         (fold_using_range::range_of_range_op): Same.
9755         (fold_using_range::range_of_address): Same.
9756         (fold_using_range::range_of_phi): Same.
9757         (fold_using_range::range_of_call): Same.
9758         (fold_using_range::range_of_builtin_call): Same.
9759         (fold_using_range::range_of_builtin_int_call): Same.
9760         (fold_using_range::range_of_cond_expr): Same.
9761         (fur_source::register_outgoing_edges): Same.
9762         * gimple-range-fold.h (fold_range): Same.
9763         (gimple_range_type): Same.
9764         (gimple_range_ssa_p): Same.
9765         * gimple-range-gori.cc (gimple_range_calc_op1): Same.
9766         (gimple_range_calc_op2): Same.
9767         (gori_compute::compute_operand_range_switch): Same.
9768         (gori_compute::compute_operand_range): Same.
9769         (gori_compute::logical_combine): Same.
9770         (gori_compute::compute_logical_operands): Same.
9771         (gori_compute::compute_operand1_range): Same.
9772         (gori_compute::compute_operand2_range): Same.
9773         (gori_compute::compute_operand1_and_operand2_range): Same.
9774         (gori_compute::outgoing_edge_range_p): Same.
9775         (gori_compute::condexpr_adjust): Same.
9776         * gimple-range-gori.h (gimple_range_calc_op1): Same.
9777         (gimple_range_calc_op2): Same.
9778         * gimple-range-path.cc (path_range_query::get_cache): Same.
9779         (path_range_query::set_cache): Same.
9780         (path_range_query::range_on_path_entry): Same.
9781         (path_range_query::internal_range_of_expr): Same.
9782         (path_range_query::range_of_expr): Same.
9783         (path_range_query::ssa_range_in_phi): Same.
9784         (path_range_query::range_defined_in_block): Same.
9785         (path_range_query::compute_ranges_in_phis): Same.
9786         (path_range_query::compute_ranges_in_block): Same.
9787         (path_range_query::add_to_imports): Same.
9788         (path_range_query::range_of_stmt): Same.
9789         * gimple-range-path.h: Same.
9790         * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
9791         (gimple_infer_range::~side_effect_manager): Same.
9792         (gimple_infer_range::get_nonzero): Same.
9793         (gimple_infer_range::maybe_adjust_range): Same.
9794         (gimple_infer_range::add_range): Same.
9795         * gimple-range-infer.h: Same.
9796         * gimple-range-tests.cc: Same.
9797         * gimple-range-trace.cc (range_tracer::trailer): Same.
9798         (debug_seed_ranger): Same.
9799         * gimple-range-trace.h: Same.
9800         * gimple-range.cc (gimple_ranger::range_of_expr): Same.
9801         (gimple_ranger::range_on_entry): Same.
9802         (gimple_ranger::range_on_exit): Same.
9803         (gimple_ranger::range_on_edge): Same.
9804         (gimple_ranger::fold_range_internal): Same.
9805         (gimple_ranger::range_of_stmt): Same.
9806         (gimple_ranger::prefill_name): Same.
9807         (gimple_ranger::prefill_stmt_dependencies): Same.
9808         (gimple_ranger::export_global_ranges): Same.
9809         (gimple_ranger::dump_bb): Same.
9810         * gimple-range.h: Same.
9811         * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
9812         (memmodel_to_uhwi): Same.
9813         * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
9814         (determine_value_range): Same.
9815         (record_nonwrapping_iv): Same.
9816         (infer_loop_bounds_from_signedness): Same.
9817         (scev_var_range_cant_overflow): Same.
9818         * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
9819         * value-query.cc (range_query::range_on_edge): Same.
9820         (range_query::range_of_stmt): Same.
9821         (range_query::value_of_expr): Same.
9822         (range_query::value_on_edge): Same.
9823         (range_query::value_of_stmt): Same.
9824         (range_query::get_tree_range): Same.
9825         (update_global_range): Same.
9826         (get_range_global): Same.
9827         (gimple_range_global): Same.
9828         (global_range_query::range_of_expr): Same.
9829         (range_query::query_relation): Same.
9830         * value-query.h (gimple_range_global): Same.
9831         (update_global_range): Same.
9832         * vr-values.cc (vr_values::range_of_expr): Same.
9833         (bounds_of_var_in_loop): Same.
9834         (simplify_using_ranges::vrp_visit_cond_stmt): Same.
9835         * vr-values.h (class vr_values): Same.
9836         * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
9838 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
9840         * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
9841         vrange allocator.
9842         (sbr_vector::grow): Same.
9843         (sbr_vector::set_bb_range): Same.
9844         (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
9845         (sbr_sparse_bitmap::set_bb_range): Same.
9846         (block_range_cache::~block_range_cache): Same.
9847         (block_range_cache::set_bb_range): Same.
9848         (ssa_global_cache::ssa_global_cache): Same.
9849         (ssa_global_cache::~ssa_global_cache): Same.
9850         (ssa_global_cache::set_global_range): Same.
9851         * gimple-range-cache.h (block_range_cache): Same.
9852         (ssa_global_cache): Same.
9853         * gimple-range-edge.cc
9854         (gimple_outgoing_range::calc_switch_ranges): Same.
9855         * gimple-range-edge.h (gimple_outgoing_range): Same.
9856         * gimple-range-infer.cc (infer_range_manager::get_nonzero):
9857         Same.
9858         (infer_range_manager::add_range): Same.
9859         * gimple-range-infer.h (class infer_range_manager): Same.
9860         * value-range.h (class irange_allocator): Rename to...
9861         (class vrange_allocator): ...this.
9862         (irange_allocator::irange_allocator): New.
9863         (vrange_allocator::vrange_allocator): New.
9864         (irange_allocator::~irange_allocator): New.
9865         (vrange_allocator::~vrange_allocator): New.
9866         (irange_allocator::get_memory): Rename to...
9867         (vrange_allocator::alloc): ...this.
9868         (vrange_allocator::alloc_vrange): Rename from...
9869         (irange_allocator::allocate): ...this.
9870         (vrange_allocator::alloc_irange): New.
9872 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
9874         * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
9875         vrange and convert range_op_handler function calls to use the
9876         identically named object.
9877         * gimple-range-fold.cc (gimple_range_operand1): Same.
9878         (gimple_range_operand2): Same.
9879         (fold_using_range::fold_stmt): Same.
9880         (fold_using_range::range_of_range_op): Same.
9881         (fold_using_range::range_of_builtin_ubsan_call): Same.
9882         (fold_using_range::relation_fold_and_or): Same.
9883         (fur_source::register_outgoing_edges): Same.
9884         * gimple-range-fold.h (gimple_range_handler): Remove.
9885         * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
9886         (gimple_range_calc_op2): Same.
9887         (range_def_chain::get_def_chain): Same.
9888         (gori_compute::compute_operand_range): Same.
9889         (gori_compute::condexpr_adjust): Same.
9890         * gimple-range.cc (gimple_ranger::prefill_name): Same.
9891         (gimple_ranger::prefill_stmt_dependencies): Same.
9892         * range-op.cc (get_bool_state): Same.
9893         (class operator_equal): Add using clause.
9894         (class operator_not_equal): Same.
9895         (class operator_lt): Same.
9896         (class operator_le): Same.
9897         (class operator_gt): Same.
9898         (class operator_ge): Same.
9899         (class operator_plus): Same.
9900         (class operator_minus): Same.
9901         (class operator_mult): Same.
9902         (class operator_exact_divide): Same.
9903         (class operator_lshift): Same.
9904         (class operator_rshift): Same.
9905         (class operator_cast): Same.
9906         (class operator_logical_and): Same.
9907         (class operator_bitwise_and): Same.
9908         (class operator_logical_or): Same.
9909         (class operator_bitwise_or): Same.
9910         (class operator_bitwise_xor): Same.
9911         (class operator_trunc_mod): Same.
9912         (class operator_logical_not): Same.
9913         (class operator_bitwise_not): Same.
9914         (class operator_cst): Same.
9915         (class operator_identity): Same.
9916         (class operator_unknown): Same.
9917         (class operator_abs): Same.
9918         (class operator_negate): Same.
9919         (class operator_addr_expr): Same.
9920         (class pointer_or_operator): Same.
9921         (operator_plus::op1_range): Adjust for vrange.
9922         (operator_minus::op1_range): Same.
9923         (operator_mult::op1_range): Same.
9924         (operator_cast::op1_range): Same.
9925         (operator_bitwise_not::fold_range): Same.
9926         (operator_negate::fold_range): Same.
9927         (range_op_handler): Rename to...
9928         (get_handler): ...this.
9929         (range_op_handler::range_op_handler): New.
9930         (range_op_handler::fold_range): New.
9931         (range_op_handler::op1_range): New.
9932         (range_op_handler::op2_range): New.
9933         (range_op_handler::lhs_op1_relation): New.
9934         (range_op_handler::lhs_op2_relation): New.
9935         (range_op_handler::op1_op2_relation): New.
9936         (range_cast): Adjust for vrange.
9937         * range-op.h (range_op_handler): Remove function.
9938         (range_cast): Adjust for vrange.
9939         (class range_op_handler): New.
9940         (get_bool_state): Adjust for vrange.
9941         (empty_range_varying): Same.
9942         (relop_early_resolve): Same.
9943         * tree-data-ref.cc (compute_distributive_range): Same.
9944         * tree-vrp.cc (get_range_op_handler): Remove.
9945         (range_fold_binary_symbolics_p): Use range_op_handler class
9946         instead of get_range_op_handler.
9947         (range_fold_unary_symbolics_p): Same.
9948         (range_fold_binary_expr): Same.
9949         (range_fold_unary_expr): Same.
9950         * value-query.cc (range_query::get_tree_range): Adjust for vrange.
9952 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
9954         * gimple-range-fold.h (gimple_range_type): Check type before
9955         calling supports_type_p.
9956         * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
9957         * value-query.cc (range_query::get_tree_range): Same.
9958         * value-range.cc (Value_Range::lower_bound): New.
9959         (Value_Range::upper_bound): New.
9960         (Value_Range::dump): New.
9961         * value-range.h (class Value_Range): New.
9962         (irange::supports_type_p): Do not check if type is non-zero.
9964 2022-06-01  Aldy Hernandez  <aldyh@redhat.com>
9966         * value-range-equiv.cc (value_range_equiv::set): New.
9967         * value-range-equiv.h (class value_range_equiv): Make set method
9968         virtual.
9969         Remove default bitmap argument from set method.
9970         * value-range.cc (vrange::contains_p): New.
9971         (vrange::singleton_p): New.
9972         (vrange::operator=): New.
9973         (vrange::operator==): New.
9974         (irange::fits_p): Move to .cc file.
9975         (irange::set_nonnegative): New.
9976         (unsupported_range::unsupported_range): New.
9977         (unsupported_range::set): New.
9978         (unsupported_range::type): New.
9979         (unsupported_range::set_undefined): New.
9980         (unsupported_range::set_varying): New.
9981         (unsupported_range::dump): New.
9982         (unsupported_range::union_): New.
9983         (unsupported_range::intersect): New.
9984         (unsupported_range::zero_p): New.
9985         (unsupported_range::nonzero_p): New.
9986         (unsupported_range::set_nonzero): New.
9987         (unsupported_range::set_zero): New.
9988         (unsupported_range::set_nonnegative): New.
9989         (unsupported_range::fits_p): New.
9990         (irange::set): Call irange::set_undefined.
9991         (irange::verify_range): Check discriminator field.
9992         (irange::dump): Dump [irange] marker.
9993         (irange::debug): Move to...
9994         (vrange::debug): ...here.
9995         (dump_value_range): Accept vrange.
9996         (debug): Same.
9997         * value-range.h (enum value_range_discriminator): New.
9998         (class vrange): New.
9999         (class unsupported_range): New.
10000         (struct vrange_traits): New.
10001         (is_a): New.
10002         (as_a): New.
10003         (class irange): Inherit from vrange.
10004         (dump_value_range): Adjust for vrange.
10005         (irange::kind): Rename to...
10006         (vrange::kind): ...this.
10007         (irange::varying_p): Rename to...
10008         (vrange::varying_p): ...this.
10009         (irange::undefined_p): Rename to...
10010         (vrange::undefined_p): ...this.
10011         (irange::irange): Set discriminator.
10012         (irange::union_): Convert to irange before passing to irange
10013         method.
10014         (irange::intersect): Same.
10015         (vrange::supports_type_p): New.
10016         * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
10017         NULL bitmap argument to value_range_equiv::set.
10018         (vr_values::extract_range_basic): Same.
10020 2022-06-01  Richard Biener  <rguenther@suse.de>
10022         PR tree-optimization/105763
10023         * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
10024         Check gimple_range_ssa_p.
10026 2022-05-31  Jason Merrill  <jason@redhat.com>
10028         * Makefile.in (TAGS): Look at libcpp/*.cc.
10030 2022-05-31  Christophe Lyon  <christophe.lyon@arm.com>
10032         * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
10033         Prefix mode names with E_.
10035 2022-05-31  Alan Modra  <amodra@gmail.com>
10037         * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
10038         spelling of DW_AT_namelist_item.
10040 2022-05-31  Jakub Jelinek  <jakub@redhat.com>
10042         * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
10043         allow var to be private in the outer context.
10044         (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
10045         to build_outer_var_ref.
10047 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
10049         * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
10050         tieable with DImode on TARGET_64BIT, and SCmode tieable with
10051         V2SFmode, and DCmode with V2DFmode.
10053 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
10055         PR rtl-optimization/101617
10056         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
10057         special case (indicated by negate_cc_compare_p) to generate a
10058         -1/0 mask using neg;sbb.
10059         * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
10060         to generate an *x86_neg<mode>_ccc instruction.
10061         (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
10062         generate a *x86_mov<mode>cc_0_m1_neg instruction.
10064 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
10066         * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
10067         SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
10068         <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
10070 2022-05-30  Roger Sayle  <roger@nextmovesoftware.com>
10072         PR target/70321
10073         * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
10074         DI mode equality/inequality using XOR here.  Instead generate a
10075         COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
10076         * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
10077         gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
10078         (general_scalar_chain::convert_compare): New function to convert
10079         scalar equality/inequality comparison into vector operations.
10080         (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
10081         new convert_compare helper method.
10082         (convertible_comparion_p): Update to match doubleword COMPARE
10083         of two register, memory or integer constant operands.
10084         * config/i386/i386-features.h (general_scalar_chain::convert_compare):
10085         Prototype/declare member function here.
10086         * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
10087         only allow new doubleword modes for EQ and NE operators.
10088         (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
10089         doubleword comparison into a pair of XORs followed by an IOR to
10090         set the (zero) flags register, optimizing the XORs if possible.
10091         * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
10092         iterator; V_AVX is (currently) only used by ptest.
10093         (sse4_1 mode attribute): Update to support V1TI and V2TI.
10095 2022-05-30  Uroš Bizjak  <ubizjak@gmail.com>
10097         * config/i386/i386.md: Remove constraints when used with
10098         const_int_operand, const0_operand, const_1_operand, constm1_operand,
10099         const8_operand, const128_operand, const248_operand, const123_operand,
10100         const2367_operand, const1248_operand, const359_operand,
10101         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
10102         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
10103         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
10104         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
10105         const_0_to_255_mul_8_operand, const_1_to_31_operand,
10106         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
10107         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
10108         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
10109         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
10110         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
10111         const_24_to_27_operand and const_28_to_31_operand.
10112         * config/i386/mmx.md: Ditto.
10113         * config/i386/sse.md: Ditto.
10114         * config/i386/subst.md: Ditto.
10115         * config/i386/sync.md: Ditto.
10117 2022-05-30  Jan Beulich  <jbeulich@suse.com>
10119         * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
10120         arguments.
10122 2022-05-30  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10124         * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
10126 2022-05-29  Iain Sandoe  <iain@sandoe.co.uk>
10128         PR target/105599
10129         * config/darwin.h: Move versions-specific handling of multiply_defined
10130         from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
10132 2022-05-29  Eric Gallager  <egallager@gcc.gnu.org>
10134         PR other/82383
10135         * doc/sourcebuild.texi: Add entries for the c++tools,
10136         gotools, libbacktrace, libcc1, libcody, liboffloadmic,
10137         and libsanitizer directories. Remove entry for boehm-gc.
10138         Fix alphabetization for libquadmath.
10140 2022-05-28  Joel Holdsworth  <jholdsworth@nvidia.com>
10142         * config/avr/avr-mcus.def: Add device definitions.
10143         * doc/avr-mmcu.texi: Corresponding changes.
10144         * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
10145         device prefix.
10146         * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
10147         from leaking into cc1.
10149 2022-05-28  Vladimir Makarov  <vmakarov@gcc.gnu.org>
10151         PR target/103722
10152         * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
10153         is special) for various scenarios.
10155 2022-05-28  Iain Sandoe  <iain@sandoe.co.uk>
10157         * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
10158         describing this macro.
10160 2022-05-27  Richard Biener  <rguenther@suse.de>
10162         * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
10164 2022-05-27  Martin Jambor  <mjambor@suse.cz>
10166         PR ipa/105639
10167         * ipa-prop.cc (propagate_controlled_uses): Check type of the
10168         constant before adding a LOAD reference.
10170 2022-05-27  Jakub Jelinek  <jakub@redhat.com>
10172         * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
10173         to OMP_CLAUSE_ENTER.
10174         * tree.h (OMP_CLAUSE_ENTER_TO): Define.
10175         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
10176         OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
10177         * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
10178         instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
10179         "to" instead of "enter".
10180         * tree-nested.cc (convert_nonlocal_omp_clauses,
10181         convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
10182         OMP_CLAUSE_TO_DECLARE.
10184 2022-05-27  Richard Biener  <rguenther@suse.de>
10186         PR tree-optimization/105726
10187         * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
10188         Constrain array-of-flexarray case more.
10190 2022-05-27  Jakub Jelinek  <jakub@redhat.com>
10192         PR sanitizer/105729
10193         * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
10194         to (X &) z + w if -fsanitize=null during GENERIC folding.
10196 2022-05-27  Roger Sayle  <roger@nextmovesoftware.com>
10198         * match.pd (match_zero_one_valued_p): New predicate.
10199         (mult @0 @1): Use zero_one_valued_p for optimization to the
10200         expression "bit_and @0 @1".
10201         (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
10202         (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
10203         (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
10204         (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
10205         Remove three redundant transforms obsoleted by the three above.
10207 2022-05-27  Roger Sayle  <roger@nextmovesoftware.com>
10209         * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
10210         to split a combined "and;cmp" sequence into "not;test".
10212 2022-05-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
10214         * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
10215         (bswapsi2_internal): Revise the template and condition, and add
10216         detection code for preceding the same insn in order to omit a
10217         "SSAI 8" instruction of the latter.
10218         (bswapdi2): Suppress built-in insn expansion with the corresponding
10219         library call when optimizing for size.
10221 2022-05-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
10223         * config/xtensa/xtensa-protos.h
10224         (xtensa_expand_block_set_unrolled_loop,
10225         xtensa_expand_block_set_small_loop): New prototypes.
10226         * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
10227         xtensa_expand_block_set_unrolled_loop,
10228         xtensa_expand_block_set_small_loop): New functions.
10229         * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
10230         * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
10232 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
10234         * config/xtensa/xtensa.cc (xtensa_expand_block_move):
10235         Make instruction counting more accurate, and simplify emitting insns.
10237 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
10239         * config/xtensa/constraints.md (M, O): Use the macro.
10240         * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
10241         sext_fldsz_operand): Ditto.
10242         * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
10243         xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
10244         xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
10245         xtensa_expand_prologue): Ditto.
10246         * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
10248 2022-05-26  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
10250         * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
10251         * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
10252         Ditto.
10254 2022-05-25  Andrew MacLeod  <amacleod@redhat.com>
10256         * gimple-range-cache.cc: Adjust comments.
10257         * gimple-range-infer.cc: Adjust comments.
10258         * gimple-range-infer.h: Adjust comments.
10259         * gimple-range.cc: Adjust comments.
10261 2022-05-25  Andrew MacLeod  <amacleod@redhat.com>
10263         * Makefile.in (OBJS): Use gimple-range-infer.o.
10264         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
10265         (ranger_cache::range_from_dom): Rename var side_effect to infer.
10266         (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
10267         * gimple-range-cache.h: Include gimple-range-infer.h.
10268         (class ranger_cache): Adjust prototypes, use infer_range_manager.
10269         * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
10270         (gimple_infer_range::*): Rename from stmt_side_effects.
10271         (infer_range_manager::*): Rename from side_effect_manager.
10272         * gimple-range-side-effect.cc: Rename.
10273         * gimple-range-side-effect.h: Rename.
10274         * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
10275         (class gimple_infer_range): Rename from stmt_side_effects.
10276         (class infer_range_manager): Rename from side_effect_manager.
10277         * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
10278         from register_side_effects.
10279         * gimple-range.h (register_inferred_ranges): Adjust prototype.
10280         * range-op.h: Adjust comment.
10281         * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
10282         (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
10284 2022-05-25  Simon Cook  <simon.cook@embecosm.com>
10286         * config/riscv/arch-canonicalize: Only add mafd extension if
10287         base was rv32/rv64g.
10289 2022-05-25  Tobias Burnus  <tobias@codesourcery.com>
10291         * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
10293 2022-05-25  Jakub Jelinek  <jakub@redhat.com>
10295         PR sanitizer/105714
10296         * asan.cc (has_stmt_been_instrumented_p): For assignments which
10297         are both stores and loads, return true only if both destination
10298         and source have been instrumented.
10300 2022-05-25  Martin Liska  <mliska@suse.cz>
10301             Richard Biener   <rguenther@suse.de>
10303         * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
10304         * params.opt (max-unswitch-level): Remove.
10305         * doc/invoke.texi (max-unswitch-level): Likewise.
10306         * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
10307         gimplified expressions.
10308         * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
10309         (tree_may_unswitch_on): Rename to ...
10310         (find_unswitching_predicates_for_bb): ... this and handle
10311         switch statements.
10312         (get_predicates_for_bb): Likewise.
10313         (set_predicates_for_bb): Likewise.
10314         (init_loop_unswitch_info): Likewise.
10315         (tree_ssa_unswitch_loops): Prepare stuff before calling
10316         tree_unswitch_single_loop.
10317         (tree_unswitch_single_loop): Rework the function using
10318         pre-computed predicates and with a per original loop cost model.
10319         (merge_last): New.
10320         (add_predicate_to_path): Likewise.
10321         (find_range_for_lhs): Likewise.
10322         (simplify_using_entry_checks): Rename to ...
10323         (evaluate_control_stmt_using_entry_checks): ... this, handle
10324         switch statements and improve simplifications using ranger.
10325         (simplify_loop_version): Rework using
10326         evaluate_control_stmt_using_entry_checks.
10327         (evaluate_bbs): New.
10328         (evaluate_loop_insns_for_predicate): Likewise.
10329         (tree_unswitch_loop): Adjust to allow switch statements and
10330         pass in the edge to unswitch.
10331         (clean_up_after_unswitching): New.
10332         (pass_tree_unswitch::execute): Pass down fun.
10334 2022-05-24  Eugene Rozenfeld  <erozen@microsoft.com>
10336         * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
10337         counts for the epilog loop.
10339 2022-05-24  Martin Sebor  <msebor@redhat.com>
10340             Richard Biener  <rguenther@suse.de>
10342         PR middle-end/105604
10343         * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
10344         (get_origin_and_offset_r): Remove null handling.  Handle variable array
10345         sizes.
10346         (get_origin_and_offset): Handle null argument here.  Simplify.
10347         (alias_offset): Update comment.
10348         * pointer-query.cc (field_at_offset): Update comment.  Handle members
10349         of variable-length types.
10351 2022-05-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10353         * target.def (vec_perm_const): Define new parameter op_mode and
10354         update doc.
10355         * doc/tm.texi: Regenerate.
10356         * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
10357         vec_perm_const hook to add new parameter op_mode and return false
10358         if result and operand modes do not match.
10359         * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
10360         * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
10361         * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
10362         * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
10363         * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
10364         * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
10365         * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
10366         * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
10367         * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
10368         prototype.
10369         * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
10370         (ashrv2di3): Likewise.
10371         * optabs.cc (expand_vec_perm_const): Likewise.
10372         * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
10373         * optabs-query.cc (can_vec_perm_const_p): Define new parameter
10374         op_mode and pass it to vec_perm_const hook.
10375         (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
10376         * match.pd (vec_perm X Y CST): Likewise.
10377         * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
10378         * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
10379         (vect_grouped_load_supported): Likewise.
10380         (vect_shift_permute_load_chain): Likewise.
10381         * tree-vect-generic.cc (lower_vec_perm): Likewise.
10382         * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
10383         * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
10384         * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
10385         * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
10386         (vect_transform_slp_perm_load): Likewise.
10387         (vectorizable_slp_permutation): Likewise.
10388         * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
10389         (vectorizable_bswap): Likewise.
10390         (scan_store_can_perm_p): Likewise.
10391         (vect_gen_perm_mask_checked): Likewise.
10393 2022-05-24  H.J. Lu  <hjl.tools@gmail.com>
10395         PR target/104816
10396         * config/i386/i386.opt: Remove Undocumented.
10397         * doc/invoke.texi: Document -mcet-switch.
10399 2022-05-24  Andrew Stubbs  <ams@codesourcery.com>
10401         * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
10402         * config/gcn/gcn-opts.h (enum gcn_isa): New.
10403         (TARGET_GCN3): Use enum gcn_isa.
10404         (TARGET_GCN3_PLUS): Likewise.
10405         (TARGET_GCN5): Likewise.
10406         (TARGET_GCN5_PLUS): Likewise.
10407         (TARGET_CDNA1): New.
10408         (TARGET_CDNA1_PLUS): New.
10409         (TARGET_CDNA2): New.
10410         (TARGET_CDNA2_PLUS): New.
10411         (TARGET_M0_LDS_LIMIT): New.
10412         (TARGET_PACKED_WORK_ITEMS): New.
10413         * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
10414         (gcn_option_override): Recognise CDNA ISA variants.
10415         (gcn_omp_device_kind_arch_isa): Support gfx90a.
10416         (gcn_expand_prologue): Make m0 init optional.
10417         Add support for packed work items.
10418         (output_file_start): Support gfx90a.
10419         (gcn_hsa_declare_function_name): Support gfx90a metadata.
10420         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
10421         __CDNA2__.
10422         * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
10423         (<su>mulsi3_highpart_imm): Likewise.
10424         (<su>mulsidi3): Likewise.
10425         (<su>mulsidi3_imm): Likewise.
10426         * config/gcn/gcn.opt (gpu_type): Add gfx90a.
10427         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
10428         (main): Support gfx90a.
10429         * config/gcn/t-gcn-hsa: Add gfx90a multilib.
10430         * config/gcn/t-omp-device: Add gfx90a isa.
10432 2022-05-24  Andrew Stubbs  <ams@codesourcery.com>
10434         * config.in: Regenerate.
10435         * config/gcn/gcn-hsa.h (X_FIJI): Delete.
10436         (X_900): Delete.
10437         (X_906): Delete.
10438         (X_908): Delete.
10439         (S_FIJI): Delete.
10440         (S_900): Delete.
10441         (S_906): Delete.
10442         (S_908): Delete.
10443         (NO_XNACK): New macro.
10444         (NO_SRAM_ECC): New macro.
10445         (SRAMOPT): Keep only v4 variant.
10446         (HSACO3_SELECT_OPT): Delete.
10447         (DRIVER_SELF_SPECS): Delete.
10448         (ASM_SPEC): Remove LLVM 9 support.
10449         * config/gcn/gcn-valu.md
10450         (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
10451         (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
10452         * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
10453         (print_operand_address): Remove assembler bug workaround.
10454         * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
10455         (EF_AMDGPU_SRAM_ECC_V3): Delete.
10456         (SET_XNACK_ON): Delete v3 variants.
10457         (SET_XNACK_OFF): Delete v3 variants.
10458         (TEST_XNACK): Delete v3 variants.
10459         (SET_SRAM_ECC_ON): Delete v3 variants.
10460         (SET_SRAM_ECC_ANY): Delete v3 variants.
10461         (SET_SRAM_ECC_OFF): Delete v3 variants.
10462         (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
10463         (TEST_SRAM_ECC_ANY): Delete v3 variants.
10464         (TEST_SRAM_ECC_ON): Delete v3 variants.
10465         (copy_early_debug_info): Remove v3 support.
10466         (main): Remove v3 support.
10467         * configure: Regenerate.
10468         * configure.ac: Replace all GCN feature checks with a version check.
10470 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
10472         * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
10473         i.e. a double word negation of a zero extended operand, to
10474         neg;sbb.
10476 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
10478         PR tree-optimization/105668
10479         * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
10480         V1TImode, just like V2DImode.
10481         * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
10482         Use VI_128 mode iterator instead of VI124_128 to include V2DI.
10483         (vcond_mask_v2div2di): Delete.
10484         (vcond_mask_v1tiv1ti): New define_expand.
10486 2022-05-24  Roger Sayle  <roger@nextmovesoftware.com>
10488         * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
10489         to strncmp for strings of length one.
10491 2022-05-24  ShiYulong  <shiyulong@iscas.ac.cn>
10493         * config/riscv/predicates.md (imm5_operand): Add a new operand type for
10494         prefetch instructions.
10495         * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
10496         Extensions.
10497         (RISCV_ATYPE_SI): New.
10498         (RISCV_ATYPE_DI): New.
10499         * config/riscv/riscv-ftypes.def (0): New.
10500         (1): New.
10501         * config/riscv/riscv.md (riscv_clean_<mode>): New.
10502         (riscv_flush_<mode>): New.
10503         (riscv_inval_<mode>): New.
10504         (riscv_zero_<mode>): New.
10505         (prefetch): New.
10506         (riscv_prefetchi_<mode>): New.
10507         * config/riscv/riscv-cmo.def: New file.
10509 2022-05-24  ShiYulong  <shiyulong@iscas.ac.cn>
10511         * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
10512         * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
10513         (MASK_ZICBOM): New.
10514         (MASK_ZICBOP): New.
10515         (TARGET_ZICBOZ): New.
10516         (TARGET_ZICBOM): New.
10517         (TARGET_ZICBOP): New.
10518         * config/riscv/riscv.opt (riscv_zicmo_subext): New.
10520 2022-05-24  David Malcolm  <dmalcolm@redhat.com>
10522         * tree-vect-slp-patterns.cc: Add "final" and "override" to
10523         vect_pattern::build impls as appropriate.
10525 2022-05-24  David Malcolm  <dmalcolm@redhat.com>
10527         * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
10528         implementations, removing redundant "virtual" as appropriate.
10529         * ipa-fnsummary.h: Likewise.
10530         * ipa-modref.cc: Likewise.
10531         * ipa-param-manipulation.cc: Likewise.
10532         * ipa-profile.cc: Likewise.
10533         * ipa-prop.h: Likewise.
10534         * ipa-pure-const.cc: Likewise.
10535         * ipa-reference.cc: Likewise.
10536         * ipa-sra.cc: Likewise.
10537         * symbol-summary.h: Likewise.
10538         * symtab-thunks.cc: Likewise.
10540 2022-05-24  Martin Liska  <mliska@suse.cz>
10542         Revert:
10543         2022-05-24  Martin Liska  <mliska@suse.cz>
10545         * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
10546         warning.
10548 2022-05-24  Martin Liska  <mliska@suse.cz>
10550         * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
10551         warning.
10553 2022-05-24  Bruno Haible  <bruno@clisp.org>
10555         PR other/105527
10556         * doc/install.texi (Configuration): Add more details about --with-zstd.
10557         Document --with-zstd-include and --with-zstd-lib
10559 2022-05-24  Richard Biener  <rguenther@suse.de>
10561         PR middle-end/105711
10562         * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
10563         and use it.
10564         (extract_bit_field_1): Pass down the mode of op0 to
10565         extract_bit_field_as_subreg.
10567 2022-05-24  Vineet Gupta  <vineetg@rivosinc.com>
10569         * config/riscv/riscv.cc: (struct riscv_tune_param): Add
10570           fmv_cost.
10571         (rocket_tune_info): Add default fmv_cost 8.
10572         (sifive_7_tune_info): Ditto.
10573         (thead_c906_tune_info): Ditto.
10574         (optimize_size_tune_info): Ditto.
10575         (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
10577 2022-05-24  Jakub Jelinek  <jakub@redhat.com>
10579         PR c/105378
10580         * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
10581         builtin.
10582         * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
10583         clause but no depend clauses.
10584         * omp-expand.cc (expand_taskwait_call): Use
10585         BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
10586         BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
10588 2022-05-24  Richard Biener  <rguenther@suse.de>
10590         PR tree-optimization/100221
10591         * tree-ssa-dse.cc (contains_phi_arg): New function.
10592         (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
10594 2022-05-24  Richard Biener  <rguenther@suse.de>
10596         PR tree-optimization/105629
10597         * tree-ssa-phiopt.cc (spaceship_replacement): Allow
10598         a sign-extending conversion.
10600 2022-05-24  Kewen Lin  <linkw@linux.ibm.com>
10602         PR target/105627
10603         * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
10604         be a debug insn.
10605         (union_uses): Skip debug use_insn.
10607 2022-05-23  Vineet Gupta  <vineetg@rivosinc.com>
10609         * config/riscv/predicates.md (const_0_operand): Remove
10610         const_double.
10611         * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
10612         CONST_DOUBLE.
10613         * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
10615 2022-05-23  Mayshao  <mayshao-oc@zhaoxin.com>
10617         * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
10618         the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
10619         (cpu_indicator_init): Handle Zhaoxin processors.
10620         * common/config/i386/i386-common.cc: Add lujiazui.
10621         * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
10622         VENDOR_ZHAOXIN.
10623         (enum processor_types): Add ZHAOXIN_FAM7H.
10624         (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
10625         * config.gcc: Add lujiazui.
10626         * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
10627         Signatures for zhaoxin
10628         (signature_SHANGHAI_ecx): Ditto.
10629         (signature_SHANGHAI_edx): Ditto.
10630         * config/i386/driver-i386.cc (host_detect_local_cpu): Let
10631         -march=native recognize lujiazui processors.
10632         * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
10633         * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
10634         * config/i386/i386.h (enum processor_type): Ditto.
10635         * config/i386/i386.md: Add lujiazui.
10636         * config/i386/x86-tune-costs.h (struct processor_costs): Add
10637         lujiazui costs.
10638         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
10639         (ix86_adjust_cost): Ditto.
10640         * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
10641         (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
10642         (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
10643         (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
10644         (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
10645         (X86_TUNE_MOVX): Ditto.
10646         (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
10647         (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
10648         (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
10649         (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
10650         (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
10651         (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
10652         (X86_TUNE_USE_LEAVE): Ditto.
10653         (X86_TUNE_PUSH_MEMORY): Ditto.
10654         (X86_TUNE_LCP_STALL): Ditto.
10655         (X86_TUNE_USE_INCDEC): Ditto.
10656         (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
10657         (X86_TUNE_OPT_AGU): Ditto.
10658         (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
10659         (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
10660         (X86_TUNE_USE_SAHF): Ditto.
10661         (X86_TUNE_USE_BT): Ditto.
10662         (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
10663         (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
10664         (X86_TUNE_AVOID_MFENCE): Ditto.
10665         (X86_TUNE_EXPAND_ABS): Ditto.
10666         (X86_TUNE_USE_SIMODE_FIOP): Ditto.
10667         (X86_TUNE_USE_FFREEP): Ditto.
10668         (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
10669         (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
10670         (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
10671         (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
10672         (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
10673         * doc/extend.texi: Add details about lujiazui.
10674         * doc/invoke.texi: Add details about lujiazui.
10675         * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
10677 2022-05-23  Martin Liska  <mliska@suse.cz>
10679         * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
10681 2022-05-23  Richard Biener  <rguenther@suse.de>
10683         * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
10684         (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
10686 2022-05-23  Richard Biener  <rguenther@suse.de>
10688         * gimple-expr.cc (is_gimple_condexpr): Remove.
10689         * gimple-expr.h (is_gimple_condexpr): Likewise.
10690         * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
10691         * tree-if-conv.cc (set_bb_predicate): Likewie.
10692         (add_to_predicate_list): Likewise.
10693         (gen_phi_arg_condition): Likewise.
10694         (predicate_scalar_phi): Likewise.
10695         (predicate_statements): Likewise.
10697 2022-05-23  Richard Biener  <rguenther@suse.de>
10699         * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
10700         * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
10701         as is_gimple_val.
10702         * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
10703         * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
10704         * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
10705         Build the condition of the COND_EXPR separately.
10706         * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
10707         * tree-vect-generic.cc (expand_vector_condition): Likewise.
10708         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
10709         Likewise.
10710         * vr-values.cc (simplify_using_ranges::simplify): Likewise.
10711         * tree-vect-patterns.cc: Add comment indicating we are
10712         building invalid COND_EXPRs and why.
10713         * omp-expand.cc (expand_omp_simd): Gimplify the condition
10714         to the COND_EXPR separately.
10715         (expand_omp_atomic_cas): Note part that should be unreachable
10716         now.
10717         * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
10718         condition for valid replacements.
10719         * tree-if-conv.cc (predicate_bbs): Simulate previous
10720         re-folding of the condition in folded COND_EXPRs which
10721         is necessary because of unfolded GIMPLE_CONDs in the IL
10722         as in for example gcc.dg/fold-bopcond-1.c.
10723         * gimple-range-gori.cc (gori_compute::condexpr_adjust):
10724         Handle that the comparison is now in the def stmt of
10725         the select operand.  Required by gcc.dg/pr104526.c.
10727 2022-05-23  Tobias Burnus  <tobias@codesourcery.com>
10729         PR fortran/104949
10730         * langhooks-def.h (lhd_omp_array_size): New.
10731         (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
10732         (LANG_HOOKS_DECLS): Add it.
10733         * langhooks.cc (lhd_omp_array_size): New.
10734         * langhooks.h (struct lang_hooks_for_decls): Add hook.
10735         * omp-low.cc (scan_sharing_clauses, lower_omp_target):
10736         Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
10738 2022-05-23  Roger Sayle  <roger@nextmovesoftware.com>
10740         * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
10741         XOR/IOR case.  Account for two instructions for double-word
10742         operations.  In case of vector pandn, account for single
10743         instruction.  Likewise for integer andn with TARGET_BMI.
10744         <case NOT>: Vector NOT requires more than 1 instruction (pxor).
10745         <case NEG>: Double-word negation requires 3 instructions.
10747 2022-05-23  Tsukasa OI  <research_trasio@irq.a4lg.com>
10749         * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
10750         Fix "K" extension prefix to be placed before "J".
10751         * config/riscv/arch-canonicalize: Likewise.
10753 2022-05-23  liuhongt  <hongtao.liu@intel.com>
10755         * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
10756         <-> mask cost from 5 to 6.
10757         (icelake_cost): Ditto.
10759 2022-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
10761         * config/aarch64/aarch64.md
10762         (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
10763         (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
10764         (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
10765         (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
10766         (one_cmpl_<optab><mode>2): Likewise.
10767         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
10768         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
10769         (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
10770         (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
10771         (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
10772         (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
10773         (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
10774         (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
10775         (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
10776         (rolsi3_insn_uxtw): New pattern.
10777         * config/aarch64/iterators.md (SHIFT): Add rotate left.
10778         (SHIFT_no_rotate): Add new iterator.
10779         (SHIFT:shift): Print rotate left as ror.
10780         (is_rotl): Add test for left rotate.
10782 2022-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
10784         * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
10785         processing.  Add support for architectural extensions.
10786         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
10787         AARCH64_CPU_DEFAULT_FLAGS.
10788         (TARGET_CPU_NBITS): Remove.
10789         (TARGET_CPU_MASK): Remove.
10790         * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
10791         (get_tune_cpu): Assert CPU is always valid.
10792         (get_arch): Assert architecture is always valid.
10793         (aarch64_override_options): Cleanup CPU selection code and simplify logic.
10794         (aarch64_option_restore): Remove unnecessary checks on tune.
10796 2022-05-20  David Malcolm  <dmalcolm@redhat.com>
10798         * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
10799         "FINAL" and "OVERRIDE" with "final" and "override".
10800         * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
10801         * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
10802         * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
10803         * diagnostic-path.h: Likewise.
10804         * digraph.cc: Likewise.
10805         * gcc-rich-location.h: Likewise.
10806         * gimple-array-bounds.cc: Likewise.
10807         * gimple-loop-versioning.cc: Likewise.
10808         * gimple-range-cache.cc: Likewise.
10809         * gimple-range-cache.h: Likewise.
10810         * gimple-range-fold.cc: Likewise.
10811         * gimple-range-fold.h: Likewise.
10812         * gimple-range-tests.cc: Likewise.
10813         * gimple-range.h: Likewise.
10814         * gimple-ssa-evrp.cc: Likewise.
10815         * input.cc: Likewise.
10816         * json.h: Likewise.
10817         * read-rtl-function.cc: Likewise.
10818         * tree-complex.cc: Likewise.
10819         * tree-diagnostic-path.cc: Likewise.
10820         * tree-ssa-ccp.cc: Likewise.
10821         * tree-ssa-copy.cc: Likewise.
10822         * tree-vrp.cc: Likewise.
10823         * value-query.h: Likewise.
10824         * vr-values.h: Likewise.
10826 2022-05-20  Marcel Vollweiler  <marcel@codesourcery.com>
10828         * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
10829         target_memcpy_rect_async to omp_runtime_apis array.
10831 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
10833         * doc/sourcebuild.texi (Decimal floating point attributes): Document
10834         dfp_bid effective-target.
10836 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
10838         * config/aarch64/aarch64.cc
10839         (aarch64_split_128bit_move): Handle DFP modes.
10840         (aarch64_mode_valid_for_sched_fusion_p): Likewise.
10841         (aarch64_classify_address): Likewise.
10842         (aarch64_legitimize_address_displacement): Likewise.
10843         (aarch64_reinterpret_float_as_int): Likewise.
10844         (aarch64_float_const_zero_rtx_p): Likewise.
10845         (aarch64_can_const_movi_rtx_p): Likewise.
10846         (aarch64_anchor_offset): Likewise.
10847         (aarch64_secondary_reload): Likewise.
10848         (aarch64_rtx_costs): Likewise.
10849         (aarch64_legitimate_constant_p): Likewise.
10850         (aarch64_gimplify_va_arg_expr): Likewise.
10851         (aapcs_vfp_sub_candidate): Likewise.
10852         (aarch64_vfp_is_call_or_return_candidate): Likewise.
10853         (aarch64_output_scalar_simd_mov_immediate): Likewise.
10854         (aarch64_gen_adjusted_ldpstp): Likewise.
10855         (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
10856         * config/aarch64/aarch64.md
10857         (movsf_aarch64): Use SFD iterator and rename into
10858         mov<mode>_aarch64.
10859         (movdf_aarch64): Use DFD iterator and rename into
10860         mov<mode>_aarch64.
10861         (movtf_aarch64): Use TFD iterator and rename into
10862         mov<mode>_aarch64.
10863         (split pattern for move TF mode): Use TFD iterator.
10864         * config/aarch64/iterators.md
10865         (GPF_TF_F16_MOV): Add DFP modes.
10866         (SFD, DFD, TFD): New iterators.
10867         (GPF_TF): Add DFP modes.
10868         (TX, DX, DX2): Likewise.
10870 2022-05-20  Christophe Lyon  <christophe.lyon@arm.com>
10872         * configure: Regenerate.
10874 2022-05-19  Roger Sayle  <roger@nextmovesoftware.com>
10876         PR middle-end/98865
10877         * expr.cc (expand_expr_real_2) [MULT_EXPR]:  Expand X*Y as X&Y
10878         when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
10879         likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
10881 2022-05-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
10883         * config/rs6000/rs6000-builtins.def: Rephrase
10884         to remove RS6000_BTC_SPECIAL from comment.
10885         * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
10886         RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
10887         RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
10888         RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
10889         RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
10890         RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
10891         RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
10892         RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
10893         RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
10894         RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
10895         RS6000_BTM_ALWAYS): Delete.
10897 2022-05-19  Richard Biener  <rguenther@suse.de>
10899         * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
10900         computation of the new value.
10902 2022-05-19  Richard Biener  <rguenther@suse.de>
10904         * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
10905         (add_to_value): Use get_expression_id.
10906         (bitmap_insert_into_set): Likewise.
10907         (bitmap_value_insert_into_set): Likewise.
10909 2022-05-19  David Malcolm  <dmalcolm@redhat.com>
10911         * doc/invoke.texi (-fanalyzer-checker=): Add
10912         -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
10913         the list of analyzer warnings disabled by
10914         -fanalyzer-checker=taint.
10916 2022-05-19  Jakub Jelinek  <jakub@redhat.com>
10918         PR debug/105630
10919         * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
10920         global vars without symtab node even when they have DECL_RTL
10921         set.
10923 2022-05-19  Jakub Jelinek  <jakub@redhat.com>
10925         PR c/105635
10926         * pointer-query.cc (gimple_parm_array_size): Return NULL if var
10927         doesn't have pointer or reference type.
10929 2022-05-18  Marek Polacek  <polacek@redhat.com>
10931         PR c/105131
10932         * doc/invoke.texi: Document -Wenum-int-mismatch.
10934 2022-05-18  Uros Bizjak  <ubizjak@gmail.com>
10936         * config/i386/gnu-user-common.h (defined): Only define
10937         TARGET_CAN_SPLIT_STACK for glibc targets.
10938         * config/i386/gnu.h (defined): Ditto.
10940 2022-05-18  Roger Sayle  <roger@nextmovesoftware.com>
10942         * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
10943         is wider than word_mode, a multiplication costs three word_mode
10944         multiplications and two word_mode additions.
10946 2022-05-18  Roger Sayle  <roger@nextmovesoftware.com>
10948         * config/i386/i386.md (define_split):  Split *andsi_1
10949         and *andn_si_ccno after reload with -Oz.
10951 2022-05-18  Frederik Harwath  <frederik@codesourcery.com>
10953         * graphite-scop-detection.cc (scop_detection::can_represent_loop):
10954         Output reason for failure to dump file.
10955         (scop_detection::harmful_loop_in_region): Likewise.
10956         (scop_detection::graphite_can_represent_expr): Likewise.
10957         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
10958         (scop_detection::stmt_simple_for_scop_p): Likewise.
10959         (print_sese_loop_numbers): New function.
10960         (scop_detection::add_scop): Use from here.
10962 2022-05-18  liuhongt  <hongtao.liu@intel.com>
10964         PR middle-end/103462
10965         * match.pd (bitwise_induction_p): New match.
10966         * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
10967         Declare.
10968         (analyze_and_compute_bitwise_induction_effect): New function.
10969         (enum bit_op_kind): New enum.
10970         (final_value_replacement_loop): Enhanced to handle bitwise
10971         induction.
10973 2022-05-18  Haochen Gui  <guihaoc@gcc.gnu.org>
10975         PR target/95737
10976         * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
10978 2022-05-18  liuhongt  <hongtao.liu@intel.com>
10980         PR target/104375
10981         * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
10982         define_insn.
10984 2022-05-18  liuhongt  <hongtao.liu@intel.com>
10986         PR target/104610
10987         * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
10988         for QImode when code is EQ or NE.
10989         * config/i386/i386.md (cbranchoi4): New expander.
10991 2022-05-18  Peter Bergner  <bergner@linux.ibm.com>
10992             Segher Boessenkool  <segher@kernel.crashing.org>
10994         PR target/105556
10995         * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
10996         mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
10997         mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
10998         mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
10999         Update other operands accordingly.
11001 2022-05-17  Marek Polacek  <polacek@redhat.com>
11003         * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
11005 2022-05-17  Pat Haugen  <pthaugen@linux.ibm.com>
11007         PR target/99685
11008         * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
11009         register count when not splitting IEEE 128-bit Complex.
11011 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
11013         * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
11014         target inside target if inner is reverse offload.
11016 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
11018         * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
11019         * config/nvptx/mkoffload.cc (process): Likewise.
11021 2022-05-17  Andrew MacLeod  <amacleod@redhat.com>
11023         * Makefile.in (OBJS): Add gimple-range-side-effect.o.
11024         * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
11025         (non_null_ref::~non_null_ref): Delete.
11026         (non_null_ref::set_nonnull): Delete.
11027         (non_null_ref::non_null_deref_p): Delete.
11028         (non_null_ref::process_name): Delete.
11029         (ranger_cache::ranger_cache): Initialize m_exit object.
11030         (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
11031         (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
11032         (ranger_cache::update_to_nonnull): Delete.
11033         (non_null_loadstore): Delete.
11034         (ranger_cache::block_apply_nonnull): Delete.
11035         (ranger_cache::apply_side_effects): New.
11036         * gimple-range-cache.h (class non_null_ref): Delete.
11037         (non_null_ref::adjust_range): Delete.
11038         (class ranger_cache): Adjust prototypes, add side effect manager.
11039         * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
11040         side effect manager for queries.
11041         (path_range_query::adjust_for_non_null_uses): Ditto.
11042         * gimple-range-path.h (class path_range_query): Delete non_null_ref.
11043         * gimple-range-side-effect.cc: New.
11044         * gimple-range-side-effect.h: New.
11045         * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
11046         (gimple_ranger::range_of_expr): Check def block for override value.
11047         (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
11048         (gimple_ranger::range_on_edge): Check for outgoing side-effects.
11049         (gimple_ranger::register_side_effects): Call apply_side_effects.
11050         (enable_ranger): Update contructor.
11051         * gimple-range.h (class gimple_ranger): Update prototype.
11052         (enable_ranger): Update prototype.
11053         * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
11055 2022-05-17  Giuliano Belinassi  <gbelinassi@suse.de>
11057         PR c++/105169
11058         * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
11059         * varasm.cc (switch_to_comdat_section): New
11060         (handle_vtv_comdat_section): Call switch_to_comdat_section.
11061         * varasm.h: Declare switch_to_comdat_section.
11063 2022-05-17  Richard Biener  <rguenther@suse.de>
11065         * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
11066         not clear bb->aux of the copied blocks.
11068 2022-05-17  Andrew MacLeod  <amacleod@redhat.com>
11070         PR tree-optimization/105458
11071         * value-relation.cc (path_oracle::register_relation): Merge, then check
11072         for equivalence.
11074 2022-05-17  Uroš Bizjak  <ubizjak@gmail.com>
11076         PR target/105624
11077         Revert:
11078         * config/i386/i386.md: Remove constraints when used with
11079         const_int_operand, const0_operand, const_1_operand, constm1_operand,
11080         const8_operand, const128_operand, const248_operand, const123_operand,
11081         const2367_operand, const1248_operand, const359_operand,
11082         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
11083         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
11084         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
11085         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
11086         const_0_to_255_mul_8_operand, const_1_to_31_operand,
11087         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
11088         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
11089         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
11090         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
11091         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
11092         const_24_to_27_operand and const_28_to_31_operand.
11093         * config/i386/mmx.md: Ditto.
11094         * config/i386/sse.md: Ditto.
11095         * config/i386/subst.md: Ditto.
11096         * config/i386/sync.md: Ditto.
11098 2022-05-17  Thomas Schwinge  <thomas@codesourcery.com>
11100         * diagnostic.cc: Don't advise to call 'abort' instead of
11101         'internal_error'.
11102         * system.h: Advise to call 'internal_error' instead of 'abort' or
11103         'fancy_abort'.
11105 2022-05-17  Frederik Harwath  <frederik@codesourcery.com>
11107         * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
11108         a reference to a variable which does not exist.
11109         * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
11110         in comment.
11112 2022-05-17  Frederik Harwath  <frederik@codesourcery.com>
11114         * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
11115         (isl_id_for_parameter): ... this new function name.
11116         (build_scop_context): Adjust function use.
11118 2022-05-17  Tobias Burnus  <tobias@codesourcery.com>
11120         PR target/105602
11121         * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
11122         * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
11124 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
11126         * tree-core.h (enum omp_clause_depend_kind): Add
11127         OMP_CLAUSE_DEPEND_INOUTSET.
11128         * tree-pretty-print.cc (dump_omp_clause): Handle
11129         OMP_CLAUSE_DEPEND_INOUTSET.
11130         * gimplify.cc (gimplify_omp_depend): Likewise.
11131         * omp-low.cc (lower_depend_clauses): Likewise.
11133 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
11135         PR target/105613
11136         * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
11137         andv4si3 only for EQ, for NE use iorv4si3 instead.
11139 2022-05-17  Richard Biener  <rguenther@suse.de>
11141         PR tree-optimization/105618
11142         * tree-ssa-sink.cc (statement_sink_location): For virtual
11143         PHI uses ignore those defining the used virtual operand.
11145 2022-05-17  Jakub Jelinek  <jakub@redhat.com>
11147         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
11148         hanlde -> handle.  Fix up comment formatting.
11150 2022-05-17  liuhongt  <hongtao.liu@intel.com>
11152         PR target/105033
11153         * config/i386/sse.md (*vec_concatv4si): Extend to ..
11154         (*vec_concat<mode>): .. V16QI and V8HImode.
11155         (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
11156         (*vec_concatv8hi_permt2): Ditto.
11158 2022-05-17  liuhongt  <hongtao.liu@intel.com>
11160         PR tree-optimization/105591
11161         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
11162         vec_perm_expr index.
11164 2022-05-16  Jason Merrill  <jason@redhat.com>
11166         PR c/105492
11167         * attribs.cc (decl_attributes): Fix broken typedefs here.
11169 2022-05-16  David Malcolm  <dmalcolm@redhat.com>
11171         PR analyzer/105103
11172         * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
11173         * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
11174         -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
11175         -Wanalyzer-va-list-use-after-va-end.
11177 2022-05-16  Richard Biener  <rguenther@suse.de>
11179         * gimple-match.h (gimple_build): Move code_helper overloads ...
11180         * gimple-fold.h (gimple_build): ... here.
11181         (gimple_build): Transition to new worker API.  Provide
11182         overloads from sequence-based API.
11183         (gimple_convert): Likewise.
11184         (gimple_convert_to_ptrofftype): Likewise.
11185         (gimple_build_vector_from_val): Likewise.
11186         (gimple_build_vector): Likewise.
11187         (gimple_build_round_up): Likewise.
11188         * gimple-fold.cc (gimple_build_insert_seq): New helper.
11189         (gimple_build): Use it.  Transition combined_fn and code_helper
11190         API parts.
11191         (gimple_convert): Transition to new worker API.
11192         (gimple_convert_to_ptrofftype): Likewise.
11193         (gimple_build_vector_from_val): Likewise.
11194         (gimple_build_vector): Likewise.
11195         (gimple_build_round_up): Likewise.
11197 2022-05-16  Richard Biener  <rguenther@suse.de>
11199         * gimple-match.h (code_helper): Move class ...
11200         * tree.h (code_helper): ... here.
11202 2022-05-16  Martin Liska  <mliska@suse.cz>
11204         * opts-global.cc (write_langs): Add comment.
11206 2022-05-16  Eric Botcazou  <ebotcazou@adacore.com>
11208         * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
11209         instead of a bitwise negation.
11210         <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
11212 2022-05-16  Martin Liska  <mliska@suse.cz>
11214         * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
11215         (decls_mismatched_attributes): Likewise.
11216         * builtins.cc (c_strlen): Likewise.
11217         * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
11218         * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
11219         * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
11220         (aarch64_init_simd_builtin_types): Likewise.
11221         (aarch64_init_builtin_rsqrt): Likewise.
11222         * config/aarch64/aarch64.cc (is_madd_op): Likewise.
11223         * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
11224         (arm_init_simd_builtin_types): Likewise.
11225         * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
11226         (c_prefix): Likewise.
11227         (main): Likewise.
11228         * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
11229         * config/darwin-c.cc (darwin_register_frameworks): Likewise.
11230         * config/gcn/mkoffload.cc (process_obj): Likewise.
11231         * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
11232         (fold_builtin_cpu): Likewise.
11233         * config/m32c/m32c.cc (PUSHM_N): Likewise.
11234         * config/nvptx/mkoffload.cc (process): Likewise.
11235         * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
11236         * config/s390/s390.cc (NR_C_MODES): Likewise.
11237         * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
11238         (create_insn_code_compression_table): Likewise.
11239         * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
11240         * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
11241         * dwarf2out.cc (ARRAY_SIZE): Likewise.
11242         * genhooks.cc (emit_documentation): Likewise.
11243         (emit_init_macros): Likewise.
11244         * gimple-ssa-sprintf.cc (format_floating): Likewise.
11245         * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
11246         * godump.cc (keyword_hash_init): Likewise.
11247         * hash-table.cc (hash_table_higher_prime_index): Likewise.
11248         * input.cc (for_each_line_table_case): Likewise.
11249         * ipa-free-lang-data.cc (free_lang_data): Likewise.
11250         * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
11251         * optc-save-gen.awk: Likewise.
11252         * spellcheck.cc (test_metric_conditions): Likewise.
11253         * tree-vect-slp-patterns.cc (sizeof): Likewise.
11254         (ARRAY_SIZE): Likewise.
11255         * tree.cc (build_common_tree_nodes): Likewise.
11257 2022-05-16  Martin Liska  <mliska@suse.cz>
11259         * opts-global.cc (write_langs): Allocate at least one byte.
11261 2022-05-16  Richard Biener  <rguenther@suse.de>
11263         * match.pd (A cmp B ? A : B -> min/max): New patterns
11264         carried over from fold_cond_expr_with_comparison.
11266 2022-05-16  liuhongt  <hongtao.liu@intel.com>
11268         PR target/105587
11269         * config/i386/i386-expand.cc
11270         (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
11271         d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
11273 2022-05-15  Uroš Bizjak  <ubizjak@gmail.com>
11275         * config/i386/i386.md: Remove constraints when used with
11276         const_int_operand, const0_operand, const_1_operand, constm1_operand,
11277         const8_operand, const128_operand, const248_operand, const123_operand,
11278         const2367_operand, const1248_operand, const359_operand,
11279         const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
11280         const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
11281         const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
11282         const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
11283         const_0_to_255_mul_8_operand, const_1_to_31_operand,
11284         const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
11285         const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
11286         const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
11287         const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
11288         const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
11289         const_24_to_27_operand and const_28_to_31_operand.
11290         * config/i386/mmx.md: Ditto.
11291         * config/i386/sse.md: Ditto.
11292         * config/i386/subst.md: Ditto.
11293         * config/i386/sync.md: Ditto.
11295 2022-05-13  Roger Sayle  <roger@nextmovesoftware.com>
11296             Uroš Bizjak  <ubizjak@gmail.com>
11298         * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
11299         For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
11300         by a pshufd and pand.
11301         (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
11302         vector equality as a V2DImode vector comparison (see above),
11303         followed by a pshufd and pand.
11305 2022-05-13  Roger Sayle  <roger@nextmovesoftware.com>
11307         PR tree-optimization/83907
11308         * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
11309         for memset with an constant char value.
11310         (handle_store): Improved handling of stores with a first byte
11311         of zero, but not storing_all_zeros_p.
11313 2022-05-13  Philipp Tomsich  <philipp.tomsich@vrull.eu>
11314             Manolis Tsamis  <manolis.tsamis@vrull.eu>
11316         * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
11317         (CTZ_DEFINED_VALUE_AT_ZERO): Same.
11318         * doc/sourcebuild.texi: add documentation for RISC-V specific
11319         test target keywords
11321 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11323         PR tree-optimization/105597
11324         * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
11325         of the lhs and make sure it is not undefined.
11327 2022-05-13  Sebastian Pop  <spop@amazon.com>
11329         PR target/105162
11330         * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
11331         of str array.
11332         * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
11333         memmodel_from_int and handle MEMMODEL_SYNC_*.
11334         (DEF0): Add __aarch64_*_sync functions.
11336 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11338         * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
11339         enumerated values.
11340         * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
11341         * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
11342         new VREL enumerated values.
11343         (*::lhs_op2_relation): Ditto.
11344         (*::op1_op2_relation): Ditto.
11345         (*::fold_range): Use new VREL enumerated values.
11346         (minus_op1_op2_relation_effect): Ditto.
11347         (range_relational_tests): Ditto.
11348         * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
11349         (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
11350         relation_kind.
11351         (*_op1_op2_relation): Return relation_kind.
11352         (relop_early_resolve): Use VREL_UNDEFINED.
11353         * value-query.cc (range_query::query_relation): Use VREL_VARYING.
11354         * value-relation.cc (VREL_LAST): Change enumerated value.
11355         (vrel_range_assert): Delete.
11356         (print_relation): Remove range assert.
11357         (rr_negate_table): Adjust table to use new enumerated values..
11358         (relation_negate): Remove range assert.
11359         (rr_swap_table): Adjust.
11360         (relation_swap): Remove range assert.
11361         (rr_intersect_table): Adjust.
11362         (relation_intersect): Remove range assert.
11363         (rr_union_table): Adjust.
11364         (relation_union): Remove range assert.
11365         (rr_transitive_table): Adjust.
11366         (relation_transitive): Remove range assert.
11367         (equiv_oracle::query_relation): Use new VREL enumerated values.
11368         (equiv_oracle::register_relation): Ditto.
11369         (relation_oracle::register_stmt): Ditto.
11370         (dom_oracle::set_one_relation): Ditto.
11371         (dom_oracle::register_transitives): Ditto.
11372         (dom_oracle::query_relation): Ditto.
11373         (path_oracle::register_relation): Ditto.
11374         (path_oracle::query_relation): Ditto.
11375         * value-relation.h (enum relation_kind_t): New relation_kind.
11376         (*_op1_op2_relation): Adjust prototypes.
11378 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11380         * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
11381         * value-range.cc (irange::legacy_verbose_union_): Add return value.
11382         (irange::irange_single_pair_union): New.
11383         (irange::irange_union): Add return value.
11384         * value-range.h (class irange): Adjust prototypes.
11386 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11388         * value-range.cc (irange::legacy_verbose_intersect): Add return value.
11389         (irange::irange_contains_p): New.
11390         (irange::irange_intersect): Add return value.
11391         * value-range.h (class irange): Adjust prototypes.
11393 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11395         * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
11396         had_global value instead.
11398 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11400         PR tree-optimization/104547
11401         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
11402         the op1/op2 relation to the relation call.
11403         * range-op.cc (*::lhs_op1_relation): Add param.
11404         (*::lhs_op2_relation): Ditto.
11405         (operator_minus::lhs_op1_relation): New.
11406         (range_relational_tests): Add relation param.
11407         * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
11409 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11411         * gimple-range.cc (gimple_ranger::register_side_effects): First check
11412         if the DEF should be exported as a global.
11413         * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
11414         which will export globals.
11415         (execute_ranger_vrp): Remove call to export_global_ranges.
11417 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11419         * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
11421 2022-05-13  Andrew MacLeod  <amacleod@redhat.com>
11423         * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
11424         worlist truncated.
11425         (ranger_cache::entry_range): Add rfd_mode parameter.
11426         (ranger_cache::exit_range): Ditto.
11427         (ranger_cache::edge_range): New.  Incorporate from range_on_edge.
11428         (ranger_cache::range_of_expr): Adjust call to entry_range.
11429         (ranger_cache::range_on_edge): Split to edge_range and call.
11430         (ranger_cache::fill_block_cache): Always invoke range_from_dom.
11431         (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
11432         mutiple predecessors.
11433         (ranger_cache::update_to_nonnull): Adjust call to exit_range.
11434         * gimple-range-cache.h (ranger_cache): Add enum rfd_mode.  Adjust
11435         prototypes.
11437 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
11439         * gimple-harden-conditionals.cc: Include sbitmap.h.
11440         (pass_harden_conditional_branches::execute): Skip new blocks.
11441         (pass_harden_compares::execute): Likewise.
11443 2022-05-13  Richard Earnshaw  <rearnsha@arm.com>
11445         PR target/105463
11446         * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
11447         mve_memory_operand.
11448         (*movmisalign<mode>_mve_load): Likewise.
11449         * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
11450         form...
11451         (@movmisalign<mode>): ... thus.  Use generic predicates and then
11452         rework operands if they are not valid.  For MVE rework to a
11453         narrower element size if the alignment is not high enough.
11455 2022-05-13  Richard Earnshaw  <rearnsha@arm.com>
11457         * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
11458         when there is no write-back.  Fix use when strict is true.
11460 2022-05-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
11462         * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
11463         definition.
11465 2022-05-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
11467         * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
11468         extzvsi_internal): Rename from extv, extv_internal, extzv and
11469         extzv_internal, respectively.
11471 2022-05-13  Eric Botcazou  <ebotcazou@adacore.com>
11473         * tree-sra.cc (sra_modify_assign): Check that scalar storage order
11474         is the same on the LHS and RHS before rewriting one with the model
11475         of the other.
11477 2022-05-13  Richard Biener  <rguenther@suse.de>
11479         * gimple-fold.cc (gimple_build): Adjust for new
11480         main API.
11481         * gimple-fold.h (gimple_build): New main APIs with
11482         iterator, insert direction and iterator update.
11483         (gimple_build): New forwarder template.
11484         (clear_padding_type_may_have_padding_p): Remove.
11485         (clear_type_padding_in_mask): Likewise.
11486         (arith_overflowed_p): Likewise.
11487         * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
11488         (clear_type_padding_in_mask): Likewise.
11489         (arith_overflowed_p): Likewise.
11490         * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
11491         (gimplify_build2): Likewise.
11492         (gimplify_build1): Likewise.
11493         * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
11494         compare stmt.
11495         * gengtype.cc (open_base_files): Re-order includes.
11496         * builtins.cc: Re-order gimple-fold.h include.
11497         * calls.cc: Likewise.
11498         * cgraphbuild.cc: Likewise.
11499         * cgraphunit.cc: Likewise.
11500         * config/rs6000/rs6000-builtin.cc: Likewise.
11501         * config/rs6000/rs6000-call.cc: Likewise.
11502         * config/rs6000/rs6000.cc: Likewise.
11503         * config/s390/s390.cc: Likewise.
11504         * expr.cc: Likewise.
11505         * fold-const.cc: Likewise.
11506         * function-tests.cc: Likewise.
11507         * gimple-match-head.cc: Likewise.
11508         * gimple-range-fold.cc: Likewise.
11509         * gimple-ssa-evrp-analyze.cc: Likewise.
11510         * gimple-ssa-evrp.cc: Likewise.
11511         * gimple-ssa-sprintf.cc: Likewise.
11512         * gimple-ssa-warn-access.cc: Likewise.
11513         * gimplify.cc: Likewise.
11514         * graphite-isl-ast-to-gimple.cc: Likewise.
11515         * ipa-cp.cc: Likewise.
11516         * ipa-devirt.cc: Likewise.
11517         * ipa-prop.cc: Likewise.
11518         * omp-low.cc: Likewise.
11519         * pointer-query.cc: Likewise.
11520         * range-op.cc: Likewise.
11521         * tree-cfg.cc: Likewise.
11522         * tree-if-conv.cc: Likewise.
11523         * tree-inline.cc: Likewise.
11524         * tree-object-size.cc: Likewise.
11525         * tree-ssa-ccp.cc: Likewise.
11526         * tree-ssa-dom.cc: Likewise.
11527         * tree-ssa-forwprop.cc: Likewise.
11528         * tree-ssa-ifcombine.cc: Likewise.
11529         * tree-ssa-loop-ivcanon.cc: Likewise.
11530         * tree-ssa-math-opts.cc: Likewise.
11531         * tree-ssa-pre.cc: Likewise.
11532         * tree-ssa-propagate.cc: Likewise.
11533         * tree-ssa-reassoc.cc: Likewise.
11534         * tree-ssa-sccvn.cc: Likewise.
11535         * tree-ssa-strlen.cc: Likewise.
11536         * tree-ssa.cc: Likewise.
11537         * value-pointer-equiv.cc: Likewise.
11538         * vr-values.cc: Likewise.
11540 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
11542         PR rtl-optimization/105455
11543         * gimple-harden-conditionals.cc (insert_check_and_trap): Set
11544         probabilities for newly-conditional edges.
11546 2022-05-13  liuhongt  <hongtao.liu@intel.com>
11548         PR tree-optimization/102583
11549         * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
11550         contiguous stride in the VEC_PERM_EXPR.
11552 2022-05-12  Richard Biener  <rguenther@suse.de>
11554         PR rtl-optimization/105577
11555         * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
11556         edges before running fast DCE via df_analyze.
11558 2022-05-12  Richard Biener  <rguenther@suse.de>
11560         PR tree-optimization/105562
11561         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
11562         against all CLOBBER defs if there's not an obvious must-alias
11563         and we are not doing redundant store elimination.
11564         (vn_walk_cb_data::redundant_store_removal_p): New field.
11565         (vn_reference_lookup_pieces): Initialize it.
11566         (vn_reference_lookup): Add argument to specify if we are
11567         doing redundant store removal.
11568         (eliminate_dom_walker::eliminate_stmt): Specify we do.
11569         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
11571 2022-05-12  Haochen Jiang  <haochen.jiang@intel.com>
11573         PR target/104371
11574         * config/i386/sse.md (vi1avx2const): New define_mode_attr.
11575         (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
11576         New define_split pattern.
11578 2022-05-12  Jakub Jelinek  <jakub@redhat.com>
11580         * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
11581         if null_pointer_node.
11582         (gimplify_scan_omp_clauses): Likewise.
11583         * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
11584         as omp_all_memory.
11586 2022-05-11  Patrick Palka  <ppalka@redhat.com>
11588         * tree.h (TREE_VEC_BEGIN): Define.
11589         (TREE_VEC_END): Correct 'length' member access.
11590         (class tree_vec_range): Define.
11592 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
11594         * config/rs6000/rs6000.md: Use wa instead of <Fv>.
11596 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
11598         * config/rs6000/rs6000.md: Use d instead of <Ff>.
11600 2022-05-11  Segher Boessenkool  <segher@kernel.crashing.org>
11602         * config/rs6000/constraints.md (register_constraint "f"): Use
11603         RS6000_CONSTRAINT_d.
11604         * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
11605         RS6000_CONSTRAINT_f.
11606         (rs6000_init_hard_regno_mode_ok): Ditto.  Reorder and simplify a bit.
11607         * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
11608         RS6000_CONSTRAINT_d.
11610 2022-05-11  Richard Biener  <rguenther@suse.de>
11612         * gimple-fold.h (gimple_build): Use variadic template
11613         functions for the gimple_build API forwarders without
11614         location_t argument.
11616 2022-05-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
11618         PR middle-end/70090
11619         * asan.cc (initialize_sanitizer_builtins): Register
11620         __builtin_dynamic_object_size if necessary.
11622 2022-05-11  Richard Biener  <rguenther@suse.de>
11624         PR rtl-optimization/105559
11625         * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
11626         for non-debug insns.
11628 2022-05-11  Richard Biener  <rguenther@suse.de>
11630         * generic-match-head.cc: Include tree-eh.h.
11631         * match.pd ((cond ...) cmp X): New simplification inspired
11632         by fold_binary_op_with_conditional_arg.
11633         (eq/ne (cmp ...) true/false): Likewise.
11635 2022-05-11  Thomas Schwinge  <thomas@codesourcery.com>
11637         * doc/install.texi: Don't document '--with-hsa-runtime',
11638         '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
11640 2022-05-11  Martin Liska  <mliska@suse.cz>
11642         PR other/105527
11643         * doc/install.texi: Document the configure option --with-zstd.
11645 2022-05-11  Martin Liska  <mliska@suse.cz>
11647         * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
11648         compute index in cpu_features2.
11649         (set_cpu_feature): Likewise.
11650         * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
11651         loop for cpu_features2 and use NOP_EXPRs.
11653 2022-05-11  Richard Biener  <rguenther@suse.de>
11655         PR bootstrap/105551
11656         * opts.cc (finish_options): Also disable var-tracking if
11657         !DWARF2_DEBUGGING_INFO.
11659 2022-05-11  liuhongt  <hongtao.liu@intel.com>
11661         PR target/104915
11662         * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
11663         pre_reload define_insn_and_split.
11664         (*vec_setv2di_0_zero_extendhi_1): Ditto.
11665         (*vec_set<mode>_0_zero_extendsi): Ditto.
11666         (*vec_setv2di_0_zero_extendsi_1): Ditto.
11667         (ssewvecmode): New mode attr.
11668         (ssewvecmodelower): Ditto.
11669         (ssepackmodelower): Ditto.
11671 2022-05-11  Kewen Lin  <linkw@linux.ibm.com>
11673         * config/rs6000/constraints.md (register constraint v): Use
11674         rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
11676 2022-05-11  Martin Liska  <mliska@suse.cz>
11678         PR target/105355
11679         * config/riscv/riscv.opt: Remove Separate from
11680         -msmall-data-limit=.
11681         * optc-gen.awk: Report error for the described situation.
11682         * gcc.cc: Use Separate syntax.
11683         * opts.cc (gen_command_line_string): Change option name.
11685 2022-05-11  Haochen Gui  <guihaoc@gcc.gnu.org>
11687         PR target/105414
11688         * match.pd (minmax): Skip constant folding for fmin/fmax when both
11689         arguments are sNaN or one is sNaN and another is NaN.
11691 2022-05-10  Jakub Jelinek  <jakub@redhat.com>
11693         PR tree-optimization/105528
11694         * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
11695         set *gsi to gsi_for_stmt (ass_stmt).  Fix up function comment.
11697 2022-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
11699         * doc/md.texi (Defining Mode Iterators): Correct example replacement
11700         text.
11702 2022-05-10  Maciej W. Rozycki  <macro@embecosm.com>
11704         * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
11705         constants.
11706         (fmin<mode>3, fmax<mode>3): New insns.
11708 2022-05-10  Richard Biener  <rguenther@suse.de>
11710         * tree-if-conv.cc (fold_build_cond_expr): Use
11711         match-and-simplify to simplify the condition.
11712         (ifcvt_follow_ssa_use_edges): Remove.
11713         (predicate_scalar_phi): Use follow_all_ssa_edges.
11715 2022-05-10  Thomas Schwinge  <thomas@codesourcery.com>
11717         PR middle-end/100400
11718         * omp-oacc-kernels-decompose.cc
11719         (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
11720         call 'internal_error'.
11722 2022-05-10  Richard Biener  <rguenther@suse.de>
11724         PR middle-end/105537
11725         * toplev.cc (process_options): Move flag_var_tracking
11726         handling ...
11727         * opts.cc (finish_options): ... here.
11729 2022-05-10  Martin Liska  <mliska@suse.cz>
11731         * basic-block.h (struct basic_block_d): Use void *
11732         instead PTR.
11733         * cfgloop.h: Likewise.
11734         * cgraph.h: Likewise.
11735         * gengtype-state.cc (state_ident_by_name): Likewise.
11736         (record_type): Likewise.
11737         (read_state_already_seen_type): Likewise.
11738         * gengtype.cc (dump_type): Likewise.
11739         (input_file_by_name): Likewise.
11740         (main): Likewise.
11741         * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
11742         * ipa-utils.h (struct ipa_dfs_info): Likewise.
11743         * plugin.cc (htab_hash_plugin): Likewise.
11745 2022-05-10  Richard Biener  <rguenther@suse.de>
11747         * flags.h (dwarf_debuginfo_p): Add opts argument, guard
11748         API with !GENERATOR_FILE.
11749         * opts.cc (global_options): Poison.
11750         (global_options_set): Likewise.
11751         (finish_options): Refer to options via opts.
11753 2022-05-10  Uroš Bizjak  <ubizjak@gmail.com>
11754             Roger Sayle  <roger@nextmovesoftware.com>
11756         * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
11757         alternative when optimizing for size and the immediate operand is
11758         const_0_to_127_operand.
11759         (*andqi_2_maybe_si): Likewise.
11760         * config/i386/predicates.md (const_0_to_127_operand): New predicate.
11762 2022-05-10  Roger Sayle  <roger@nextmovesoftware.com>
11764         * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
11765         "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
11766         can't be negative.
11768 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
11770         PR target/105292
11771         * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
11772         true only for 8-byte vector modes.
11774 2022-05-10  Siddhesh Poyarekar  <siddhesh@gotplt.org>
11776         PR middle-end/70090
11777         * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
11778         (instrument_object_size): Get dynamic object size expression.
11780 2022-05-10  Jiufu Guo  <guojiufu@linux.ibm.com>
11782         PR preprocessor/101168
11783         * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
11784         Avoid empty identifier.
11786 2022-05-09  Qing Zhao  <qing.zhao@oracle.com>
11788         PR target/101891
11789         * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
11790         as a generic MMX mode instead of V4HImode.
11791         (zero_all_mm_registers): Use SET to zero instead of MOV for
11792         zeroing scratch registers.
11793         (ix86_zero_call_used_regs): Likewise.
11795 2022-05-09  liuhongt  <hongtao.liu@intel.com>
11797         PR target/105354
11798         * config/i386/i386-expand.cc
11799         (expand_vec_perm_pslldq_psrldq_por): New function.
11800         (ix86_expand_vec_perm_const_1): Try
11801         expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
11802         4/5-instruction sequence.
11804 2022-05-09  Martin Liška  <mliska@suse.cz>
11806         * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
11807         * system.h (STATIC_ASSERT): Define as static_assert for C++
11808         and fallback to array index in C.
11810 2022-05-09  Richard Biener  <rguenther@suse.de>
11812         PR tree-optimization/105517
11813         * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
11814         offset can be represented in the POINTER_PLUS_EXPR IL.
11815         (vn_reference_insert): Likewise.
11816         * poly-int.h (sext_hwi): Add poly version of sext_hwi.
11818 2022-05-09  Richard Biener  <rguenther@suse.de>
11820         * match.pd: Remove #if GIMPLE guards around ! using patterns.
11822 2022-05-09  liuhongt  <hongtao.liu@intel.com>
11824         PR target/105072
11825         * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
11826         New define_insn.
11827         (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
11828         define_insn_and_split.
11830 2022-05-09  Alex Coplan  <alex.coplan@arm.com>
11832         * cgraph.cc (cgraph_node::get_create): Don't dump if the current
11833         symtab state is PARSING.
11835 2022-05-09  Martin Liska  <mliska@suse.cz>
11837         * system.h (LIKELY): Define.
11838         (UNLIKELY): Likewise.
11839         * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
11840         macros.
11841         * dse.cc (set_position_unneeded): Likewise.
11842         (set_all_positions_unneeded): Likewise.
11843         (any_positions_needed_p): Likewise.
11844         (all_positions_needed_p): Likewise.
11845         * expmed.cc (flip_storage_order): Likewise.
11846         * genmatch.cc (dt_simplify::gen_1): Likewise.
11847         * ggc-common.cc (gt_pch_save): Likewise.
11848         * print-rtl.cc: Likewise.
11849         * rtl-iter.h (T>::array_type::~array_type): Likewise.
11850         (T>::next): Likewise.
11851         * rtl-ssa/internals.inl: Likewise.
11852         * rtl-ssa/member-fns.inl: Likewise.
11853         * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
11854         (rtx_properties::try_to_add_dest): Likewise.
11855         * rtlanal.h (growing_rtx_properties::repeat): Likewise.
11856         (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
11857         * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
11858         * sort.cc (likely): Likewise.
11859         (mergesort): Likewise.
11860         * wide-int.h (wi::eq_p): Likewise.
11861         (wi::ltu_p): Likewise.
11862         (wi::cmpu): Likewise.
11863         (wi::bit_and): Likewise.
11864         (wi::bit_and_not): Likewise.
11865         (wi::bit_or): Likewise.
11866         (wi::bit_or_not): Likewise.
11867         (wi::bit_xor): Likewise.
11868         (wi::add): Likewise.
11869         (wi::sub): Likewise.
11871 2022-05-09  Kito Cheng  <kito.cheng@sifive.com>
11873         * config/riscv/arch-canonicalize: Handle g correctly.
11875 2022-05-07  Marek Polacek  <polacek@redhat.com>
11877         PR c++/101833
11878         PR c++/47634
11879         * tree-core.h (struct attribute_spec): Update comment for HANDLER.
11881 2022-05-06  Jason Merrill  <jason@redhat.com>
11883         * diagnostic-color.cc: Add fnname and targs color entries.
11884         * doc/invoke.texi: Document them.
11886 2022-05-06  Jason Merrill  <jason@redhat.com>
11888         * vec.h (vec::iterate): Fix comment.
11890 2022-05-06   Michael Meissner  <meissner@linux.ibm.com>
11892         PR target/102059
11893         * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
11894         and -mpower10-fusion options for inlining purposes.
11896 2022-05-06  Christophe Lyon  <christophe.lyon@arm.com>
11898         * config/aarch64/iterators.md (GPF_TF_F16): Delete.
11900 2022-05-06  Marcel Vollweiler  <marcel@codesourcery.com>
11902         * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
11903         omp_runtime_apis array.
11905 2022-05-06  Hafiz Abid Qadeer  <abidh@codesourcery.com>
11907         * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
11908         (scan_sharing_clauses):  Check a restriction on allocate clause.
11910 2022-05-05  Sandra Loosemore  <sandra@codesourcery.com>
11912         * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
11913         and ORDERED clause conflict errors.  Add check for GRAINSIZE and
11914         NUM_TASKS on TASKLOOP.
11916 2022-05-05  Martin Liska  <mliska@suse.cz>
11918         * genautomata.cc (create_composed_state): Remove dead code.
11919         * graphite-poly.cc (print_pdrs): Likewise.
11920         * lto-wrapper.cc (run_gcc): Likewise.
11921         * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
11922         Likewise.
11924 2022-05-05  Martin Liska  <mliska@suse.cz>
11926         * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
11927         PROF_*.
11928         (gimple_gen_time_profiler): Likewise.
11930 2022-05-05  Martin Liska  <mliska@suse.cz>
11932         * value-prof.cc (stream_out_histogram_value): Remove sanity
11933         checking.
11935 2022-05-05  Richard Biener  <rguenther@suse.de>
11937         PR tree-optimization/104162
11938         * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
11939         &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
11940         becomes invariant.
11941         (vn_reference_insert): Likewise.
11943 2022-05-05  Richard Biener  <rguenther@suse.de>
11945         * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
11946         to real_value field.
11947         (tree_real_cst::value): Add real_value field.
11948         * tree.h (TREE_REAL_CST_PTR): Adjust.
11949         * tree.cc (build_real): Remove separate allocation.
11950         * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
11951         Likewise.
11953 2022-05-05  Richard Biener  <rguenther@suse.de>
11955         * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
11956         divisions with undefined overflow unconditionally.
11957         (pass_tree_ifcombine::execute): Rewrite stmts with undefined
11958         overflow to defined.
11960 2022-05-05  Richard Biener  <rguenther@suse.de>
11962         PR tree-optimization/105484
11963         * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
11964         whether the CFG changed.
11965         (gimple_expand_vec_exprs): When the CFG changed, clean it up.
11967 2022-05-05  Richard Biener  <rguenther@suse.de>
11969         PR tree-optimization/104595
11970         * tree-vect-patterns.cc (vect_recog_bool_pattern): For
11971         COND_EXPR do not fail if check_bool_pattern returns false.
11973 2022-05-04  Tobias Burnus  <tobias@codesourcery.com>
11975         * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
11976         item that is in an outer data-sharing clause.
11978 2022-05-04  Richard Biener  <rguenther@suse.de>
11980         PR tree-optimization/104658
11981         * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
11982         create VECTOR_BOOLEAN_TYPE_P extern defs.  Reset the vector
11983         type on nodes we promote.
11984         (vectorizable_bb_reduc_epilogue): Deal with externalized
11985         root.
11986         * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
11987         not allow VECTOR_BOOLEAN_TYPE_P extern defs.
11989 2022-05-04  Richard Biener  <rguenther@suse.de>
11991         PR tree-optimization/103116
11992         * tree-vect-stmts.cc (get_group_load_store_type): Handle the
11993         case we need peeling for gaps even though GROUP_GAP is zero.
11995 2022-05-04  Martin Liska  <mliska@suse.cz>
11997         * gengtype-state.cc (read_a_state_token): Remove dead code.
11998         * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
12000 2022-05-04  Richard Biener  <rguenther@suse.de>
12002         * gimplify.cc (gimplify_init_constructor): First gimplify,
12003         then simplify the result to a VECTOR_CST.
12005 2022-05-04  Jakub Jelinek  <jakub@redhat.com>
12007         * genconditions.cc (write_conditions): Append a { nullptr, -1 }
12008         element at the end of insn_conditions.
12009         (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
12010         ARRAY_SIZE (insn_conditions).
12012 2022-05-04  Christophe Lyon  <christophe.lyon@arm.com>
12014         PR target/104662
12015         * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
12016         vector of booleans and MVE is not enabled.
12018 2022-05-04  Richard Biener  <rguenther@suse.de>
12020         PR debug/105158
12021         * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
12022         Move debug stmts to the predecessor if moving to the
12023         destination is not possible.
12024         (remove_forwarder_block): Adjust.
12025         (remove_forwarder_block_with_phi): Likewise.
12027 2022-05-03  Roger Sayle  <roger@nextmovesoftware.com>
12029         PR tree-optimization/102950
12030         * range-op.cc (wi_optimize_signed_bitwise_op): New function to
12031         determine bounds of bitwise operations on signed types.
12032         (operator_bitwise_and::wi_fold): Call the above function.
12033         (operator_bitwise_or::wi_fold): Likewise.
12034         (operator_bitwise_xor::wi_fold): Likewise.  Additionally, the
12035         result can't be zero if the operands can't be equal.
12037 2022-05-03  Iain Sandoe  <iain@sandoe.co.uk>
12039         * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
12040         protocol class methods linker-visible.
12042 2022-05-03  Uroš Bizjak  <ubizjak@gmail.com>
12044         PR target/105079
12045         * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
12046         define_insn_and_split pattern.
12048 2022-05-03  Richard Biener  <rguenther@suse.de>
12050         PR middle-end/105083
12051         * tree-scalar-evolution.cc (scev_initialize): Verify we
12052         have appropriate loop state.
12053         * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
12054         loop init and finalization.
12056 2022-05-03  Richard Biener  <rguenther@suse.de>
12058         PR middle-end/105461
12059         * opts.cc (finish_options): Match the condition to
12060         disable flag_var_tracking to that of process_options.
12062 2022-05-03  Richard Biener  <rguenther@suse.de>
12064         * opts.cc: #undef OPTIONS_SET_P.
12065         (finish_options): Use opts_set instead of OPTIONS_SET_P.
12067 2022-05-03  Richard Biener  <rguenther@suse.de>
12069         PR tree-optimization/105394
12070         * tree-vect-generic.cc (expand_vector_condition): Adjust
12071         comp_width for non-integer mode masks as well.
12073 2022-05-03  Marcel Vollweiler  <marcel@codesourcery.com>
12075         * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
12076         omp_runtime_apis array.
12078 2022-05-02  Richard Biener  <rguenther@suse.de>
12080         * tree-scalar-evolution.cc (expression_expensive_p):
12081         Never consider mismatched calls as cheap.
12083 2022-05-02  Richard Biener  <rguenther@suse.de>
12085         PR tree-optimization/104240
12086         * tree-vect-slp.cc (op1_op0_map): New.
12087         (vect_get_operand_map): Handle compares.
12088         (vect_build_slp_tree_1): Support swapped operands for
12089         tcc_comparison.
12091 2022-05-02  Jakub Jelinek  <jakub@redhat.com>
12093         PR debug/105415
12094         * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
12095         if there is no symtab node for the VAR_DECL.
12097 2022-05-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12099         * gcov-io.cc (gcov_rewrite):  Clear the file error status.
12101 2022-05-02  Richard Biener  <rguenther@suse.de>
12103         PR tree-optimization/105437
12104         * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
12105         case where last_stmt alters control flow.
12107 2022-05-02  Richard Biener  <rguenther@suse.de>
12109         * dojump.cc (do_jump): Use CASE_CONVERT.
12110         * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
12112 2022-05-02  Jakub Jelinek  <jakub@redhat.com>
12114         * system.h: Include initializer_list.
12116 2022-05-01  Segher Boessenkool  <segher@kernel.crashing.org>
12118         * config/rs6000/constraints.md (Y constraint): Fix comment.
12120 2022-05-01  Aldy Hernandez  <aldyh@redhat.com>
12122         * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
12123         VR_RANGE before passing a piecewise range to set_range_info_raw.
12125 2022-04-30  Patrick Palka  <ppalka@redhat.com>
12127         * gengtype.cc (adjust_field_tree_exp): Remove.
12128         (adjust_field_type): Don't handle the "tree_exp" special attribute.
12129         * tree-core.h (struct tree_exp): Remove "special" and "desc"
12130         attributes.  Add "length" attribute.
12132 2022-04-29  Martin Jambor  <mjambor@suse.cz>
12134         PR ipa/100413
12135         * cgraph.cc (cgraph_node::remove): Release body of the node this
12136         is clone_of if appropriate.
12138 2022-04-29  Uroš Bizjak  <ubizjak@gmail.com>
12140         PR target/51954
12141         * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
12143 2022-04-29  Richard Biener  <rguenther@suse.de>
12145         * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
12146         (canonicalize_cond_expr_cond): Move here from gimple.cc,
12147         allow both COND_EXPR and GIMPLE_COND forms.
12148         * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
12149         * gimple.cc (canonicalize_cond_expr_cond): Remove here.
12150         * gimple.h (canonicalize_cond_expr_cond): Likewise.
12151         * gimple-loop-versioning.cc (loop_versioning::version_loop):
12152         Use is_gimple_condexpr_for_cond.
12153         * tree-parloops.cc (gen_parallel_loop): Likewise.
12154         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
12155         a proper cond expr after canonicalize_cond_expr_cond.
12156         Use is_gimple_condexpr_for_cond where appropriate.
12157         * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
12158         * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
12160 2022-04-29  Richard Biener  <rguenther@suse.de>
12162         * gimple-iterator.h (gsi_after_labels): Add overload for
12163         gimple_seq.
12164         (gsi_start_1): Rename to gsi_start and take a reference.
12165         (gsi_last_1): Likewise.
12166         * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
12167         * omp-low.cc (lower_rec_input_clauses): Likewise.
12168         (lower_omp_scan): Likewise.
12170 2022-04-29  Richard Biener  <rguenther@suse.de>
12172         PR tree-optimization/105431
12173         * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
12174         (powi_as_mults): Use absu_hwi.
12175         (gimple_expand_builtin_powi): Remove now pointless n != -n
12176         check.
12178 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
12180         * range-op.cc (empty_range_varying): Move to range-op.h.
12181         (range_true): Move to range.h.
12182         (range_false): Same.
12183         (range_true_and_false): Same.
12184         (enum bool_range_state): Move to range-op.h.
12185         (relop_early_resolve): Same.
12186         (operator_equal::op1_op2_relation): Abstract code to...
12187         (equal_op1_op2_relation): ...here.
12188         (operator_not_equal::op1_op2_relation): Abstract code to...
12189         (not_equal_op1_op2_relation): ...here.
12190         (operator_lt::op1_op2_relation): Abstract code to...
12191         (lt_op1_op2_relation): ...here.
12192         (operator_le::op1_op2_relation): Abstract code to...
12193         (le_op1_op2_relation): ...here.
12194         (operator_gt::op1_op2_relation): Abstract code to...
12195         (gt_op1_op2_relation): ...here.
12196         (operator_ge::op1_op2_relation): Abstract code to...
12197         (ge_op1_op2_relation): ...here.
12198         (class range_op_table): Move to range-op.h.
12199         * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
12200         (not_equal_op1_op2_relation): Same.
12201         (lt_op1_op2_relation): Same.
12202         (le_op1_op2_relation): Same.
12203         (gt_op1_op2_relation): Same.
12204         (ge_op1_op2_relation): Same.
12205         (enum bool_range_state): Same.
12206         (get_bool_state): Same.
12207         (empty_range_varying): Same.
12208         (relop_early_resolve): Same.
12209         (class range_op_table): Same.
12210         * range.h (range_true): Same.
12211         (range_false): Same.
12212         (range_true_and_false): Same.
12214 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
12216         * gimple-fold.cc (size_must_be_zero_p): Use reference
12217         instead of pointer
12218         * gimple-ssa-evrp-analyze.cc
12219         (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
12220         intersect to legacy_verbose_intersect.
12221         * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
12222         of pointer.
12223         * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
12224         instead of value_range_equiv.
12225         * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
12226         instead of pointer.
12227         (find_case_label_range): Same.
12228         * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
12229         (value_range_equiv::legacy_verbose_intersect): ...this.
12230         (value_range_equiv::union_): Rename to...
12231         (value_range_equiv::legacy_verbose_union_): ...this.
12232         * value-range-equiv.h (class value_range_equiv): Rename union and
12233         intersect to legacy_verbose_{intersect,union}.
12234         * value-range.cc (irange::union_): Rename to...
12235         (irange::legacy_verbose_union_): ...this.
12236         (irange::intersect): Rename to...
12237         (irange::legacy_verbose_intersect): ...this.
12238         * value-range.h (irange::union_): Rename union_ to
12239         legacy_verbose_union.
12240         (irange::intersect): Rename intersect to legacy_verbose_intersect.
12241         * vr-values.cc (vr_values::update_value_range): Same.
12242         (vr_values::extract_range_for_var_from_comparison_expr): Same.
12243         (vr_values::extract_range_from_cond_expr): Rename union_ to
12244         legacy_verbose_union.
12245         (vr_values::extract_range_from_phi_node): Same.
12247 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
12249         * gimple-ssa-evrp-analyze.cc
12250         (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
12251         that take a range.
12252         * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
12253         * ipa-prop.cc (ipcp_update_vr): Same.
12254         * tree-inline.cc (remap_ssa_name): Same.
12255         * tree-ssa-copy.cc (fini_copy_prop): Same.
12256         * tree-ssa-math-opts.cc (optimize_spaceship): Same.
12257         * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
12258         * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
12259         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
12260         * tree-ssa-strlen.cc (set_strlen_range): Same.
12261         (strlen_pass::handle_builtin_string_cmp): Same.
12262         * tree-ssanames.cc (set_range_info): Make static.
12263         (duplicate_ssa_name_range_info): Make static and add a new variant
12264         calling the static.
12265         * tree-ssanames.h (set_range_info): Remove version taking wide ints.
12266         (duplicate_ssa_name_range_info): Remove version taking a
12267         range_info_def and replace with a version taking SSA names.
12268         * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
12269         that take a range.
12270         (vect_do_peeling): Same.
12271         * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
12272         * vr-values.cc (simplify_truth_ops_using_ranges): Same.
12274 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
12276         * value-range.h (irange::irange): Use set_undefined.
12278 2022-04-29  Aldy Hernandez  <aldyh@redhat.com>
12280         * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
12281         irange::intersect (wide_int, wide_int).
12282         * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
12283         (adjust_imagpart_expr): Same.
12284         * value-range.h (irange::intersect (wide_int, wide_int)): Make
12285         private.
12287 2022-04-29  Richard Biener  <rguenther@suse.de>
12289         PR tree-optimization/104322
12290         * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
12292 2022-04-29  Richard Biener  <rguenther@suse.de>
12294         PR middle-end/105376
12295         * tree.cc (build_real): Special case dconst* arguments
12296         for decimal floating point types.
12298 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12300         * doc/gcov.texi (Profiling and Test Coverage in Freestanding
12301         Environments): New section.
12303 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12305         * doc/gcov-tool.texi: Document merge-stream subcommand.
12306         * doc/invoke.texi (fprofile-info-section): Mention merge-stream
12307         subcommand of gcov-tool.
12308         * gcov-tool.cc (gcov_profile_merge_stream): Declare.
12309         (print_merge_stream_usage_message): New.
12310         (merge_stream_usage): Likewise.
12311         (do_merge_stream): Likewise.
12312         (print_usage): Call print_merge_stream_usage_message().
12313         (main): Call do_merge_stream() to execute merge-stream subcommand.
12315 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12317         * gcov-io.cc (gcov_file_error): New enum.
12318         (gcov_var): Use gcov_file_error enum for the error member.
12319         (gcov_open): Use GCOV_FILE_NO_ERROR.
12320         (gcov_close): Use GCOV_FILE_WRITE_ERROR.
12321         (gcov_write): Likewise.
12322         (gcov_write_unsigned): Likewise.
12323         (gcov_write_string): Likewise.
12324         (gcov_read_bytes): Set error code if EOF is reached.
12325         (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
12327 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12329         * gcov-io.cc (GCOV_MODE_STDIN): Define.
12330         (gcov_position): For gcov-tool, return calculated position if file is
12331         stdin.
12332         (gcov_open):  For gcov-tool, use stdin if filename is NULL.
12333         (gcov_close): For gcov-tool, do not close stdin.
12334         (gcov_read_bytes): For gcov-tool, update position if file is stdin.
12335         (gcov_sync): For gcov-tool, discard input if file is stdin.
12337 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12339         * doc/invoke.texi (fprofile-info-section): Mention
12340         __gcov_filename_to_gcfn().  Use "freestanding" to match with C11
12341         standard language.  Fix minor example code issues.
12342         * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
12344 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12346         * gcov-io.cc (gcov_seek): Make it static.
12347         * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
12349 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12351         * gcov-tool.cc (gcov_do_dump): Add mode parameter.
12352         (gcov_output_files): Open files for reading and writing.
12354 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12356         * gcov-io.cc (gcov_open): Always use the mode parameter.
12357         * gcov-io.h (gcov_open): Declare it unconditionally.
12359 2022-04-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12361         * gcov-tool.cc (gcov_profile_merge): Adjust return type.
12362         (profile_merge): Allow merging of directories which contain no profile
12363         files.
12365 2022-04-28  David Malcolm  <dmalcolm@redhat.com>
12367         * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
12368         fpath.txt output.
12370 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
12372         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
12373         temporary only if out overlaps compare_op, not when it overlaps
12374         op0 or op1.
12376 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
12378         PR lto/105399
12379         * cgraph.cc (cgraph_node::verify_node): Don't verify
12380         semantic_interposition flag against
12381         opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
12383 2022-04-28  Jakub Jelinek  <jakub@redhat.com>
12385         PR target/105331
12386         * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
12387         temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
12388         of it.
12390 2022-04-28  Jonathan Wakely  <jwakely@redhat.com>
12392         * doc/install.texi (Configuration): Remove misleading text
12393         around LE PowerPC Linux multilibs.
12395 2022-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12397         PR d/103528
12398         * doc/install.texi (Tools/packages necessary for building GCC)
12399         (GDC): Document libphobos requirement.
12400         (Host/target specific installation notes for GCC, *-*-solaris2*):
12401         Document libphobos and GDC specifics.
12403 2022-04-28  Richard Biener  <rguenther@suse.de>
12405         PR tree-optimization/105219
12406         * tree-vect-loop.cc (vect_transform_loop): Disable
12407         special code narrowing the vectorized epilogue max
12408         iterations when peeling for alignment or gaps was in effect.
12410 2022-04-28  Xi Ruoyao  <xry111@mengyan1223.wang>
12412         * config/loongarch/loongarch.cc
12413         (loongarch_flatten_aggregate_field): Ignore empty fields for
12414         RECORD_TYPE.
12416 2022-04-27  Lulu Cheng  <chenglulu@loongson.cn>
12418         * config/loongarch/loongarch.md: Add fdiv define_expand template,
12419         then generate floating-point division and floating-point reciprocal
12420         instructions.
12422 2022-04-27  Lulu Cheng  <chenglulu@loongson.cn>
12424         * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
12425         to PLV instruction templates.
12427 2022-04-27  Richard Biener  <rguenther@suse.de>
12429         PR middle-end/104492
12430         * gimple-ssa-warn-access.cc
12431         (pass_waccess::warn_invalid_pointer): Exclude equality compare
12432         diagnostics for all kind of invalidations.
12433         (pass_waccess::check_dangling_uses): Fix post-dominator query.
12434         (pass_waccess::check_pointer_uses): Likewise.
12436 2022-04-27  Andreas Krebbel  <krebbel@linux.ibm.com>
12438         PR target/102024
12439         * config/s390/s390-protos.h (s390_function_arg_vector): Remove
12440         prototype.
12441         * config/s390/s390.cc (s390_single_field_struct_p): New function.
12442         (s390_function_arg_vector): Invoke s390_single_field_struct_p.
12443         (s390_function_arg_float): Likewise.
12445 2022-04-27  Jakub Jelinek  <jakub@redhat.com>
12447         PR sanitizer/105396
12448         * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
12449         where offset is bigger than off but smaller than m_prev_offset + 32
12450         bits by pushing one or more 0 bytes.  Sink the
12451         m_shadow_bytes.safe_push (value); flush_if_full (); statements from
12452         all cases to the end of the function.
12454 2022-04-27  Kewen Lin  <linkw@linux.ibm.com>
12456         PR target/105271
12457         * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
12458         stanza.
12460 2022-04-26  Thomas Schwinge  <thomas@codesourcery.com>
12462         * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
12463         data-share memory exhausted" error more verbose.
12465 2022-04-26  Martin Liska  <mliska@suse.cz>
12467         PR lto/105364
12468         * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
12469         (run_gcc): Parse OPT_fdiagnostics_urls_.
12470         (main): Initialize global_dc.
12472 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
12474         PR rtl-optimization/105314
12475         * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
12476         operand is equal to if_info->x, instead use the non-zero operand
12477         as one of the operands of AND with if_info->x as target.
12479 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
12481         PR tree-optimization/105374
12482         * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
12483         !fold_convertible_p rather than assuming fold_convert must succeed.
12485 2022-04-26  Jakub Jelinek  <jakub@redhat.com>
12487         PR target/105367
12488         * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
12489         el_mode == DFmode ? double_type_node : float_type_node instead of
12490         TREE_TYPE (type_in) as first arguments to mathfn_built_in.
12492 2022-04-25  David Malcolm  <dmalcolm@redhat.com>
12494         PR analyzer/104308
12495         * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
12496         the location of new_stmt in all places that don't already set it,
12497         whether explicitly, or via a call to gsi_replace.
12499 2022-04-25  Paul A. Clarke  <pc@us.ibm.com>
12501         * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
12503 2022-04-25  Andrew MacLeod  <amacleod@redhat.com>
12505         PR tree-optimization/105276
12506         * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
12507         existing global range with calculated value.
12509 2022-04-25  Richard Biener  <rguenther@suse.de>
12511         PR tree-optimization/105368
12512         * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
12514 2022-04-25  Richard Biener  <rguenther@suse.de>
12516         PR tree-optimization/100810
12517         * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
12518         (find_ssa_undef): New function.
12519         (add_candidate_1): Avoid adding derived candidates with
12520         undefined SSA names and mark the original ones.
12521         (determine_group_iv_cost_generic): Reject rewriting
12522         uses with a different IV when that involves undefined SSA names.
12524 2022-04-25  Steven G. Kargl  <kargl@gcc.gnu.org>
12526         PR target/89125
12527         * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
12528         bsd_libc_has_function.
12529         * targhooks.cc (bsd_libc_has_function): New function.
12530         Expand the supported math functions to inclue C99 libm.
12531         * targhooks.h (bsd_libc_has_function): New Prototype.
12533 2022-04-25  Richard Biener  <rguenther@suse.de>
12535         PR rtl-optimization/105231
12536         * combine.cc (distribute_notes): Assert that a REG_EH_REGION
12537         with landing pad > 0 is from i3.  Put any REG_EH_REGION note
12538         on i3 or drop it if the insn can not trap.
12539         (try_combine): Ensure that we can merge REG_EH_REGION notes
12540         with non-call exceptions.  Ensure we are not splitting a
12541         trapping part of an insn with non-call exceptions when there
12542         is any REG_EH_REGION note to preserve.
12544 2022-04-25  Hongyu Wang  <hongyu.wang@intel.com>
12546         PR target/105339
12547         * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
12548         Add parentheses for parameters and djust format.
12549         (_mm512_mask_scalef_round_pd): Ditto.
12550         (_mm512_maskz_scalef_round_pd): Ditto.
12551         (_mm512_scalef_round_ps): Ditto.
12552         (_mm512_mask_scalef_round_ps): Ditto.
12553         (_mm512_maskz_scalef_round_ps): Ditto.
12554         (_mm_scalef_round_sd): Use _mm_undefined_pd.
12555         (_mm_scalef_round_ss): Use _mm_undefined_ps.
12556         (_mm_mask_scalef_round_sd): New macro.
12557         (_mm_mask_scalef_round_ss): Ditto.
12558         (_mm_maskz_scalef_round_sd): Ditto.
12559         (_mm_maskz_scalef_round_ss): Ditto.
12561 2022-04-23  Jakub Jelinek  <jakub@redhat.com>
12563         PR target/105338
12564         * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
12565         op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
12566         cases.
12568 2022-04-22  Segher Boessenkool  <segher@kernel.crashing.org>
12570         PR target/105334
12571         * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
12572         (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
12573         (pack<mode>_hard for FMOVE128): ... this...
12574         (pack<mode>_soft for FMOVE128): ... and this.
12576 2022-04-22  Paul A. Clarke  <pc@us.ibm.com>
12578         * doc/extend.texi: Correct "This" to "These".
12580 2022-04-22  Jakub Jelinek  <jakub@redhat.com>
12582         PR rtl-optimization/105333
12583         * rtlanal.cc (replace_rtx): Use simplify_subreg or
12584         simplify_unary_operation if CONST_SCALAR_INT_P rather than just
12585         CONST_INT_P.
12587 2022-04-21  Segher Boessenkool  <segher@kernel.crashing.org>
12589         PR target/103197
12590         PR target/102146
12591         * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
12592         the "Z" alternatives in {l,st}{f,xs}iwzx.
12593         (zero_extendhi<mode>2 for EXTHI): Ditto.
12594         (zero_extendsi<mode>2 for EXTSI): Ditto.
12595         (*movsi_internal1): Ditto.
12596         (*mov<mode>_internal1 for QHI): Ditto.
12597         (movsd_hardfloat): Ditto.
12599 2022-04-21  Martin Liska  <mliska@suse.cz>
12601         * configure.ac: Enable compressed debug sections for mold
12602         linker.
12603         * configure: Regenerate.
12605 2022-04-21  Jakub Jelinek  <jakub@redhat.com>
12607         PR debug/105203
12608         * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
12609         on DEBUG_INSNs.
12611 2022-04-20  Richard Biener  <rguenther@suse.de>
12613         PR tree-optimization/104912
12614         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
12615         the cost model check to a separate BB to make sure it is
12616         checked first and not combined with other version checks.
12618 2022-04-20  Richard Biener  <rguenther@suse.de>
12620         PR tree-optimization/105312
12621         * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
12622         VCOND and VCONDU for EQ and NE.
12624 2022-04-20  Jan Hubicka  <hubicka@ucw.cz>
12626         PR ipa/103818
12627         * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
12628         poly_offset_int to avoid overflow.
12629         (modref_access_node::update2): likewise.
12631 2022-04-20  Jakub Jelinek  <jakub@redhat.com>
12633         PR ipa/105306
12634         * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
12635         to opt_for_fn (decl, flag_semantic_interposition).
12636         * cgraphclones.cc (cgraph_node::create_clone): Copy over
12637         semantic_interposition flag.
12639 2022-04-19  Sergei Trofimovich  <siarheit@google.com>
12641         PR gcov-profile/105282
12642         * value-prof.cc (stream_out_histogram_value): Allow negative counts
12643         on HIST_TYPE_INDIR_CALL.
12645 2022-04-19  Jakub Jelinek  <jakub@redhat.com>
12647         PR target/105257
12648         * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
12649         use gen_raw_REG instead of gen_rtx_REG and copy over also
12650         ORIGINAL_REGNO.  Use return 0; instead of /* fallthrough */.
12652 2022-04-19  Richard Biener  <rguenther@suse.de>
12654         PR tree-optimization/104010
12655         PR tree-optimization/103941
12656         * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
12657         we run into stmts in patterns continue walking those
12658         for uses outside of the vectorized region instead of
12659         marking the lane live.
12661 2022-04-18  Hans-Peter Nilsson  <hp@axis.com>
12663         * doc/install.texi <CRIS>: Remove references to removed websites and
12664         adjust for cris-*-elf being the only remaining toolchain.
12666 2022-04-18  Hans-Peter Nilsson  <hp@axis.com>
12668         * doc/invoke.texi <CRIS>: Remove references to options for removed
12669         subtarget cris-axis-linux-gnu and tweak wording accordingly.
12671 2022-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
12673         * doc/install.texi (Specific): Adjust mingw-w64 download link.
12675 2022-04-15  Hongyu Wang  <hongyu.wang@intel.com>
12677         * config/i386/smmintrin.h: Correct target pragma from sse4.1
12678         and sse4.2 to crc32 for crc32 intrinsics.
12680 2022-04-14  Indu Bhagat  <indu.bhagat@oracle.com>
12682         PR debug/105089
12683         * ctfc.cc (ctf_dvd_ignore_insert): New function.
12684         (ctf_dvd_ignore_lookup): Likewise.
12685         (ctf_add_variable): Keep track of non-defining decl DIEs.
12686         (new_ctf_container): Initialize the new hash-table.
12687         (ctfc_delete_container): Empty hash-table.
12688         * ctfc.h (struct ctf_container): Add new hash-table.
12689         (ctf_dvd_ignore_lookup): New declaration.
12690         (ctf_add_variable): Add additional argument.
12691         * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
12692         record for non-defining decl for which a defining decl exists
12693         in the same TU.
12694         (ctf_preprocess): Defer updating the number of global objts
12695         until here.
12696         (output_ctf_header): Use ctfc_vars_list_count as some CTF
12697         variables may not make it to the final output.
12698         (output_ctf_vars): Likewise.
12699         * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
12700         if this is known to be a non-defining decl DIE.
12702 2022-04-14  Indu Bhagat  <indu.bhagat@oracle.com>
12704         * ctfc.h (struct ctf_container): Introduce a new member.
12705         * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
12706         variable.
12708 2022-04-14  Jakub Jelinek  <jakub@redhat.com>
12710         PR target/105247
12711         * simplify-rtx.cc (simplify_const_binary_operation): For shifts
12712         or rotates by VOIDmode constant integer shift count use word_mode
12713         for the operand if int_mode is narrower than word.
12715 2022-04-14  Robin Dapp  <rdapp@linux.ibm.com>
12717         * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
12718         (s390_get_unit_mask): Likewise.
12719         (s390_is_fpd): Likewise.
12720         (s390_is_fxd): Likewise.
12721         * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
12722         * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
12723         Add z16.
12724         (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
12725         Likewise.
12726         * config/s390/3931.md: New file.
12728 2022-04-13  Richard Sandiford  <richard.sandiford@arm.com>
12730         PR tree-optimization/105254
12731         * config/aarch64/aarch64.cc
12732         (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
12733         loop_vec_info as argument.  Restrict the unroll factor to values
12734         that divide the VF.
12735         (aarch64_vector_costs::finish_cost): Update call accordingly.
12737 2022-04-13  Richard Biener  <rguenther@suse.de>
12739         PR tree-optimization/105263
12740         * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
12741         negates in multiplication chains with DFP.
12743 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
12745         PR middle-end/105253
12746         * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
12747         use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
12748         comparisons or tree_nop_conversion_p checks.
12750 2022-04-13  Hongyu Wang  <hongyu.wang@intel.com>
12752         PR target/103069
12753         * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
12754           Add missing set to target_val at pause label.
12756 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
12758         PR target/105234
12759         * attribs.cc (decl_attributes): Don't set
12760         DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
12761         NULL.
12763 2022-04-13  Richard Biener  <rguenther@suse.de>
12765         PR tree-optimization/105250
12766         * fold-const.cc (fold_convertible_p): Revert
12767         r12-7979-geaaf77dd85c333, instead check for size equality
12768         of the vector types involved.
12770 2022-04-13  Richard Biener  <rguenther@suse.de>
12772         Revert:
12773         2022-04-13  Richard Biener  <rguenther@suse.de>
12775         PR tree-optimization/104912
12776         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
12777         the cost model check to a separate BB to make sure it is
12778         checked first and not combined with other version checks.
12780 2022-04-13  Richard Biener  <rguenther@suse.de>
12782         PR tree-optimization/104912
12783         * tree-vect-loop-manip.cc (vect_loop_versioning): Split
12784         the cost model check to a separate BB to make sure it is
12785         checked first and not combined with other version checks.
12787 2022-04-13  Jakub Jelinek  <jakub@redhat.com>
12789         * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
12791 2022-04-12  Antoni Boucher  <bouanto@zoho.com>
12793         PR jit/104072
12794         * reginfo.cc: New functions (clear_global_regs_cache,
12795         reginfo_cc_finalize) to avoid an issue where compiling the same
12796         code multiple times gives an error about assigning the same
12797         register to 2 global variables.
12798         * rtl.h: New function (reginfo_cc_finalize).
12799         * toplev.cc: Call it.
12801 2022-04-12  Antoni Boucher  <bouanto@zoho.com>
12803         PR jit/104071
12804         * toplev.cc: Call the new function tree_cc_finalize in
12805         toplev::finalize.
12806         * tree.cc: New functions (clear_nonstandard_integer_type_cache
12807         and tree_cc_finalize) to clear the cache of non-standard integer
12808         types to avoid having issues with some optimizations of
12809         bitcast where the SSA_NAME will have a size of a cached
12810         integer type that should have been invalidated, causing a
12811         comparison of integer constant to fail.
12812         * tree.h: New function (tree_cc_finalize).
12814 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
12816         PR target/97348
12817         * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
12818         * config/nvptx/nvptx.opt (misa): Adjust comment.
12820 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
12822         Revert:
12823         2022-03-03  Tom de Vries  <tdevries@suse.de>
12825         * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
12827 2022-04-12  Thomas Schwinge  <thomas@codesourcery.com>
12829         Revert:
12830         2022-03-31  Tom de Vries  <tdevries@suse.de>
12832         * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
12834 2022-04-12  Richard Biener  <rguenther@suse.de>
12836         PR ipa/104303
12837         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
12838         include local escaped memory as obviously necessary stores.
12840 2022-04-12  Richard Biener  <rguenther@suse.de>
12842         PR tree-optimization/105235
12843         * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
12844         return whether the CFG changed.
12845         (execute_cse_sincos_1): Adjust.
12847 2022-04-12  Przemyslaw Wirkus  <Przemyslaw.Wirkus@arm.com>
12849         PR target/104144
12850         * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
12851         (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
12852         (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
12853         (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
12854         (MULTILIB_REUSE): Remove remap rules for Armv9-a.
12855         * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
12856         (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
12858 2022-04-12  Richard Biener  <rguenther@suse.de>
12860         PR tree-optimization/105232
12861         * tree.cc (component_ref_size): Bail out for too large
12862         or non-constant sizes.
12864 2022-04-12  Richard Biener  <rguenther@suse.de>
12866         PR tree-optimization/105226
12867         * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
12868         we can split the exit of an outer loop we choose to version.
12870 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
12872         * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
12873         ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
12874         ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
12875         ix86_emit_swdivsf, ix86_emit_swsqrtsf,
12876         ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
12877         Formatting fix.
12878         * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
12880 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
12882         PR target/105214
12883         * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
12884         do_pending_stack_adjust.
12886 2022-04-12  Jakub Jelinek  <jakub@redhat.com>
12888         PR rtl-optimization/105211
12889         * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
12890         fails for TREE_TYPE (arg), retry it with
12891         TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
12892         fails, emit call normally.
12894 2022-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>
12896         * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
12897         * config.gcc: Add z16 as march/mtune switch.
12898         * config/s390/driver-native.cc (s390_host_detect_local_cpu):
12899         Recognize z16 with -march=native.
12900         * config/s390/s390-opts.h (enum processor_type): Rename
12901         PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
12902         * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
12903         (PROCESSOR_3931_Z16): ... throughout the file.
12904         (s390_processor processor_table): Add z16 as cpu string.
12905         * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
12906         PF_Z16.
12907         (TARGET_CPU_ARCH14): Rename to ...
12908         (TARGET_CPU_Z16): ... this.
12909         (TARGET_CPU_ARCH14_P): Rename to ...
12910         (TARGET_CPU_Z16_P): ... this.
12911         (TARGET_ARCH14): Rename to ...
12912         (TARGET_Z16): ... this.
12913         (TARGET_ARCH14_P): Rename to ...
12914         (TARGET_Z16_P): ... this.
12915         * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
12916         check TARGET_Z16 instead of TARGET_ARCH14.
12917         * config/s390/s390.opt: Add z16 to processor_type.
12918         * doc/invoke.texi: Document z16 and arch14.
12920 2022-04-12  chenglulu  <chenglulu@loongson.cn>
12922         * config/loongarch/loongarch.cc: Fix bug for
12923         tmpdir-g++.dg-struct-layout-1/t033.
12925 2022-04-11  Peter Bergner  <bergner@linux.ibm.com>
12927         PR target/104894
12928         * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
12929         to longcall functions.
12931 2022-04-11  Jason Merrill  <jason@redhat.com>
12933         * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
12935 2022-04-11  Segher Boessenkool  <segher@kernel.crashing.org>
12937         PR target/105213
12938         PR target/103623
12939         * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
12941 2022-04-11  Jakub Jelinek  <jakub@redhat.com>
12943         PR tree-optimization/105218
12944         * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
12945         more than one predecessor or phi's bb more than 2 predecessors,
12946         reset phi result uses instead of adding a debug temp.
12948 2022-04-11  Kito Cheng  <kito.cheng@sifive.com>
12950         PR target/104853
12951         * config.gcc: Pass -misa-spec to arch-canonicalize and
12952         multilib-generator.
12953         * config/riscv/arch-canonicalize: Adding -misa-spec option.
12954         (SUPPORTED_ISA_SPEC): New.
12955         (arch_canonicalize): New argument `isa_spec`.
12956         Handle multiple ISA spec versions.
12957         * config/riscv/multilib-generator: Adding -misa-spec option.
12959 2022-04-11  Kito Cheng  <kito.cheng@sifive.com>
12961         * config/riscv/arch-canonicalize: Add TODO item.
12962         (IMPLIED_EXT): Sync.
12963         (arch_canonicalize): Checking until no change.
12965 2022-04-11  Tamar Christina  <tamar.christina@arm.com>
12967         PR target/105197
12968         * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
12969         not masked.
12971 2022-04-11  Jason Merrill  <jason@redhat.com>
12973         PR c++/100370
12974         * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
12975         deref == -1.
12977 2022-04-11  Jakub Jelinek  <jakub@redhat.com>
12979         PR tree-optimization/104639
12980         * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
12981         (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
12982         into x != cst3.
12984 2022-04-11  Jeff Law  <jeffreyalaw@gmail.com>
12986         * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
12987         sign bit of the source ends up in CC.
12989 2022-04-09  Jan Hubicka  <hubicka@ucw.cz>
12991         PR ipa/103376
12992         * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
12993         flag.
12995 2022-04-09  Jan Hubicka  <hubicka@ucw.cz>
12997         * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
12998         nondeterministic and side_effects flags.
13000 2022-04-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13002         PR target/105157
13003         * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
13004         * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
13005         (TARGET_CPU_MASK): Likewise.
13006         (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
13007         * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
13008         (aarch64_get_arch): Likewise.
13009         (aarch64_override_options): Use TARGET_CPU_NBITS.
13011 2022-04-08  Richard Biener  <rguenther@suse.de>
13013         PR tree-optimization/105198
13014         * tree-predcom.cc (find_looparound_phi): Check whether
13015         the found memory location of the entry value is clobbered
13016         inbetween the value we want to use and loop entry.
13018 2022-04-08  Jakub Jelinek  <jakub@redhat.com>
13020         PR tree-optimization/105189
13021         * fold-const.cc (make_range_step): Fix up handling of
13022         (unsigned) x +[low, -] ranges for signed x if low fits into
13023         typeof (x).
13025 2022-04-08  Richard Biener  <rguenther@suse.de>
13027         PR tree-optimization/105175
13028         * tree-vect-stmts.cc (vectorizable_operation): Suppress
13029         -Wvector-operation-performance if using emulated vectors.
13030         * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
13031         -Wvector-operation-performance when suppressed.
13032         (expand_vector_parallel): Likewise.
13033         (expand_vector_comparison): Likewise.
13034         (expand_vector_condition): Likewise.
13035         (lower_vec_perm): Likewise.
13036         (expand_vector_conversion): Likewise.
13038 2022-04-07  Tamar Christina  <tamar.christina@arm.com>
13040         PR target/104409
13041         * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
13042         (aarch64_general_init_builtins): Move LS64 code.
13043         * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
13044         arm_acle.h
13045         * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
13046         * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
13048 2022-04-07  Richard Biener  <rguenther@suse.de>
13049             Jan Hubicka  <hubicka@ucw.cz>
13051         PR ipa/104303
13052         * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
13053         ref_may_alias_global_p, ref_may_alias_global_p,
13054         stmt_may_clobber_global_p, pt_solution_includes_global): Add
13055         bool parameters indicating whether escaped locals should be
13056         considered global.
13057         * tree-ssa-structalias.cc (pt_solution_includes_global):
13058         When the new escaped_nonlocal_p flag is true also consider
13059         pt->vars_contains_escaped.
13060         * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
13061         Pass down new escaped_nonlocal_p flag.
13062         (ref_may_alias_global_p): Likewise.
13063         (stmt_may_clobber_global_p): Likewise.
13064         (ref_may_alias_global_p_1): Likewise.  For decls also
13065         query the escaped solution if true.
13066         (ref_may_access_global_memory_p): Remove.
13067         (modref_may_conflict): Use ref_may_alias_global_p with
13068         escaped locals considered global.
13069         (ref_maybe_used_by_stmt_p): Adjust.
13070         * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
13071         Likewise.
13072         * tree-ssa-dse.cc (dse_classify_store): Likewise.
13073         * trans-mem.cc (thread_private_new_memory): Likewise, but
13074         consider escaped locals global.
13075         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
13077 2022-04-07  Richard Biener  <rguenther@suse.de>
13079         PR tree-optimization/105185
13080         * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
13081         modref query again.
13083 2022-04-07  Tamar Christina  <tamar.christina@arm.com>
13085         PR target/104049
13086         * config/aarch64/aarch64-simd.md
13087         (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
13088         (reduc_plus_scal_<mode>): ... This.
13089         (reduc_plus_scal_v4sf): Moved.
13090         (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
13091         (reduc_plus_scal_v2si): ... This.
13093 2022-04-07  Jakub Jelinek  <jakub@redhat.com>
13095         PR tree-optimization/102586
13096         * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
13097         langhook.
13098         * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
13099         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
13100         * gimple-fold.cc (clear_padding_type): Use ftype instead of
13101         TREE_TYPE (field) some more.  For artificial FIELD_DECLs without
13102         name try the lang_hooks.types.classtype_as_base langhook and
13103         if it returns non-NULL, use that instead of ftype for recursive call.
13105 2022-04-07  Jakub Jelinek  <jakub@redhat.com>
13107         PR tree-optimization/105150
13108         * tree.cc (tree_builtin_call_types_compatible_p): New function.
13109         (get_call_combined_fn): Use it.
13111 2022-04-07  Richard Biener  <rguenther@suse.de>
13113         PR middle-end/105165
13114         * tree-complex.cc (expand_complex_asm): Sorry for asm goto
13115         _Complex outputs.
13117 2022-04-07  liuhongt  <hongtao.liu@intel.com>
13119         * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
13120         Removed.
13121         (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
13122         for mask_applied.
13123         (<code><mode>3<mask_name>): Ditto.
13124         (*<code><mode>3<mask_name>): Ditto.
13125         (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
13126         real instruction.
13127         (VFB_512): Ditto.
13128         (VFB): Ditto.
13130 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
13132         PR rtl-optimization/104985
13133         * combine.cc (struct undo): Add where.regno member.
13134         (do_SUBST_MODE): Rename to ...
13135         (subst_mode): ... this.  Change first argument from rtx * into int,
13136         operate on regno_reg_rtx[regno] and save regno into where.regno.
13137         (SUBST_MODE): Remove.
13138         (try_combine): Use subst_mode instead of SUBST_MODE, change first
13139         argument from regno_reg_rtx[whatever] to whatever.  For UNDO_MODE, use
13140         regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
13141         (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
13142         instead of *undo->where.r.
13143         (simplify_set): Use subst_mode instead of SUBST_MODE, change first
13144         argument from regno_reg_rtx[whatever] to whatever.
13146 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
13148         PR target/105069
13149         * config/sh/sh.opt (mdiv=): Add Save.
13151 2022-04-06  Martin Liska  <mliska@suse.cz>
13153         PR driver/105096
13154         * common.opt: Document properly based on what it does.
13155         * gcc.cc (display_help): Unify with what we have in common.opt.
13156         * opts.cc (common_handle_option): Do not print undocumented
13157         options.
13159 2022-04-06  Xi Ruoyao  <xry111@mengyan1223.wang>
13161         * config/mips/mips.cc (mips_fpr_return_fields): Ignore
13162         cxx17_empty_base_field_p fields and set an indicator.
13163         (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
13164         (mips_function_value_1): Inform psABI change about C++17 empty
13165         bases.
13167 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
13169         PR tree-optimization/105150
13170         * gimple.cc (gimple_builtin_call_types_compatible_p): Use
13171         builtin_decl_explicit here...
13172         (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
13173         here.
13175 2022-04-06  Richard Biener  <rguenther@suse.de>
13177         PR tree-optimization/105173
13178         * tree-ssa-reassoc.cc (find_insert_point): Get extra
13179         insert_before output argument and compute it.
13180         (insert_stmt_before_use): Adjust.
13181         (rewrite_expr_tree): Likewise.
13183 2022-04-06  Richard Biener  <rguenther@suse.de>
13185         PR ipa/105166
13186         * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
13187         out for non-pointer arguments.
13189 2022-04-06  Richard Biener  <rguenther@suse.de>
13191         PR tree-optimization/105163
13192         * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
13193         negated abnormals.
13195 2022-04-06  Jakub Jelinek  <jakub@redhat.com>
13197         PR tree-optimization/105150
13198         * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
13199         For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
13200         preferrably on builtin_decl_explicit decl rather than fndecl.
13201         * tree-ssa-strlen.cc (valid_builtin_call): Don't call
13202         gimple_builtin_call_types_compatible_p here.
13204 2022-04-06  Richard Sandiford  <richard.sandiford@arm.com>
13206         PR tree-optimization/103761
13207         * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
13208         the ncopies parameter with an slp_node parameter.  Calculate the
13209         number of vectors based on it and vectype.  Rename lambda to
13210         group_memory_nvectors.
13211         (vectorizable_store, vectorizable_load): Update calls accordingly.
13213 2022-04-06  Martin Liska  <mliska@suse.cz>
13215         * doc/invoke.texi: Document it.
13217 2022-04-06  Richard Biener  <rguenther@suse.de>
13219         PR tree-optimization/105148
13220         * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
13221         2 and 3 of ARRAY_REFs.
13223 2022-04-06  Roger Sayle  <roger@nextmovesoftware.com>
13225         * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
13226         (*andnottf3): Replace with...
13227         (*andnot<mode>3): New define_insn using ANDNOT_MODE.
13229 2022-04-06  Richard Biener  <rguenther@suse.de>
13231         PR tree-optimization/105142
13232         * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
13233         basic-block parameter.
13234         (maybe_fold_or_comparisons): Likewise.
13235         * gimple-fold.cc (follow_outer_ssa_edges): New.
13236         (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
13237         when an outer condition basic-block is specified.
13238         (and_comparisons_1, and_var_with_comparison,
13239         and_var_with_comparison_1, or_comparisons_1,
13240         or_var_with_comparison, or_var_with_comparison_1): Receive and pass
13241         down the outer condition basic-block.
13242         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
13243         basic-block of the outer condition.
13245 2022-04-06  Kewen Lin  <linkw@linux.ibm.com>
13247         PR target/105002
13248         * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
13249         comparison codes UNLT/UNLE/UNGT/UNGE.
13251 2022-04-05  David Malcolm  <dmalcolm@redhat.com>
13253         * doc/extend.texi (Common Function Attributes): Document that
13254         'access' does not imply 'nonnull'.
13256 2022-04-05  Uroš Bizjak  <ubizjak@gmail.com>
13258         PR target/105139
13259         * config/i386/mmx.md (*movv2qi_internal):
13260         Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
13262 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
13264         * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
13265         define_expand and turn operands 0 and 1 from REGs to MEMs.
13266         (*aarch64_cpymemdi): New pattern.
13267         (aarch64_setmemdi): Turn into a define_expand and turn operand 0
13268         from a REG to a MEM.
13269         (*aarch64_setmemdi): New pattern.
13270         * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
13271         copy_to_mode_reg on all three registers.  Replace the original
13272         MEM addresses rather than creating wild reads and writes.
13273         (aarch64_expand_setmem_mops): Likewise for the size and for the
13274         destination memory and address.
13276 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
13278         PR target/103147
13279         * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
13280         * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
13281         from aarch64_simd_switcher.
13282         * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
13283         New variable.
13284         (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
13285         (register_tuple_type): Add more asserts.  Expect the alignment
13286         of the structure to be subject to flag_pack_struct and
13287         maximum_field_alignment.  Set aarch64_simd_tuple_modes.
13288         (aarch64_simd_switcher::aarch64_simd_switcher): New function.
13289         (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
13290         (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
13291         (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
13292         while calling aarch64_init_simd_builtins.
13293         * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
13294         (sve_switcher::~sve_switcher): Remove code now performed by
13295         aarch64_simd_switcher.
13297 2022-04-05  Richard Sandiford  <richard.sandiford@arm.com>
13299         PR target/104897
13300         * config/aarch64/aarch64-sve-builtins.cc
13301         (function_resolver::infer_vector_or_tuple_type): Use error_n
13302         for "%d vectors" messages.
13304 2022-04-05  Chung-Lin Tang  <cltang@codesourcery.com>
13306         * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
13307         argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
13308         current clause.
13310 2022-04-05  Richard Biener  <rguenther@suse.de>
13312         PR c/105151
13313         * passes.def (pass_walloca): Move early instance into
13314         pass_build_ssa_passes to make SSA form available.
13316 2022-04-05  liuhongt  <hongtao.liu@intel.com>
13318         PR target/101908
13319         * config/i386/i386.cc (ix86_split_stlf_stall_load): New
13320         function
13321         (ix86_reorg): Call ix86_split_stlf_stall_load.
13322         * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
13323         param.
13325 2022-04-05  Alexandre Oliva  <oliva@adacore.com>
13327         * targhooks.cc (default_zero_call_used_regs): Attempt to group
13328         regs that the target refuses to use in their natural modes.
13329         (zcur_select_mode_rtx): New.
13330         * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
13331         (hard_regno_max_nregs): Define.
13332         * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
13334 2022-04-04  Alex Coplan  <alex.coplan@arm.com>
13336         * doc/match-and-simplify.texi: Fix typos.
13338 2022-04-04  Jakub Jelinek  <jakub@redhat.com>
13340         PR target/105144
13341         * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
13342         only if configured with --enable-maintainer-mode, otherwise compare
13343         tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
13344         if they differ, emit a message and fail.
13346 2022-04-04  Jakub Jelinek  <jakub@redhat.com>
13348         PR target/105144
13349         * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
13350         * config/aarch64/aarch64-tune.md: Regenerated.
13352 2022-04-04  Richard Biener  <rguenther@suse.de>
13354         PR tree-optimization/105132
13355         * tree-vect-stmts.cc (vectorizable_operation): Check that
13356         the input vectors have the same number of elements.
13358 2022-04-04  Richard Biener  <rguenther@suse.de>
13360         PR middle-end/105140
13361         * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
13363 2022-04-03  Jeff Law  <jeffreyalaw@gmail.com>
13365         PR target/104987
13366         * config/iq2000/iq2000.md (bbi): New attribute,  default to no.
13367         (delay slot descripts): Use different delay slot description when
13368         the insn as the "bbi" attribute.
13369         (bbi, bbin patterns): Set the bbi attribute to yes.
13371 2022-04-03  Jakub Jelinek  <jakub@redhat.com>
13373         PR target/105123
13374         * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
13375         using word as target for expand_simple_binop when doing ASHIFT and
13376         IOR.
13378 2022-04-02  Xi Ruoyao  <xry111@mengyan1223.wang>
13380         * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
13381         NULL before dereferencing it.
13383 2022-04-01  Qing Zhao  <qing.zhao@oracle.com>
13385         * config/i386/i386.cc (zero_all_st_registers): Return the value of
13386         num_of_st.
13387         (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
13388         the return value of zero_all_st_registers.
13389         * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
13390         * function.cc (gen_call_used_regs_seq): Add an assertion.
13391         * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
13393 2022-04-01  Xi Ruoyao  <xry111@mengyan1223.wang>
13395         PR target/102024
13396         * config/mips/mips.cc (mips_function_arg): Ignore zero-width
13397         fields, and inform if it causes a psABI change.
13399 2022-04-01  Xi Ruoyao  <xry111@mengyan1223.wang>
13401         PR target/102024
13402         * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
13403         zero-width bit-fields and set up an indicator.
13404         (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
13405         (mips_function_value_1): Diagnose when the presense of a C++
13406         zero-width bit-field changes function returning in GCC 12.
13408 2022-04-01  Jakub Jelinek  <jakub@redhat.com>
13410         PR tree-optimization/104645
13411         * tree-ssa-phiopt.cc (value_replacement): If assign has
13412         CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
13413         statement with constant evaluation.
13415 2022-04-01  YunQiang Su  <yunqiang.su@cipunited.com>
13417         * config/mips/mips.cc (mips_expand_prologue):
13418           IPL is 8bit for MCU ASE.
13420 2022-03-31  Bill Schmidt  <wschmidt@linux.ibm.com>
13422         PR target/104004
13423         * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
13424         (MTFSB0): Likewise.
13425         (MTFSB1): Likewise.
13426         (SET_FPSCR_RN): Likewise.
13427         (SET_FPSCR_DRN): Mark nosoft and no32bit.
13429 2022-03-31  Thomas Schwinge  <thomas@codesourcery.com>
13431         * doc/options.texi (Option file format): Clarifications around
13432         option definition records' help texts.
13434 2022-03-31  Thomas Schwinge  <thomas@codesourcery.com>
13436         * optc-gen.awk <END>: Fix "Multiple different help strings" error
13437         diagnostic.
13439 2022-03-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13441         * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
13442         determine_suggested_unroll_factor and m_has_avg.
13443         (determine_suggested_unroll_factor): New function.
13444         (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
13445         to set m_nosve_pattern.
13446         (aarch64_vector_costs::finish_costs): Use
13447         determine_suggested_unroll_factor.
13448         * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
13449         * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
13451 2022-03-31  Martin Jambor  <mjambor@suse.cz>
13453         PR ipa/103083
13454         * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
13455         (ipa_get_jf_ancestor_keep_null): New function.
13456         * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
13457         ancestor function.
13458         (compute_complex_assign_jump_func): Pass false to keep_null
13459         parameter of ipa_set_ancestor_jf.
13460         (compute_complex_ancestor_jump_func): Pass true to keep_null
13461         parameter of ipa_set_ancestor_jf.
13462         (update_jump_functions_after_inlining): Carry over keep_null from the
13463         original ancestor jump-function or merge them.
13464         (ipa_write_jump_function): Stream keep_null flag.
13465         (ipa_read_jump_function): Likewise.
13466         (ipa_print_node_jump_functions_for_edge): Print the new flag.
13467         * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const.  New
13468         member function known_nonzero_p.
13469         (ipcp_bits_lattice::known_nonzero_p): New.
13470         (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
13471         observe it.
13472         (ipcp_bits_lattice::meet_with): Likewise.
13473         (propagate_bits_across_jump_function): Simplify.  Pass true in
13474         drop_all_ones when it is necessary.
13475         (propagate_aggs_across_jump_function): Take care of keep_null
13476         flag.
13477         (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
13478         jump functions.
13480 2022-03-31  Martin Jambor  <mjambor@suse.cz>
13482         PR ipa/102513
13483         * ipa-cp.cc (decide_whether_version_node): Skip scalar values
13484         which do not fit the known value_range.
13486 2022-03-31  Martin Jambor  <mjambor@suse.cz>
13488         PR ipa/103171
13489         * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
13490         always when an ADDR_EXPR constant is known to reach a load because
13491         of inlining, not just when removing an ADDR reference.
13493 2022-03-31  Richard Biener  <rguenther@suse.de>
13495         PR tree-optimization/105109
13496         * tree-ssa.cc (execute_update_addresses_taken): Suppress
13497         diagnostics on the load of the other complex component.
13499 2022-03-31  Tom de Vries  <tdevries@suse.de>
13501         * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
13503 2022-03-31  Richard Biener  <rguenther@suse.de>
13505         PR rtl-optimization/105091
13506         * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
13507         bases.
13509 2022-03-31  Richard Biener  <rguenther@suse.de>
13511         Revert:
13512         2021-09-13  Richard Earnshaw  <rearnsha@arm.com>
13514         PR target/102125
13515         * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
13516         memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
13518 2022-03-31  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13520         * gcov-io.cc (gcov_read_string): Reword documentation comment.
13522 2022-03-30  Bill Schmidt  <wschmidt@linux.ibm.com>
13524         * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
13525         stanza.
13526         (NEG_V4SF): Likewise.
13527         (NEG_V4SI): Likewise.
13528         (NEG_V8HI): Likewise.
13529         (NEG_V2DF): Move to [vsx] stanza.
13530         (NEG_V2DI): Likewise.
13532 2022-03-30  Vladimir N. Makarov  <vmakarov@redhat.com>
13534         PR middle-end/105032
13535         * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
13537 2022-03-30  Tom de Vries  <tdevries@suse.de>
13538             Tobias Burnus  <tobias@codesourcery.com>
13540         * doc/invoke.texi (march): Document __PTX_SM__.
13541          (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
13542          __PTX_ISA_VERSION_MINOR__.
13544 2022-03-30  Jakub Jelinek  <jakub@redhat.com>
13546         PR sanitizer/105093
13547         * ubsan.cc (instrument_object_size): If t is equal to inner and
13548         is a decl other than global var, punt.  When emitting call to
13549         UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
13551 2022-03-30  Jakub Jelinek  <jakub@redhat.com>
13553         PR tree-optimization/105094
13554         * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
13555         bitsize <= 0 rather than just == 0.
13557 2022-03-30  Tom de Vries  <tdevries@suse.de>
13559         * doc/invoke.texi (misa, mptx): Update.
13560         (march, march-map): Add.
13562 2022-03-30  Thomas Schwinge  <thomas@codesourcery.com>
13564         * opt-functions.awk (n_args): New function.
13565         (lang_enabled_by): Merge function into...
13566         * optc-gen.awk <END>: ... sole user here.
13567         Improve diagnostics.
13569 2022-03-29  Marek Polacek  <polacek@redhat.com>
13570             Jakub Jelinek  <jakub@redhat.com>
13572         PR middle-end/103597
13573         * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
13574         into labels.  Maybe set prev to the statement preceding UNUSED_LABEL_P.
13575         (gimplify_cond_expr): Set UNUSED_LABEL_P.
13576         * tree.h (UNUSED_LABEL_P): New.
13578 2022-03-29   Michael Meissner  <meissner@linux.ibm.com>
13580         * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
13581         be any VSX register.
13583 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
13585         PR target/102024
13586         * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
13587         zero-sized bit-fields.  Detect cases where a warning may be needed.
13588         (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
13589         zero-sized bit-field has caused parameter passing to change.
13591 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
13593         PR target/102024
13594         * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
13595         bit-fields.  Detect cases where a warning may be needed.
13596         (aapcs_vfp_is_call_or_return_candidate): Emit a note if
13597         a zero-sized bit-field has caused parameter passing to change.
13599 2022-03-29  Richard Earnshaw  <rearnsha@arm.com>
13601         PR target/96882
13602         * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
13603         ARM_PCS_AAPCS_LOCAL.
13605 2022-03-29  Tom de Vries  <tdevries@suse.de>
13607         PR target/104857
13608         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
13609         __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
13610         * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
13611         * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
13613 2022-03-29  Tom de Vries  <tdevries@suse.de>
13615         * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
13616         is ignored.
13618 2022-03-29  Tom de Vries  <tdevries@suse.de>
13620         PR target/104714
13621         * config/nvptx/nvptx.opt (march-map=*): Add aliases.
13623 2022-03-29  Jan Hubicka  <hubicka@ucw.cz>
13625         * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
13626         TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
13627         * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
13628         (TARGET_USE_GATHER_4PARTS): New macro.
13629         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
13630         (X86_TUNE_USE_GATHER_4PARTS): New tune
13632 2022-03-29  Tom de Vries  <tdevries@suse.de>
13634         * config/nvptx/nvptx.opt (march): Add alias of misa.
13636 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
13637             Lulu Cheng  <chenglulu@loongson.cn>
13639         * doc/install.texi: Add LoongArch options section.
13640         * doc/invoke.texi: Add LoongArch options section.
13641         * doc/md.texi: Add LoongArch options section.
13643 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
13644             Lulu Cheng  <chenglulu@loongson.cn>
13646         * config/loongarch/loongarch-c.cc
13648 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
13649             Lulu Cheng  <chenglulu@loongson.cn>
13651         * config/loongarch/larchintrin.h: New file.
13652         * config/loongarch/loongarch-builtins.cc: New file.
13654 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
13655             Lulu Cheng  <chenglulu@loongson.cn>
13657         * config/host-linux.cc: Add LoongArch support.
13658         * config/loongarch/loongarch-protos.h: New file.
13659         * config/loongarch/loongarch-tune.h: Likewise.
13660         * config/loongarch/loongarch.cc: Likewise.
13661         * config/loongarch/loongarch.h: Likewise.
13663 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
13664             Lulu Cheng  <chenglulu@loongson.cn>
13666         * config/loongarch/constraints.md: New file.
13667         * config/loongarch/generic.md: New file.
13668         * config/loongarch/la464.md: New file.
13669         * config/loongarch/loongarch-ftypes.def: New file.
13670         * config/loongarch/loongarch-modes.def: New file.
13671         * config/loongarch/loongarch.md: New file.
13672         * config/loongarch/predicates.md: New file.
13673         * config/loongarch/sync.md: New file.
13675 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
13676             Lulu Cheng  <chenglulu@loongson.cn>
13678         * configure: Regenerate file.
13680 2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
13681             Lulu Cheng  <chenglulu@loongson.cn>
13683         * common/config/loongarch/loongarch-common.cc: New file.
13684         * config/loongarch/genopts/genstr.sh: New file.
13685         * config/loongarch/genopts/loongarch-strings: New file.
13686         * config/loongarch/genopts/loongarch.opt.in: New file.
13687         * config/loongarch/loongarch-str.h: New file.
13688         * config/loongarch/gnu-user.h: New file.
13689         * config/loongarch/linux.h: New file.
13690         * config/loongarch/loongarch-cpu.cc: New file.
13691         * config/loongarch/loongarch-cpu.h: New file.
13692         * config/loongarch/loongarch-def.c: New file.
13693         * config/loongarch/loongarch-def.h: New file.
13694         * config/loongarch/loongarch-driver.cc: New file.
13695         * config/loongarch/loongarch-driver.h: New file.
13696         * config/loongarch/loongarch-opts.cc: New file.
13697         * config/loongarch/loongarch-opts.h: New file.
13698         * config/loongarch/loongarch.opt: New file.
13699         * config/loongarch/t-linux: New file.
13700         * config/loongarch/t-loongarch: New file.
13701         * config.gcc: Add LoongArch support.
13702         * configure.ac: Add LoongArch support.
13704 2022-03-29  Thomas Schwinge  <thomas@codesourcery.com>
13706         * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
13707         typo.
13709 2022-03-29  Richard Biener  <rguenther@suse.de>
13711         PR tree-optimization/105080
13712         * tree-ssa-strlen.cc (printf_strlen_execute): Always init
13713         loops and SCEV.
13715 2022-03-28  Indu Bhagat  <indu.bhagat@oracle.com>
13717         * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
13718         (output_ctf_vars): Likewise.
13720 2022-03-28  Jason Merrill  <jason@redhat.com>
13722         PR c++/59426
13723         * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
13725 2022-03-28  H.J. Lu  <hjl.tools@gmail.com>
13727         PR target/105068
13728         * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
13729         "Yw" in clobber.
13731 2022-03-28  Tom de Vries  <tdevries@suse.de>
13733         PR target/104818
13734         * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
13735         * config/nvptx/nvptx-gen.opt: Regenerate.
13736         * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
13737         * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
13738         gen-opt.sh.
13740 2022-03-28  David Malcolm  <dmalcolm@redhat.com>
13742         PR analyzer/104308
13743         * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
13744         to loads then stores, set the location of the new load stmt.
13746 2022-03-28  Richard Biener  <rguenther@suse.de>
13748         PR tree-optimization/105070
13749         * tree-switch-conversion.h
13750         (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
13751         argument.
13752         * tree-switch-conversion.cc
13753         (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
13754         cond with location.
13755         (bit_test_cluster::emit): Annotate all generated expressions
13756         with location.
13758 2022-03-28  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13760         * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
13762 2022-03-28  liuhongt  <hongtao.liu@intel.com>
13764         PR target/105066
13765         * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
13766         alternative 4 from sse4_noavx to noavx.
13768 2022-03-28  Jakub Jelinek  <jakub@redhat.com>
13770         PR tree-optimization/105056
13771         * tree-predcom.cc (component::component): Initialize also comp_step.
13773 2022-03-27  H.J. Lu  <hjl.tools@gmail.com>
13775         PR target/105068
13776         * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
13777         "Yw".
13779 2022-03-26  Roger Sayle  <roger@nextmovesoftware.com>
13781         PR middle-end/104885
13782         * calls.cc (mark_stack_region_used): Check that the region
13783         is within the allocated size of stack_usage_map.
13785 2022-03-26  Jakub Jelinek  <jakub@redhat.com>
13787         PR rtl-optimization/103775
13788         * recog.cc (check_invalid_inc_dec): New function.
13789         (insn_invalid_p): Return 1 if REG_INC operand overlaps
13790         any stored REGs.
13792 2022-03-26  H.J. Lu  <hjl.tools@gmail.com>
13794         PR target/105058
13795         * config/i386/sse.md (loadiwkey): Replace "v" with "x".
13796         (aes<aesklvariant>u8): Likewise.
13798 2022-03-26  H.J. Lu  <hjl.tools@gmail.com>
13800         PR target/105052
13801         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
13802         Replace "Yv" with "x".
13803         (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
13804         (ssse3_psign<mode>3): Likewise.
13806 2022-03-26  Hans-Peter Nilsson  <hp@axis.com>
13808         * reload.cc (find_reloads): Align comment with code where
13809         considering the intersection of register classes then tweaking the
13810         regclass for the current alternative or rejecting it.
13812 2022-03-25  Christophe Lyon  <christohe.lyon@arm.com>
13814         PR target/104882
13815         Revert
13816         2021-06-11  Christophe Lyon  <christophe.lyon@linaro.org>
13818         * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
13819         (mve_vec_unpack<US>_hi_<mode>): Delete.
13820         (@mve_vec_pack_trunc_lo_<mode>): Delete.
13821         (mve_vmovntq_<supf><mode>): Remove '@' prefix.
13822         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
13823         from vec-common.md.
13824         (vec_unpack<US>_lo_<mode>): Likewise.
13825         (vec_pack_trunc_<mode>): Rename from
13826         neon_quad_vec_pack_trunc_<mode>.
13827         * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
13828         (vec_unpack<US>_lo_<mode>): Delete.
13829         (vec_pack_trunc_<mode>): Delete.
13831 2022-03-25  Vladimir N. Makarov  <vmakarov@redhat.com>
13833         PR middle-end/104971
13834         * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
13835         regs to clear remove_p flag.
13837 2022-03-25  Richard Biener  <rguenther@suse.de>
13839         PR tree-optimization/105053
13840         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
13841         the correct live-out stmt for a reduction chain.
13843 2022-03-25  Richard Biener  <rguenther@suse.de>
13845         PR middle-end/105049
13846         * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
13847         CONSTRUCTOR first elements.
13849 2022-03-25  Tobias Burnus  <tobias@codesourcery.com>
13851         PR analyzer/103533
13852         * doc/invoke.texi (Static Analyzer Options): Move
13853         @ignore block after @gccoptlist's '}' for 'make pdf'.
13855 2022-03-25  David Malcolm  <dmalcolm@redhat.com>
13857         PR analyzer/104954
13858         * doc/invoke.texi (Static Analyzer Options): Add
13859         -fdump-analyzer-untracked.
13861 2022-03-25  Avinash Sonawane  <rootkea@gmail.com>
13863         PR analyzer/103533
13864         * doc/invoke.texi: Document that enabling taint analyzer
13865         checker disables some warnings from `-fanalyzer`.
13867 2022-03-24  Alexandre Oliva  <oliva@adacore.com>
13869         PR debug/104564
13870         * gimple-harden-conditionals.cc (detach_value): Keep temps
13871         anonymous.
13873 2022-03-24  Alexandre Oliva  <oliva@adacore.com>
13875         PR middle-end/104975
13876         * gimple-harden-conditionals.cc
13877         (pass_harden_compares::execute): Force split in case of
13878         multiple edges.
13880 2022-03-24  Jakub Jelinek  <jakub@redhat.com>
13882         PR c++/105035
13883         * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
13884         field0 or field1 is not a FIELD_DECL, return false.
13886 2022-03-24  Richard Biener  <rguenther@suse.de>
13888         * tree-predcom.cc (chain::chain): Add CTOR.
13889         (component::component): Likewise.
13890         (pcom_worker::release_chain): Use delete.
13891         (release_components): Likewise.
13892         (pcom_worker::filter_suitable_components): Likewise.
13893         (pcom_worker::split_data_refs_to_components): Use new.
13894         (make_invariant_chain): Likewise.
13895         (make_rooted_chain): Likewise.
13896         (pcom_worker::combine_chains): Likewise.
13897         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
13898         Make sure to release previously constructed scalar_results.
13899         * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
13900         for vec_offsets.
13901         * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
13902         Release m_flag_set_edges.
13904 2022-03-24  Siddhesh Poyarekar  <siddhesh@gotplt.org>
13906         PR tree-optimization/104970
13907         * tree-object-size.cc (parm_object_size): Restrict size
13908         computation scenarios to explicit access attributes.
13910 2022-03-24  Kewen Lin  <linkw@linux.ibm.com>
13912         PR target/104967
13913         * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
13914         function types.
13916 2022-03-23  Richard Biener  <rguenther@suse.de>
13918         PR target/102125
13919         * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
13920         use of movmisalign when either the source or destination
13921         decl is properly aligned.
13923 2022-03-23  Richard Biener  <rguenther@suse.de>
13925         PR rtl-optimization/105028
13926         * ira-color.cc (form_threads_from_copies): Remove unnecessary
13927         copying of the sorted_copies tail.
13929 2022-03-23  Martin Liska  <mliska@suse.cz>
13931         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
13932         Use %qs in format.
13933         * config/rs6000/rs6000.cc (rs6000_option_override_internal):
13934         Reword the error message.
13936 2022-03-23  liuhongt  <hongtao.liu@intel.com>
13938         PR target/104976
13939         * config/i386/sse.md (ssePSmodelower): New.
13940         (*avx_cmp<mode>3_ltint_not): Force_reg operand before
13941         lowpart_subreg to avoid NULL_RTX.
13942         (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
13943         <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
13944         fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
13945         <avx512>_<complexopname>_<mode>_mask<round_name>,
13946         avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
13947         avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
13948         avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
13949         avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
13950         float<floatunssuffix><mode>v4hf2,
13951         float<floatunssuffix>v2div2hf2,
13952         fix<fixunssuffix>_truncv4hf<mode>2,
13953         fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
13954         extendv2hfv2df2,
13955         trunc<mode>v4hf2,truncv2dfv2hf2,
13956         *avx512bw_permvar_truncv16siv16hi_1,
13957         *avx512bw_permvar_truncv16siv16hi_1_hf,
13958         *avx512f_permvar_truncv8siv8hi_1,
13959         *avx512f_permvar_truncv8siv8hi_1_hf,
13960         *avx512f_vpermvar_truncv8div8si_1,
13961         *avx512f_permvar_truncv32hiv32qi_1,
13962         *avx512f_permvar_truncv16hiv16qi_1,
13963         *avx512f_permvar_truncv4div4si_1,
13964         *avx512f_pshufb_truncv8hiv8qi_1,
13965         *avx512f_pshufb_truncv4siv4hi_1,
13966         *avx512f_pshufd_truncv2div2si_1,
13967         sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
13968         ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
13970 2022-03-22  Tom de Vries  <tdevries@suse.de>
13972         PR target/104925
13973         * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
13974         Use % as register prefix.
13976 2022-03-22  Tom de Vries  <tdevries@suse.de>
13978         * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
13979         (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
13980         mexperimental.
13982 2022-03-22  Tom de Vries  <tdevries@suse.de>
13984         * config/nvptx/nvptx.opt (mexperimental): New option.
13986 2022-03-22  Tom de Vries  <tdevries@suse.de>
13988         PR target/104957
13989         * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
13990         * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
13991         for alias.
13992         (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
13993         (nvptx_asm_output_def_from_decls): New function.
13994         * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
13995         gcc_unreachable ().
13996         (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
13997         nvptx_asm_output_def_from_decls.
13998         * config/nvptx/nvptx.opt (malias): New opt.
14000 2022-03-22  Tom de Vries  <tdevries@suse.de>
14002         PR target/104916
14003         PR target/104783
14004         * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
14005         sync (or uniform warp check for mptx < 6.0).
14007 2022-03-22  Richard Biener  <rguenther@suse.de>
14009         PR tree-optimization/105012
14010         * tree-if-conv.cc (ifcvt_local_dce): Only call
14011         dse_classify_store when we have a VDEF.
14013 2022-03-22  Martin Liska  <mliska@suse.cz>
14015         PR target/104902
14016         * config/nvptx/nvptx.cc (handle_ptx_version_option):
14017         Fix option wrapping in an error message.
14019 2022-03-22  Martin Liska  <mliska@suse.cz>
14021         PR target/104903
14022         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
14023         Wrap const keyword.
14025 2022-03-22  Martin Liska  <mliska@suse.cz>
14027         * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
14028         name.
14030 2022-03-22  Martin Liska  <mliska@suse.cz>
14032         PR target/104898
14033         * config/rs6000/rs6000.cc (rs6000_option_override_internal):
14034         Use %qs instead of (%qs).
14036 2022-03-22  Martin Liska  <mliska@suse.cz>
14038         PR target/104898
14039         * config/i386/i386-options.cc (ix86_option_override_internal):
14040           Use '%qs' instead of '(%qs)'.
14042 2022-03-22  Martin Liska  <mliska@suse.cz>
14044         PR target/104898
14045         * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
14046         Use 'qs' and remove usage '(%qs)'.
14047         (aarch64_handle_attr_cpu): Likewise.
14048         (aarch64_handle_attr_tune): Likewise.
14049         (aarch64_handle_attr_isa_flags): Likewise.
14051 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
14052             Andre Vieira  <andre.simoesdiasvieira@arm.com>
14054         * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
14055         struct.
14056         (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
14057         cost.
14058         (neoverse512tvb_tunings): Likewise.
14060 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
14061             Andre Vieira  <andre.simoesdiasvieira@arm.com>
14063         * config/aarch64/aarch64.cc (demeter_addrcost_table,
14064         demeter_regmove_cost, demeter_advsimd_vector_cost,
14065         demeter_sve_vector_cost, demeter_scalar_issue_info,
14066         demeter_advsimd_issue_info, demeter_sve_issue_info,
14067         demeter_vec_issue_info, demeter_vector_cost,
14068         demeter_tunings): New tuning structs.
14069         (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
14070         tuning.
14071         * config/aarch64/aarch64-cores.def: Add entry for demeter.
14072         * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
14074 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
14075             Andre Vieira  <andre.simoesdiasvieira@arm.com>
14077         * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
14078         (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
14079         * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
14080         tunings to use cpu_memmov_cost struct.
14082 2022-03-22  Tamar Christina  <tamar.christina@arm.com>
14083             Andre Vieira  <andre.simoesdiasvieira@arm.com>
14085         * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
14086         neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
14087         neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
14088         neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
14089         neoversen2_vec_issue_info, neoversen2_tunings): New structs.
14090         (neoversen2_tunings): Use new structs and update tuning flags.
14091         (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
14092         tuning.
14094 2022-03-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
14096         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
14097         bit.
14099 2022-03-22  liuhongt  <hongtao.liu@intel.com>
14101         PR target/104982
14102         * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
14103         following splitter to reversed condition.
14105 2022-03-22  Jakub Jelinek  <jakub@redhat.com>
14107         PR rtl-optimization/104989
14108         * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
14109         sorry for passing too large argument, instead set sibcall_failure
14110         for pass == 0, or a new normal_failure flag otherwise.  If
14111         normal_failure is set, don't assert all stack has been deallocated
14112         at the end and throw away the whole insn sequence.
14114 2022-03-22  Qian Jianhua  <qianjh@cn.fujitsu.com>
14116         * print-tree.cc: Change array length
14118 2022-03-22  Hongyu Wang  <hongyu.wang@intel.com>
14120         PR target/104978
14121         * config/i386/sse.md
14122         (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
14123         Use avx512f_movsf_mask instead of vmovaps or vblend, and
14124         force_reg before lowpart_subreg.
14125         (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
14127 2022-03-21  H.J. Lu  <hjl.tools@gmail.com>
14129         PR target/105000
14130         * common/config/i386/i386-common.cc
14131         (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
14132         OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
14134 2022-03-21  H.J. Lu  <hjl.tools@gmail.com>
14136         PR target/104998
14137         * common/config/i386/cpuinfo.h (get_available_features): Pass
14138         0x19 to __cpuid for bit_AESKLE.  Enable FEATURE_AESKLE only if
14139         bit_AESKLE is set.
14141 2022-03-21  Richard Sandiford  <richard.sandiford@arm.com>
14143         PR middle-end/104869
14144         * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
14145         (clobber_group::next_clobber): Likewise.
14146         (def_lookup::prev_def): Rename to...
14147         (def_lookup::last_def_of_prev_group): ...this.
14148         (def_lookup::next_def): Rename to...
14149         (def_lookup::first_def_of_next_group): ...this.
14150         (def_lookup::matching_or_prev_def): Rename to...
14151         (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
14152         (def_lookup::matching_or_next_def): Rename to...
14153         (def_lookup::matching_set_or_first_def_of_next_group): ...this.
14154         (def_lookup::prev_def): New function, taking the lookup insn as
14155         argument.
14156         (def_lookup::next_def): Likewise.
14157         * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
14158         (def_lookup::last_def_of_prev_group): ...this.
14159         (def_lookup::next_def): Rename to...
14160         (def_lookup::first_def_of_next_group): ...this.
14161         (def_lookup::matching_or_prev_def): Rename to...
14162         (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
14163         (def_lookup::matching_or_next_def): Rename to...
14164         (def_lookup::matching_set_or_first_def_of_next_group): ...this.
14165         * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
14166         above renaming.
14167         * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
14168         (clobber_group::next_clobber): Likewise.
14169         (def_lookup::prev_def): Likewise.
14170         (def_lookup::next_def): Likewise.
14171         (function_info::make_use_available): Pass the lookup insn to
14172         def_lookup::prev_def and def_lookup::next_def.
14174 2022-03-21  Martin Liska  <mliska@suse.cz>
14176         * doc/invoke.texi: Document min-pagesize parameter.
14178 2022-03-21  Richard Biener  <rguenther@suse.de>
14180         * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
14181         we are estimating niter of loop.
14183 2022-03-21  Kito Cheng  <kito.cheng@sifive.com>
14185         * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
14186         Update flag name and mask name.
14187         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
14188         misc macro for vector extensions.
14189         * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
14190         (MASK_VECTOR_ELEN_32): ... this.
14191         (MASK_VECTOR_EEW_64): Rename to ...
14192         (MASK_VECTOR_ELEN_64): ... this.
14193         (MASK_VECTOR_EEW_FP_32): Rename to ...
14194         (MASK_VECTOR_ELEN_FP_32): ... this.
14195         (MASK_VECTOR_EEW_FP_64): Rename to ...
14196         (MASK_VECTOR_ELEN_FP_64): ... this.
14197         (TARGET_VECTOR_ELEN_32): New.
14198         (TARGET_VECTOR_ELEN_64): Ditto.
14199         (TARGET_VECTOR_ELEN_FP_32): Ditto.
14200         (TARGET_VECTOR_ELEN_FP_64): Ditto.
14201         (TARGET_MIN_VLEN): Ditto.
14202         * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
14203         (riscv_vector_elen_flags): ... this.
14205 2022-03-21  Hongyu Wang  <hongyu.wang@intel.com>
14207         PR target/104977
14208         * config/i386/sse.md
14209         (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
14210         Correct round operand for intel dialect.
14212 2022-03-19  Arthur Cohen  <arthur.cohen@embecosm.com>
14214         * diagnostic.cc (diagnostic_cc_tests): Rename to...
14215         (c_diagnostic_cc_tests): ...this.
14216         * opt-problem.cc (opt_problem_cc_tests): Rename to...
14217         (c_opt_problem_cc_tests): ...this.
14218         * selftest-run-tests.cc (selftest::run_tests): No longer run
14219         opt_problem_cc_tests or diagnostic_cc_tests.
14220         * selftest.h (diagnostic_cc_tests): Remove declaration.
14221         (opt_problem_cc_tests): Likewise.
14223 2022-03-19  Marc Nieper-Wißkirchen  <marc@nieper-wisskirchen.de>
14225         PR jit/63854
14226         * hash-traits.h (struct typed_const_free_remove): New.
14227         (struct free_string_hash): New.
14228         * pass_manager.h: Use free_string_hash.
14229         * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
14230         (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
14232 2022-03-19  Jakub Jelinek  <jakub@redhat.com>
14234         PR middle-end/104971
14235         * config/i386/i386-expand.cc
14236         (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
14237         don't push/pop anything and just return const0_rtx.
14239 2022-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
14241         PR rtl-optimization/104961
14242         * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
14244 2022-03-18  Jason Merrill  <jason@redhat.com>
14246         * tree.h (IDENTIFIER_LENGTH): Add comment.
14248 2022-03-18  Jakub Jelinek  <jakub@redhat.com>
14250         PR middle-end/99578
14251         PR middle-end/100680
14252         PR tree-optimization/100834
14253         * params.opt (--param=min-pagesize=): New parameter.
14254         * pointer-query.cc
14255         (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
14256         (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
14257         of zero for pointer constants equal or larger than min-pagesize.
14259 2022-03-18  Tom de Vries  <tdevries@suse.de>
14261         * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
14262         Set gfor location only when dealing with a OMP_TASKLOOP.
14264 2022-03-18  Tom de Vries  <tdevries@suse.de>
14266         * gimplify.cc (gimplify_omp_for): Set taskloop location.
14268 2022-03-18  Tom de Vries  <tdevries@suse.de>
14270         PR target/104952
14271         * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
14272         is executed unconditionally.
14274 2022-03-18  liuhongt  <hongtao.liu@intel.com>
14276         PR target/104974
14277         * config/i386/i386.md (*movhi_internal): Set attr type from HI
14278         to HF for alternative 12 under TARGET_AVX512FP16.
14280 2022-03-18  Cui,Lili  <lili.cui@intel.com>
14282         PR target/104963
14283         * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
14284         * doc/invoke.texi: Update documents for Intel sapphirerapids.
14286 2022-03-17  Roger Sayle  <roger@nextmovesoftware.com>
14288         PR target/86722
14289         PR tree-optimization/90356
14290         * config/i386/i386.md (*movtf_internal): Don't guard
14291         standard_sse_constant_p clause by optimize_function_for_size_p.
14292         (*movdf_internal): Likewise.
14293         (*movsf_internal): Likewise.
14295 2022-03-17  Andrew MacLeod  <amacleod@redhat.com>
14297         PR tree-optimization/102943
14298         * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
14299         dominators and apply intermediary outgoing edge ranges.
14301 2022-03-17  Richard Biener  <rguenther@suse.de>
14303         PR tree-optimization/104960
14304         * passes.def: Add pass parameter to pass_sink_code, mark
14305         last one to unsplit edges.
14306         * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
14307         (pass_sink_code::execute): Always execute TODO_cleanup_cfg
14308         when we need to unsplit edges.
14310 2022-03-17  Jakub Jelinek  <jakub@redhat.com>
14312         PR middle-end/103984
14313         * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
14314         TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
14315         and asan unpoisioning, then append the temporary sequence and
14316         finally the TARGET_EXPR_CLEANUP clobbers.
14318 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
14320         * config/i386/sse.md: Delete corrupt character/typo.
14322 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
14324         PR target/94680
14325         * config/i386/sse.md (sse2_movq128): New define_expand to
14326         preserve previous named instruction.
14327         (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
14328         generalized to VI8F_128 (both V2DI and V2DF).
14330 2022-03-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
14332         PR tree-optimization/104941
14333         * tree-object-size.cc (size_for_offset): Make useless conversion
14334         check lighter and assign result of fold_convert to OFFSET.
14336 2022-03-16  H.J. Lu  <hjl.tools@gmail.com>
14338         PR target/104890
14339         * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
14340         pushing target("general-regs-only").
14342 2022-03-16  Kito Cheng  <kito.cheng@sifive.com>
14344         * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
14345         Add version info for zk, zks and zkn.
14347 2022-03-16  LiaoShihua  <shihua@iscas.ac.cn>
14349         * common/config/riscv/riscv-common.cc
14350         (riscv_combine_info): New.
14351         (riscv_subset_list::handle_combine_ext): Combine back into zk to
14352         maintain the canonical order in isa strings.
14353         (riscv_subset_list::parse): Ditto.
14354         * config/riscv/riscv-subset.h (handle_combine_ext): New.
14356 2022-03-16  Richard Biener  <rguenther@suse.de>
14358         PR tree-optimization/102008
14359         * passes.def: Move the added code sinking pass before the
14360         preceeding phiopt pass.
14362 2022-03-16  Patrick Palka  <ppalka@redhat.com>
14364         PR c++/96780
14365         * doc/invoke.texi (C++ Dialect Options): Document
14366         -ffold-simple-inlines.
14368 2022-03-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
14370         PR tree-optimization/104942
14371         * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
14373 2022-03-16  Jakub Jelinek  <jakub@redhat.com>
14375         PR target/104910
14376         * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
14377         imm rtx.
14379 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
14380             Richard Biener  <rguenther@suse.de>
14382         * gimple-match-head.cc (single_use): Implement inline using a
14383         single loop.
14385 2022-03-16  Roger Sayle  <roger@nextmovesoftware.com>
14387         * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
14388         instead of HONOR_NANS.
14389         (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
14390         this can't trap/signal.
14392 2022-03-16  liuhongt  <hongtao.liu@intel.com>
14394         PR target/104946
14395         * config/i386/i386-builtin.def (BDESC): Add
14396         CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
14397         * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
14398         __builtin_ia32_blendvpd w/o sse4.2
14400 2022-03-15  Peter Bergner  <bergner@linux.ibm.com>
14402         PR target/104923
14403         * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
14404         acceptable MEM addresses.
14406 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
14408         PR target/91229
14409         * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
14410         riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
14411         to warning calls.
14413 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
14415         PR target/104890
14416         * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
14417         instead of general-regs-only.
14419 2022-03-15  Roger Sayle  <roger@nextmovesoftware.com>
14420             Marc Glisse  <marc.glisse@inria.fr>
14421             Richard Biener  <rguenther@suse.de>
14423         PR tree-optimization/101895
14424         * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
14425         (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
14427 2022-03-15  Jakub Jelinek  <jakub@redhat.com>
14429         PR rtl-optimization/104814
14430         * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
14431         end with onlyjump_p.  Assume BB_END (test_bb) is always non-NULL.
14433 2022-03-15  Martin Sebor  <msebor@redhat.com>
14435         PR middle-end/104436
14436         * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
14437         Check for warning suppression.  Avoid by-value arguments transformed
14438         into by-transparent-reference.
14440 2022-03-14  Roger Sayle  <roger@nextmovesoftware.com>
14441             Uroš Bizjak  <ubizjak@gmail.com>
14443         * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
14444         transformation when *zero_extend<mode>si2 is not available.
14446 2022-03-14  Xi Ruoyao  <xry111@mengyan1223.wang>
14448         * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
14449         * config/mips/mips.cc (mips_option_override): Make
14450         -fsanitize=address imply -fasynchronous-unwind-tables.  This is
14451         needed by libasan for stack backtrace on MIPS.
14452         (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
14454 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
14456         PR debug/104778
14457         * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
14458         SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
14459         call simplified the first operand into VOIDmode constant.
14461 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
14463         PR tree-optimization/102586
14464         * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
14465         argument type should be pointer to trivially-copyable type unless it
14466         is address of a variable or parameter.
14468 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
14470         PR target/99754
14471         * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
14472         first   rather than last element of the vector, use __m32_u to do
14473         a really unaligned load, use just 0 instead of (int)0.
14474         (_mm_loadu_si16): Put loaded value into first rather than last
14475         element of the vector, use __m16_u to do a really unaligned load,
14476         use just 0 instead of (short)0.
14478 2022-03-14  Jakub Jelinek  <jakub@redhat.com>
14480         PR other/104899
14481         * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
14482         in diagnostic message - cannott -> cannot.  Use %< and %> around
14483         names of attribute.  Avoid too long line.
14484         * range-op.cc (operator_logical_and::op1_range): Fix up a typo
14485         in comment - cannott -> cannot.  Use 2 spaces after . instead of one.
14487 2022-03-14  liuhongt  <hongtao.liu@intel.com>
14489         PR target/104666
14490         * config/i386/i386-expand.cc
14491         (ix86_check_builtin_isa_match): New func.
14492         (ix86_expand_builtin): Move code to
14493         ix86_check_builtin_isa_match and call it.
14494         * config/i386/i386-protos.h
14495         (ix86_check_builtin_isa_match): Declare.
14496         * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
14497         builtin into gimple when isa mismatches.
14499 2022-03-13  Tobias Burnus  <tobias@codesourcery.com>
14501         * doc/invoke.texi: Fix typos.
14502         * doc/tm.texi.in: Remove duplicated word.
14503         * doc/tm.texi: Regenerate.
14505 2022-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
14507         PR target/104829
14508         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
14509         "ppc" and "ppc64" based on rs6000_cpu.
14511 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
14513         PR middle-end/100280
14514         PR middle-end/104892
14515         * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
14516         Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
14518 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
14520         PR middle-end/100280
14521         PR middle-end/104086
14522         * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
14523         Mark variables used in 'present' clauses as addressable.
14524         * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
14525         handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
14527 2022-03-12  Thomas Schwinge  <thomas@codesourcery.com>
14529         PR other/65095
14530         * tree-core.h (user_omp_claus_code_name): Declare function.
14531         * tree.cc (user_omp_clause_code_name): New function.
14533 2022-03-12  Roger Sayle  <roger@nextmovesoftware.com>
14535         PR middle-end/98420
14536         * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
14537         (the defaut) or -fno-signed-zeros.
14539 2022-03-12   Michael Meissner  <meissner@linux.ibm.com>
14541         PR target/104868
14542         * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
14543         moving from a GPR register to an Altivec register.
14545 2022-03-11  Roger Sayle  <roger@nextmovesoftware.com>
14547         PR tree-optimization/98335
14548         * config/i386/i386.md (peephole2): Eliminate redundant insv.
14549         Combine movl followed by movb.  Transform xorl followed by
14550         a suitable movb or movw into the equivalent movz[bw]l.
14552 2022-03-11  Roger Sayle  <roger@nextmovesoftware.com>
14553             Richard Biener  <rguenther@suse.de>
14555         PR tree-optimization/98335
14556         * builtins.cc (get_object_alignment_2): Export.
14557         * builtins.h (get_object_alignment_2): Likewise.
14558         * tree-ssa-alias.cc (ao_ref_alignment): New.
14559         * tree-ssa-alias.h (ao_ref_alignment): Declare.
14560         * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
14561         to align head/tail, writing more bytes but using fewer store insns.
14563 2022-03-11  Richard Biener  <rguenther@suse.de>
14565         PR tree-optimization/104880
14566         * tree-ssa.cc (execute_update_address_taken): Remember if we
14567         optimistically made something not addressable and
14568         prepare to undo it.
14570 2022-03-11  Richard Biener  <rguenther@suse.de>
14572         PR target/104762
14573         * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
14574         cost the first lane of SSE pieces as inserts for vec_construct.
14576 2022-03-10  Roger Sayle  <roger@nextmovesoftware.com>
14578         PR c++/84964
14579         * calls.cc (expand_call): Ignore stack adjustments after sorry.
14581 2022-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>
14583         PR target/103074
14584         * lra-constraints.cc (split_reg): Set up
14585         check_and_force_assignment_correctness_p when splitting hard
14586         register live range.
14588 2022-03-10  Martin Jambor  <mjambor@suse.cz>
14590         PR ipa/104813
14591         * ipa-cp.cc (create_specialized_node): Move removal of
14592         self-recursive calls from callers vector before refrence
14593         adjustments.
14595 2022-03-10  Richard Biener  <rguenther@suse.de>
14597         PR tree-optimization/102943
14598         * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
14599         Make a bitmap_head.
14600         (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
14601         to tree view.
14602         (sbr_sparse_bitmap::set_bb_range): Adjust.
14603         (sbr_sparse_bitmap::get_bb_range): Likewise.
14605 2022-03-10  Richard Biener  <rguenther@suse.de>
14607         PR tree-optimization/102943
14608         * tree-ssa-dom.cc (back_propagate_equivalences): Only
14609         populate the dominance bitmap if fast queries are not
14610         available.  Use a tree view bitmap.
14611         (record_temporary_equivalences): Cache the dominance bitmap
14612         across all equivalences on the edge.
14614 2022-03-10  Tom de Vries  <tdevries@suse.de>
14616         PR target/104840
14617         * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
14618         of false,true.
14620 2022-03-10  Tom de Vries  <tdevries@suse.de>
14622         PR target/104783
14623         * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
14624         (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
14625         (nvptx_get_unisimt_outside_simt_predicate): New function.
14626         (predicate_insn): New function, factored out of ...
14627         (nvptx_reorg_uniform_simt): ... here.  Predicate all emitted insns.
14628         * config/nvptx/nvptx.h (struct machine_function): Add
14629         unisimt_outside_simt_predicate field.
14630         * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
14631         (define_insn "nvptx_uniform_warp_check"): Make predicable.
14633 2022-03-10  Tom de Vries  <tdevries@suse.de>
14635         * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
14636         result.
14638 2022-03-10  Tom de Vries  <tdevries@suse.de>
14640         PR target/104815
14641         * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
14642         modifier.
14643         * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
14645 2022-03-10  Tom de Vries  <tdevries@suse.de>
14647         * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
14648         Emit atom.and.b64 instead of atom.b64.and.
14650 2022-03-10  Tom de Vries  <tdevries@suse.de>
14652         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
14653         (MULTILIB_OPTIONS): ... here.
14655 2022-03-10  Tom de Vries  <tdevries@suse.de>
14657         PR target/104758
14658         * config/nvptx/nvptx.opt (misa): Set default to sm_30.
14659         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
14661 2022-03-10  Thomas Schwinge  <thomas@codesourcery.com>
14663         PR middle-end/90115
14664         PR middle-end/102330
14665         PR middle-end/104774
14666         * omp-low.cc (oacc_privatization_candidate_p)
14667         (oacc_privatization_scan_clause_chain)
14668         (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
14669         Analyze 'lookup_decl'-translated DECL.
14671 2022-03-10  Jakub Jelinek  <jakub@redhat.com>
14673         PR target/99708
14674         * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
14675         RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
14676         (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
14677         * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
14678         "**NULL**" if type_node is NULL first.  Handle
14679         ieee128_float_type_node.
14680         (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
14681         and ptr_ibm128_float_type_node.  Set ibm128_float_type_node and
14682         ieee128_float_type_node to NULL rather than long_double_type_node if
14683         they aren't supported.  Do support __ibm128 even if
14684         !TARGET_FLOAT128_TYPE when long double is double double.
14685         (rs6000_expand_builtin): Error if bif_is_ibm128 and
14686         !ibm128_float_type_node.  Remap RS6000_BIF_{,UN}PACK_IF to
14687         RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
14688         for it.
14689         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
14690         __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
14691         (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
14692         Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
14693         Formatting fix.
14694         * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
14695         (struct attrinfo): Add isibm128 member.
14696         (TYPE_MAP_SIZE): Remove.
14697         (type_map): Use [] instead of [TYPE_MAP_SIZE].  For "if" use
14698         ibm128_float_type_node only if it is non-NULL, otherwise fall back
14699         to long_double_type_node.  Remove "pif" entry.
14700         (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
14701         (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
14702         (write_type_node): Use sizeof type_map / sizeof type_map[0]
14703         instead of TYPE_MAP_SIZE.
14704         (write_bif_static_init): Handle isibm128.
14705         * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
14706         (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
14707         attribute.
14709 2022-03-09  Richard Biener  <rguenther@suse.de>
14711         * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
14712         with non-decl operand, avoiding a copy.
14714 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
14716         PR target/104781
14717         * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
14719 2022-03-09  Richard Biener  <rguenther@suse.de>
14721         PR middle-end/104786
14722         * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
14723         for VLAs without an upper size bound.
14725 2022-03-09  Xi Ruoyao  <xry111@mengyan1223.wang>
14727         PR tree-optimization/104851
14728         * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
14729         error.
14731 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
14733         PR c/104711
14734         * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
14735         is enabled by it only for C++11 to C++17 rather than for C++03 or
14736         later.
14737         (-Wshift-negative-value): Similarly (except here we stated
14738         that it is enabled for C++11 or later).
14740 2022-03-09  Jakub Jelinek  <jakub@redhat.com>
14742         PR rtl-optimization/104839
14743         * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
14744         Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
14745         (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
14746         instead of incorrect 0 in SUBREG_PROMOTED_SET.
14748 2022-03-09  Xi Ruoyao  <xry111@mengyan1223.wang>
14750         PR target/104842
14751         * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
14752         value before adding an offset.
14754 2022-03-08  Christophe Lyon  <christophe.lyon@arm.com>
14756         * config/arm/arm-builtins.cc
14757         (arm_binop_none_none_unone_qualifiers): Delete.
14758         (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
14760 2022-03-08  Iain Sandoe  <iain@sandoe.co.uk>
14762         PR translation/104552
14763         * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
14764         the PCH out of memory error message punctuation and wording.
14766 2022-03-08  Marek Polacek  <polacek@redhat.com>
14768         PR rtl-optimization/104777
14769         * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
14770         ASM_OPERANDS_LABEL_VEC has at least one element.
14772 2022-03-08  H.J. Lu  <hjl.tools@gmail.com>
14774         PR target/104781
14775         * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
14776         stack realignment or regparm nested function with EH return.
14778 2022-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
14780         PR target/104790
14781         * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
14782         * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
14783         register for non widening loads or narrowing stores.
14785 2022-03-08  Eric Gallager  <egallager@gcc.gnu.org>
14787         PR translation/104552
14788         * params.opt: Fix typo.
14790 2022-03-08  Richard Biener  <rguenther@suse.de>
14792         PR tree-optimization/84201
14793         * params.opt (-param=vect-induction-float): Add.
14794         * doc/invoke.texi (vect-induction-float): Document.
14795         * tree-vect-loop.cc (vectorizable_induction): Honor
14796         param_vect_induction_float.
14798 2022-03-08  Martin Jambor  <mjambor@suse.cz>
14800         PR translation/104552
14801         * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
14802         "that" in the description.
14804 2022-03-08  Richard Biener  <rguenther@suse.de>
14806         PR tree-optimization/104825
14807         * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
14808         guard modref get_ao_ref on a pointer typed argument.
14810 2022-03-08  liuhongt  <hongtao.liu@intel.com>
14812         * config/i386/sse.md (*vec_dupv4si): Disable memory operand
14813         for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
14815 2022-03-07  Jonathan Wakely  <jwakely@redhat.com>
14817         * doc/invoke.texi (C++ Modules): Remove anachronism.
14819 2022-03-07  Martin Liska  <mliska@suse.cz>
14821         PR middle-end/104381
14822         * opts.cc (finish_options): If debug info is disabled
14823         (debug_info_level) and -fvar-tracking is unset, disable it.
14825 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
14827         * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
14828         * config/riscv/riscv.cc: Likewise.
14829         * config/darwin.h: Likewise.
14830         * config/i386/i386.cc: Likewise.
14831         * config/aarch64/thunderx3t110.md: Likewise.
14832         * config/aarch64/fractional-cost.h: Likewise.
14833         * config/vax/vax.cc: Likewise.
14834         * config/rs6000/pcrel-opt.md: Likewise.
14835         * config/rs6000/predicates.md: Likewise.
14836         * ctfc.h: Likewise.
14837         * tree-ssa-uninit.cc: Likewise.
14838         * value-relation.h: Likewise.
14839         * gimple-range-gori.cc: Likewise.
14840         * ipa-polymorphic-call.cc: Likewise.
14841         * pointer-query.cc: Likewise.
14842         * ipa-sra.cc: Likewise.
14843         * internal-fn.cc: Likewise.
14844         * varasm.cc: Likewise.
14845         * gimple-ssa-warn-access.cc: Likewise.
14847 2022-03-07  Martin Liska  <mliska@suse.cz>
14849         PR target/104794
14850         * config/arm/arm.cc (arm_option_override_internal): Add missing
14851         space.
14853 2022-03-07  Richard Biener  <rguenther@suse.de>
14855         PR tree-optimization/104782
14856         * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
14857         Re-instantiate r10-5979 fix, add comment.
14859 2022-03-07  Martin Liska  <mliska@suse.cz>
14861         PR target/104797
14862         * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
14863         parenthesis from built-in name.
14865 2022-03-07  Martin Liska  <mliska@suse.cz>
14867         PR target/104794
14868         * config/arm/arm.cc (arm_option_override_internal): Fix quoting
14869         of options in error messages.
14870         (arm_option_reconfigure_globals): Likewise.
14872 2022-03-07  Martin Liska  <mliska@suse.cz>
14874         PR target/104794
14875         * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
14876         message.  Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
14877         have only range [0,32].
14879 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
14881         PR target/104775
14882         * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
14883         S constraint instead of T in the last alternative.
14885 2022-03-07  Martin Liska  <mliska@suse.cz>
14887         * plugin.cc (default_plugin_dir_name): Remove <dir> from error
14888         message.
14890 2022-03-07  Martin Liska  <mliska@suse.cz>
14892         PR translation/90148
14893         * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
14894         quote to a proper place.
14895         * plugin.cc (default_plugin_dir_name): Likewise.
14897 2022-03-07  Martin Liska  <mliska@suse.cz>
14899         PR target/99297
14900         * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
14901         string.
14903 2022-03-07  Jakub Jelinek  <jakub@redhat.com>
14905         PR target/104779
14906         * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
14907         define_expand pattern.  Rename define_insn to ...
14908         (*avx512dq_mul<mode>3<mask_name>): ... this.
14909         (<code><mode>3_mask): New any_logic define_expand pattern.
14910         (<mask_codefor><code><mode>3<mask_name>): Rename to ...
14911         (*<code><mode>3<mask_name>): ... this.
14913 2022-03-05  Jakub Jelinek  <jakub@redhat.com>
14915         * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
14916         visited bitmap and its use.  Also punt on EDGE_ABNORMAL edges.
14918 2022-03-05  Roger Sayle  <roger@nextmovesoftware.com>
14919             Uroš Bizjak  <ubizjak@gmail.com>
14921         PR testsuite/104732
14922         * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
14923         Include DI mode unconditionally.
14924         (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
14925         i.e. always split on !TARGET_64BIT.
14926         (*<any_or>di3_doubleword): Likewise.
14927         (*one_cmpldi2_doubleword): Likewise.
14928         (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
14929         (<any_or><mode>3 expander): Likewise.
14930         (one_cmpl<mode>2 expander): Likewise.
14932 2022-03-05   Michael Meissner  <meissner@linux.ibm.com>
14934         PR target/104698
14935         * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
14936         (mtvsrdd_diti_w1): Delete.
14937         (extendditi2): Convert from define_expand to
14938         define_insn_and_split.  Replace with code to deal with both GPR
14939         registers and with altivec registers.
14941 2022-03-04  Segher Boessenkool  <segher@kernel.crashing.org>
14943         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
14944         bit.  Handle most older CPUs.
14946 2022-03-04  Iain Sandoe  <iain@sandoe.co.uk>
14948         * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
14949         avoid a mismatch with DECL_MD_FUNCTION_CODE().
14951 2022-03-04  Iain Sandoe  <iain@sandoe.co.uk>
14953         PR target/104117
14954         * config/rs6000/darwin.md (@machopic_high_<mode>): New.
14955         (@machopic_low_<mode>): New.
14956         * config/rs6000/predicates.md (macho_pic_address): New.
14957         * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
14958         apply the TLS processing to Darwin.
14959         * lra-constraints.cc (process_address_1): Revert the changes
14960         in r12-7209.
14962 2022-03-04  Peter Bergner  <bergner@linux.ibm.com>
14964         PR target/87496
14965         PR target/104208
14966         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
14967         ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
14968         -mlong-double-128.
14969         Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
14970         from here...
14971         * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
14972         ... to here.
14974 2022-03-04  Jakub Jelinek  <jakub@redhat.com>
14976         PR middle-end/104529
14977         * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
14978         on automatic objects which will be runtime initialized.
14980 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
14982         PR middle-end/100280
14983         PR middle-end/104132
14984         PR middle-end/104133
14985         * omp-low.cc (task_shared_vars): Rename to
14986         'make_addressable_vars'.  Adjust all users.
14987         (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
14988         'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
14990 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
14992         PR middle-end/100280
14993         * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
14994         * tree-core.h: Document it.
14995         * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
14996         'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
14997         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
14998         Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
14999         'TREE_ADDRESSABLE'.
15001 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
15003         PR middle-end/100280
15004         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
15005         Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
15006         '[...]' declared in block made addressable".
15008 2022-03-04  Thomas Schwinge  <thomas@codesourcery.com>
15010         PR middle-end/100400
15011         PR middle-end/103836
15012         PR middle-end/104061
15013         * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
15014         Catch 'GIMPLE_DEBUG'.
15016 2022-03-04  Jakub Jelinek  <jakub@redhat.com>
15018         PR c/104627
15019         * tree.cc (warn_deprecated_use): For types prefer to use node
15020         and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
15021         NULL.
15023 2022-03-04  H.J. Lu  <hjl.tools@gmail.com>
15025         PR target/104704
15026         * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
15027         a pseudo register.
15029 2022-03-03  Martin Sebor  <msebor@redhat.com>
15031         PR middle-end/104761
15032         * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
15033         mark_dfs_back_edges.
15035 2022-03-03  Martin Liska  <mliska@suse.cz>
15037         * configure.ac: Use linker plug-in by default.
15038         * configure: Regenerate.
15040 2022-03-03  Martin Liska  <mliska@suse.cz>
15042         * configure.ac: Now ld.mold support LTO plugin API, use it.
15043         * configure: Regenerate.
15045 2022-03-03  Tom de Vries  <tdevries@suse.de>
15047         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
15049 2022-03-03  Tom de Vries  <tdevries@suse.de>
15051         PR target/104758
15052         * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
15054 2022-03-03  Tom de Vries  <tdevries@suse.de>
15056         * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
15058 2022-03-03  Jakub Jelinek  <jakub@redhat.com>
15060         PR middle-end/104757
15061         * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
15062         gimplify_omp_for.
15063         (gimplify_expr) <case OMP_SIMD>: Temporarily disable
15064         gimplify_ctxp->into_ssa around call to gimplify_omp_for.
15066 2022-03-03  Jakub Jelinek  <jakub@redhat.com>
15068         PR middle-end/104558
15069         * calls.cc (store_one_arg): When not calling emit_push_insn
15070         because size_rtx is const0_rtx, call at least anti_adjust_stack
15071         on arg->locate.alignment_pad if !argblock and the alignment might
15072         be non-zero.
15074 2022-03-02  Alexandre Oliva  <oliva@adacore.com>
15076         * lra-constraints.cc (undo_optional_reloads): Recognize and
15077         drop insns of multi-word move sequences, tolerate removal
15078         iteration on an already-removed clobber, and refuse to
15079         substitute original pseudos into clobbers.
15081 2022-03-02  Qing Zhao  <qing.zhao@oracle.com>
15083         PR middle-end/102276
15084         * common.opt (-Wtrivial-auto-var-init): New option.
15085         * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
15086         (-ftrivial-auto-var-init): Update option;
15087         * gimplify.cc (emit_warn_switch_unreachable): New function.
15088         (warn_switch_unreachable_r): Rename to ...
15089         (warn_switch_unreachable_and_auto_init_r): This.
15090         (maybe_warn_switch_unreachable): Rename to ...
15091         (maybe_warn_switch_unreachable_and_auto_init): This.
15092         (gimplify_switch_expr): Update calls to renamed function.
15094 2022-03-02  Richard Biener  <rguenther@suse.de>
15096         PR rtl-optimization/104686
15097         * ira-color.cc (object_conflicts_with_allocno_p): New function
15098         using a bitvector test instead of iterating when possible.
15099         (allocnos_conflict_p): Choose the best allocno to iterate over
15100         object conflicts.
15101         (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
15102         last.
15104 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
15106         * cfg.cc (dump_edge_info): Dump goto_locus if present.
15108 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
15110         PR rtl-optimization/104589
15111         * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
15112         INSN_LOCATION comparison with goto_locus.
15114 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
15116         * tree-ssa-strlen.cc (strlen_pass::handle_assign,
15117         strlen_pass::before_dom_children): Comment spelling fixes.
15119 2022-03-02  Jakub Jelinek  <jakub@redhat.com>
15121         * ipa-modref-tree.cc (modref_access_node::contains,
15122         modref_access_node::closer_pair_p, modref_access_node::insert,
15123         modref_access_node::insert_kill): Comment spelling fixes.
15124         * ipa-modref.cc: Likewise.
15125         (modref_summary::finalize, ignore_nondeterminism_p,
15126         class modref_access_analysis,
15127         modref_access_analysis::set_side_effects,
15128         modref_access_analysis::set_nondeterministic,
15129         modref_access_analysis::record_global_memory_load,
15130         modref_access_analysis::propagate, modref_access_analysis::analyze,
15131         struct escape_point, class modref_lattice, modref_lattice::merge,
15132         modref_lattice::merge_deref, class modref_eaf_analysis,
15133         modref_eaf_analysis::merge_call_lhs_flags,
15134         modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
15135         modref_eaf_analysis::record_escape_points, remap_kills,
15136         update_escape_summary, remove_useless_summaries,
15137         ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
15138         Likewise.
15139         * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
15140         Likewise.
15141         * ipa-modref-tree.h (enum modref_special_parms,
15142         struct modref_access_node): Likewise.
15144 2022-03-01  Jakub Jelinek  <jakub@redhat.com>
15146         PR tree-optimization/104715
15147         * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
15148         unnecessarily test if ptr is a SSA_NAME, it has to be.  Only push lhs
15149         of a call if gimple_call_return_arg is equal to ptr, not just when it
15150         is non-NULL.
15152 2022-03-01  Jakub Jelinek  <jakub@redhat.com>
15154         * gimple-ssa-warn-access.cc (warn_string_no_nul,
15155         maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
15156         matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
15157         pass_waccess::check_alloca, pass_waccess::check_strcat,
15158         memmodel_to_uhwi, fntype_argno_type,
15159         pass_waccess::maybe_check_access_sizes,
15160         pass_waccess::check_call_access,
15161         pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
15162         Comment spelling fixes.
15164 2022-03-01  Richard Biener  <rguenther@suse.de>
15166         PR tree-optimization/104716
15167         * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
15168         Check if we can copy the loop.
15170 2022-03-01  H.J. Lu  <hjl.tools@gmail.com>
15172         PR middle-end/104721
15173         * cfgexpand.cc (expand_gimple_basic_block): Clear
15174         currently_expanding_gimple_stmt when returning inside the loop.
15176 2022-03-01  Martin Liska  <mliska@suse.cz>
15178         PR ipa/104533
15179         * multiple_target.cc (get_attr_len): Move to tree.c.
15180         (expand_target_clones): Remove single value checking.
15181         * tree.cc (get_target_clone_attr_len): New fn.
15182         * tree.h (get_target_clone_attr_len): Likewise.
15184 2022-03-01  Martin Liska  <mliska@suse.cz>
15186         PR gcov-profile/104677
15187         * doc/invoke.texi: Document more .gcda file name generation.
15189 2022-03-01  Tom de Vries  <tdevries@suse.de>
15191         PR target/102429
15192         * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
15193         * config/nvptx/nvptx.md
15194         (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
15195         New predicate.
15196         (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
15197         Use nvptx_register_or_complex_di_df_register_operand.
15199 2022-03-01  Tom de Vries  <tdevries@suse.de>
15201         * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
15202         * config/nvptx/gen-copyright.sh: New file.
15203         * config/nvptx/gen-h.sh: New file.
15204         * config/nvptx/gen-opt.sh: New file.
15205         * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
15206         (TARGET_SM75, TARGET_SM80): Move ...
15207         * config/nvptx/nvptx-gen.h: ... here.  New file, generate.
15208         * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
15209         * config/nvptx/nvptx-gen.opt: ... here.  New file, generate.
15210         * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
15211         ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
15213 2022-03-01  Tom de Vries  <tdevries@suse.de>
15215         * config/nvptx/gen-omp-device-properties.sh: New file.
15216         * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
15218 2022-03-01  Tom de Vries  <tdevries@suse.de>
15220         * config/nvptx/nvptx-sm.def: New file.
15221         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
15222         * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
15223         * config/nvptx/nvptx.cc (sm_version_to_string)
15224         (nvptx_omp_device_kind_arch_isa): Same.
15226 2022-03-01  Robin Dapp  <rdapp@linux.ibm.com>
15228         PR rtl-optimization/104154
15229         * config/arc/arc.cc (gen_compare_reg):  Return the CC-mode
15230         comparison ifcvt passed us.
15232 2022-03-01  Hongyu Wang  <hongyu.wang@intel.com>
15234         PR target/104664
15235         * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
15236           Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
15238 2022-02-28  Roger Sayle  <roger@nextmovesoftware.com>
15240         PR tree-optimization/91384
15241         * config/i386/i386.md (peephole2): Eliminate final testl insn
15242         from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
15243         transforming using *negsi_2 for the negation.
15245 2022-02-28  Roger Sayle  <roger@nextmovesoftware.com>
15246             Eric Botcazou  <ebotcazou@adacore.com>
15248         PR middle-end/80270
15249         * expmed.cc (extract_integral_bit_field): If OP0 is a hard
15250         register, copy it to a pseudo before calling simplify_gen_subreg.
15252 2022-02-28  Vladimir N. Makarov  <vmakarov@redhat.com>
15254         PR rtl-optimization/104637
15255         * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
15256         as possible on one subpass.
15258 2022-02-28  Qing Zhao  <qing.zhao@oracle.com>
15260         PR middle-end/104550
15261         * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
15262         created uses.
15264 2022-02-28  Martin Liska  <mliska@suse.cz>
15266         PR ipa/104648
15267         * main.cc (main): Use flag_checking instead of CHECKING_P
15268         and run toplev::finalize only if there is not error seen.
15270 2022-02-28  Richard Biener  <rguenther@suse.de>
15272         * tree-ssa-pre.cc (compute_avail): Revert part of last change.
15274 2022-02-28  Richard Biener  <rguenther@suse.de>
15276         PR tree-optimization/104700
15277         * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
15278         into ...
15279         (find_or_generate_expression): ... here, simplifying code.
15281 2022-02-28  Tom de Vries  <tdevries@suse.de>
15283         * config/nvptx/nvptx-opts.h (enum ptx_version): Add
15284         PTX_VERSION_default.
15285         * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
15286         PTX_VERSION_default.
15287         * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
15289 2022-02-28  Richard Biener  <rguenther@suse.de>
15291         PR rtl-optimization/104686
15292         * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
15293         skipping bits that are zero.
15294         (ira_object_conflict_iter_cond): Likewise.
15296 2022-02-28  Hongyu Wang  <hongyu.wang@intel.com>
15298         * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
15299         (_mm512_ternarylogic_epi64): Truncate imm to unsigned
15300         char to avoid error when using ~enum as parameter.
15301         (_mm512_mask_ternarylogic_epi64): Likewise.
15302         (_mm512_maskz_ternarylogic_epi64): Likewise.
15303         (_mm512_ternarylogic_epi32): Likewise.
15304         (_mm512_mask_ternarylogic_epi32): Likewise.
15305         (_mm512_maskz_ternarylogic_epi32): Likewise.
15306         * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
15307         Adjust imm param type to unsigned char.
15308         (_mm256_mask_ternarylogic_epi64): Likewise.
15309         (_mm256_maskz_ternarylogic_epi64): Likewise.
15310         (_mm256_ternarylogic_epi32): Likewise.
15311         (_mm256_mask_ternarylogic_epi32): Likewise.
15312         (_mm256_maskz_ternarylogic_epi32): Likewise.
15313         (_mm_ternarylogic_epi64): Likewise.
15314         (_mm_mask_ternarylogic_epi64): Likewise.
15315         (_mm_maskz_ternarylogic_epi64): Likewise.
15316         (_mm_ternarylogic_epi32): Likewise.
15317         (_mm_mask_ternarylogic_epi32): Likewise.
15318         (_mm_maskz_ternarylogic_epi32): Likewise.
15320 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
15321             Marc Glisse  <marc.glisse@inria.fr>
15323         PR tree-optimization/104675
15324         * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
15325         Restrict simplifications to INTEGRAL_TYPE_P.
15327 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
15329         PR target/104681
15330         * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
15332 2022-02-25  Claudiu Zissulescu  <claziss@synopsys.com>
15334         * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
15335         comparison is not valid.
15336         * config/arc/arc.md (movsicc): Fail if comparison is not valid.
15337         (movdicc): Likewise.
15338         (movsfcc): Likewise.
15339         (movdfcc): Likewise.
15341 2022-02-25  Richard Biener  <rguenther@suse.de>
15343         PR tree-optimization/103037
15344         * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
15345         (vn_nary_length_from_stmt): Likewise.
15346         (init_vn_nary_op_from_stmt): Likewise.
15347         (vn_nary_op_compute_hash): Likewise.
15348         * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
15349         (vn_nary_length_from_stmt): Likewise.
15350         (init_vn_nary_op_from_stmt): Likewise.
15351         (vn_nary_op_compute_hash): Likewise.
15352         * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
15353         (get_or_alloc_expr_for_nary): Pass in the value-id to use,
15354         (re-)compute the hash value and if the expression is not
15355         found allocate it from pre_expr_obstack.
15356         (phi_translate_1): Do not insert the NARY found in the
15357         VN tables but build a PRE expression from the valueized
15358         NARY with the value-id we eventually found.
15359         (find_or_generate_expression): Assert we have an entry
15360         for constant values.
15361         (compute_avail): Insert not valueized expressions into
15362         EXP_GEN using the value-id from the VN tables.
15363         (init_pre): Allocate pre_expr_obstack.
15364         (fini_pre): Free pre_expr_obstack.
15366 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
15368         PR target/104674
15369         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
15370         * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
15371         SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
15373 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
15375         * warning-control.cc (get_nowarn_spec): Comment spelling fix.
15377 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
15379         PR middle-end/104679
15380         * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
15382 2022-02-25  Jakub Jelinek  <jakub@redhat.com>
15384         PR tree-optimization/104675
15385         * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
15386         COMPLEX_TYPE.
15388 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
15390         PR target/104121
15391         PR target/103302
15392         * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
15394 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
15396         PR middle-end/104540
15397         * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
15398         dw_cfi_cfa_loc.
15400 2022-02-25  Alexandre Oliva  <oliva@adacore.com>
15402         PR tree-optimization/103856
15403         * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
15404         eh edge to be requested through an extra parameter.
15405         (pass_harden_compares::execute): Copy PHI args in the EH dest
15406         block for the new EH edge added for the inverted compare.
15408 2022-02-24  Palmer Dabbelt  <palmer@rivosinc.com>
15410         * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
15411         of position independence that -mcmodel=medany affords.
15413 2022-02-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
15415         PR target/104656
15416         * configure.ac: --disable-gcov if targetting bpf-*.
15417         * configure: Regenerate.
15419 2022-02-24  Richard Biener  <rguenther@suse.de>
15421         PR tree-optimization/104676
15422         * tree-loop-distribution.cc (loop_distribution::execute):
15423         Do a full scev_reset.
15425 2022-02-24  Jakub Jelinek  <jakub@redhat.com>
15427         PR tree-optimization/104601
15428         * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
15429         non-SSA_NAME lhs value number vdef to itself instead of e.g. the
15430         vuse value number.
15432 2022-02-24  Tom de Vries  <tdevries@suse.de>
15433             Tobias Burnus  <tobias@codesourcery.com>
15435         * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
15436         sm_70, sm_75 and sm_80.
15437         * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
15439 2022-02-24  Tom de Vries  <tdevries@suse.de>
15441         * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
15442         "rotrsi3"): New define_insn.
15444 2022-02-24  Tom de Vries  <tdevries@suse.de>
15446         * config/nvptx/nvptx.cc (gen_comment): Use
15447         DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
15449 2022-02-24  liuhongt  <hongtao.liu@intel.com>
15451         * config/i386/sse.md (<code>v1ti3): Add suffix and replace
15452         isa attr of alternative 2 from avx to avx512vl.
15454 2022-02-23  Richard Biener  <rguenther@suse.de>
15455             Jakub Jelinek  <jakub@redhat.com>
15457         PR tree-optimization/104644
15458         * doc/match-and-simplify.texi: Amend ! documentation.
15459         * genmatch.cc (expr::gen_transform): Code-generate ! support
15460         for GENERIC.
15461         (parser::parse_expr): Allow ! for GENERIC.
15462         * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
15463         bswap.
15465 2022-02-23  Richard Biener  <rguenther@suse.de>
15467         PR tree-optimization/101636
15468         * tree-vect-slp.cc (vect_print_slp_tree): Dump the
15469         vector type of the node.
15470         (vect_slp_analyze_operations): Make sure the CTOR
15471         is vectorized with an expected type.
15472         (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
15474 2022-02-23  Jakub Jelinek  <jakub@redhat.com>
15476         PR c/104633
15477         * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
15478         Don't warn about calls to corresponding builtin from extern inline
15479         gnu_inline wrappers.
15481 2022-02-23  Roger Sayle  <roger@nextmovesoftware.com>
15483         PR target/104489
15484         * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
15486 2022-02-23  Christophe Lyon  <christophe.lyon@arm.com>
15488         PR target/100757
15489         PR target/101325
15490         * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
15491         typo.
15493 2022-02-23  Cui,Lili  <lili.cui@intel.com>
15495         * doc/invoke.texi: Update documents for Intel architectures.
15497 2022-02-22  Roger Sayle  <roger@nextmovesoftware.com>
15499         * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
15500         bootstrap.
15502 2022-02-22  Thomas Schwinge  <thomas@codesourcery.com>
15504         * omp-low.cc (omp_build_component_ref): Move function...
15505         * omp-general.cc (omp_build_component_ref): ... here.  Remove
15506         'static'.
15507         * omp-general.h (omp_build_component_ref): Declare function.
15508         * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
15509         function.
15510         (build_receiver_ref, build_sender_ref): Call
15511         'omp_build_component_ref' instead.
15513 2022-02-22  Thomas Schwinge  <thomas@codesourcery.com>
15515         * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
15516         simplify.  Adjust all users.
15518 2022-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
15520         PR target/88134
15521         * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
15522         atomic_update_decl): Add GTY markup.
15524 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15526         * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
15528 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15530         PR target/100757
15531         PR target/101325
15532         * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
15533         predicate.
15534         (CX_BINARY_UNONE_QUALIFIERS): Likewise.
15535         (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
15536         (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
15537         (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
15538         (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
15539         * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
15540         * config/arm/mve.md: Use VxBI instead of HI.
15542 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15544         PR target/100757
15545         PR target/101325
15546         * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
15547         qualifier.
15548         (STRSBU_P_QUALIFIERS): Likewise.
15549         (LDRGBS_Z_QUALIFIERS): Likewise.
15550         (LDRGBU_Z_QUALIFIERS): Likewise.
15551         (LDRGBWBXU_Z_QUALIFIERS): Likewise.
15552         (LDRGBWBS_Z_QUALIFIERS): Likewise.
15553         (LDRGBWBU_Z_QUALIFIERS): Likewise.
15554         (STRSBWBS_P_QUALIFIERS): Likewise.
15555         (STRSBWBU_P_QUALIFIERS): Likewise.
15556         * config/arm/mve.md: Use VxBI instead of HI.
15558 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15560         PR target/100757
15561         PR target/101325
15562         * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
15563         (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
15564         (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
15565         (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
15566         (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
15567         (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
15568         (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
15569         (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
15570         (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
15571         (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
15572         (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
15573         (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
15574         (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
15575         (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
15576         (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
15577         (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
15578         (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
15579         (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
15580         (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
15581         (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
15582         (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
15583         (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
15584         (STRS_P_QUALIFIERS): Use predicate qualifier.
15585         (STRU_P_QUALIFIERS): Likewise.
15586         (STRSU_P_QUALIFIERS): Likewise.
15587         (STRSS_P_QUALIFIERS): Likewise.
15588         (LDRGS_Z_QUALIFIERS): Likewise.
15589         (LDRGU_Z_QUALIFIERS): Likewise.
15590         (LDRS_Z_QUALIFIERS): Likewise.
15591         (LDRU_Z_QUALIFIERS): Likewise.
15592         (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
15593         (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
15594         (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
15595         (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
15596         * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
15597         * config/arm/mve.md: Use MVE_VPRED instead of HI.
15599 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15601         PR target/100757
15602         PR target/101325
15603         * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
15604         Delete.
15605         (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
15606         (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
15607         (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
15608         * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
15609         predicated qualifiers.
15610         * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
15611         (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
15613 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15615         PR target/100757
15616         * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
15617         (arm_expand_vector_compare): Update prototype.
15618         * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
15619         (arm_vector_mode_supported_p): Add support for VxBI modes.
15620         (arm_expand_vector_compare): Remove useless generation of vpsel.
15621         (arm_expand_vcond): Fix select operands.
15622         (arm_get_mask_mode): New.
15623         * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
15624         (vec_cmpu<mode><MVE_vpred>): New.
15625         (vcond_mask_<mode><MVE_vpred>): New.
15626         * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
15627         (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
15628         * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
15629         (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
15630         and disable for MVE.
15631         * doc/sourcebuild.texi (arm_mve): Document new effective-target.
15633 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15635         PR target/100757
15636         PR target/101325
15637         * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
15638         (BINOP_PRED_NONE_NONE_QUALIFIERS)
15639         (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
15640         (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
15641         * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
15642         * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
15643         modes.
15644         (arm_mode_to_pred_mode): New.
15645         (arm_expand_vector_compare): Use the right VxBI mode instead of
15646         HI.
15647         (arm_expand_vcond): Likewise.
15648         (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
15649         (mve_bool_vec_to_const): New.
15650         (neon_make_constant): Call mve_bool_vec_to_const when needed.
15651         * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
15652         (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
15653         (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
15654         (vpselq_s, vpselq_f): Use new predicated qualifiers.
15655         * config/arm/constraints.md (DB): New.
15656         * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
15657         (MVE_VPRED, MVE_vpred): New attribute iterators.
15658         * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
15659         (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
15660         (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
15661         (@mve_vpselq_<supf>v2di): Define separately.
15662         (mov<mode>): New expander for VxBI modes.
15663         * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
15664         MVE_7_HI iterator and add support for DB constraint.
15666 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15667             Richard Sandiford  <richard.sandiford@arm.com>
15669         PR target/100757
15670         PR target/101325
15671         * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
15672         VNx2BI): Update definition.
15673         * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
15674         simd types.
15675         (arm_init_builtin): Map predicate vectors arguments to HImode.
15676         (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
15677         rtx. Move return value to HImode rtx.
15678         * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
15679         * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
15680         * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
15681         Pred2x8_t,Pred4x4_t): New.
15682         * emit-rtl.cc (init_emit_once): Handle all boolean modes.
15683         * genmodes.cc (mode_data): Add boolean field.
15684         (blank_mode): Initialize it.
15685         (make_complex_modes): Fix handling of boolean modes.
15686         (make_vector_modes): Likewise.
15687         (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
15688         (make_vector_bool_mode): Likewise.
15689         (BOOL_MODE): New.
15690         (make_bool_mode): New.
15691         (emit_insn_modes_h): Fix generation of boolean modes.
15692         (emit_class_narrowest_mode): Likewise.
15693         * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
15694         parameter.  Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
15695         define BImode.
15696         * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
15697         Fix handling of constm1_rtx for VECTOR_BOOL.
15698         * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
15699         (native_decode_vector_rtx): Likewise.
15700         (test_vector_ops_duplicate): Skip vec_merge test
15701         with vectors of booleans.
15702         * varasm.cc (output_constant_pool_2): Likewise.
15704 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15706         * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
15707         for operand 1.
15709 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15711         * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
15713 2022-02-22  Christophe Lyon  <christophe.lyon@arm.com>
15715         * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
15716         (REG_CLASS_NAMES): Likewise.
15717         (REG_CLASS_CONTENTS): Likewise.
15718         (CLASS_MAX_NREGS): Handle VPR.
15719         * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
15721 2022-02-22  Tobias Burnus  <tobias@codesourcery.com>
15722             Tom de Vries  <tdevries@suse.de>
15724         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
15725         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
15726         Likewise.
15727         * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
15729 2022-02-22  Tobias Burnus  <tobias@codesourcery.com>
15730             Tom de Vries  <tdevries@suse.de>
15732         * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
15733         * doc/invoke.texi (-mptx): Update for new values and defaults.
15735 2022-02-22  Tom de Vries  <tdevries@suse.de>
15737         * config/nvptx/nvptx.cc (gen_comment): New function.
15738         (workaround_uninit_method_1, workaround_uninit_method_2)
15739         (workaround_uninit_method_3): : Use gen_comment.
15740         * config/nvptx/nvptx.opt (mptx-comment): New option.
15742 2022-02-22  Richard Biener  <rguenther@suse.de>
15744         * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
15745         for a splat.
15747 2022-02-22  Roger Sayle  <roger@nextmovesoftware.com>
15748             Richard Biener  <rguenther@suse.de>
15750         * fold-const.cc (ctor_single_nonzero_element): New function to
15751         return the single non-zero element of a (vector) constructor.
15752         * fold-const.h (ctor_single_nonzero_element): Prototype here.
15753         * match.pd (reduc (constructor@0)): Simplify reductions of a
15754         constructor containing a single non-zero element.
15755         (reduc (@0 op VECTOR_CST) ->  (reduc @0) op CONST): Simplify
15756         reductions of vector operations of the same operator with
15757         constant vector operands.
15759 2022-02-22  Jakub Jelinek  <jakub@redhat.com>
15761         PR tree-optimization/104604
15762         * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
15763         Only check if gimple_assign_rhs1 is COMPLEX_CST if
15764         gimple_assign_rhs_code is COMPLEX_CST.
15766 2022-02-22  Jakub Jelinek  <jakub@redhat.com>
15768         PR target/104612
15769         * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
15770         on input operands before calling lowpart_subreg on it.  For output
15771         operand, use a vmode pseudo as destination and then move its lowpart
15772         subreg into operands[0] if lowpart_subreg fails on dest.
15773         (ix86_expand_xorsign): Likewise.
15775 2022-02-22  Richard Biener  <rguenther@suse.de>
15777         PR tree-optimization/104582
15778         PR target/99881
15779         * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
15780         Cost GPR to vector register moves for integer vector construction.
15782 2022-02-22  Richard Biener  <rguenther@suse.de>
15784         PR tree-optimization/104582
15785         * tree-vectorizer.h (stmt_info_for_cost::node): New field.
15786         (vector_costs::add_stmt_cost): Add SLP node parameter.
15787         (dump_stmt_cost): Likewise.
15788         (add_stmt_cost): Likewise, new overload and adjust.
15789         (add_stmt_costs): Adjust.
15790         (record_stmt_cost): New overload.
15791         * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
15792         (vector_costs::add_stmt_cost): Adjust.
15793         * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
15794         Adjust.
15795         * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
15796         the SLP node for costing.
15797         (vectorizable_slp_permutation): Likewise.
15798         * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
15799         new overloads.
15800         * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
15801         Adjust.
15802         * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
15803         Adjust.
15804         * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
15805         Adjust.
15806         (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
15808 2022-02-22  Richard Biener  <rguenther@suse.de>
15810         PR tree-optimization/104582
15811         * tree-vectorizer.h (add_stmt_cost): New overload.
15812         (record_stmt_cost): Likewise.
15813         * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
15814         Use add_stmt_costs.
15815         (vect_get_known_peeling_cost): Use new overloads.
15816         (vect_estimate_min_profitable_iters): Likewise.  Consistently
15817         use scalar_stmt for costing versioning checks.
15818         * tree-vect-stmts.cc (record_stmt_cost): New overload.
15820 2022-02-22  Hongyu Wang  <hongyu.wang@intel.com>
15822         PR target/103069
15823         * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
15824         Split atomic fetch and loop part.
15825         (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
15826         * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
15827         prototype.
15828         * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
15829         expander under TARGET_RELAX_CMPXCHG_LOOP.
15830         (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
15832 2022-02-21  Dan Li  <ashimida@linux.alibaba.com>
15834         * config/aarch64/aarch64.cc (SLOT_REQUIRED):
15835         Change wb_candidate[12] to wb_push_candidate[12].
15836         (aarch64_layout_frame): Likewise, and
15837         change callee_adjust when scs is enabled.
15838         (aarch64_save_callee_saves):
15839         Change wb_candidate[12] to wb_push_candidate[12].
15840         (aarch64_restore_callee_saves):
15841         Change wb_candidate[12] to wb_pop_candidate[12].
15842         (aarch64_get_separate_components):
15843         Change wb_candidate[12] to wb_push_candidate[12].
15844         (aarch64_expand_prologue): Push x30 onto SCS before it's
15845         pushed onto stack.
15846         (aarch64_expand_epilogue): Pop x30 frome SCS, while
15847         preventing it from being popped from the regular stack again.
15848         (aarch64_override_options_internal): Add SCS compile option check.
15849         (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
15850         * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
15851         wb_pop_candidate[12], and rename wb_candidate[12] to
15852         wb_push_candidate[12].
15853         * config/aarch64/aarch64.md (scs_push): New template.
15854         (scs_pop): Likewise.
15855         * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
15856         * doc/tm.texi: Regenerate.
15857         * doc/tm.texi.in: Add hook have_shadow_call_stack.
15858         * flag-types.h (enum sanitize_code):
15859         Add SANITIZE_SHADOW_CALL_STACK.
15860         * opts.cc (parse_sanitizer_options): Add shadow-call-stack
15861         and exclude SANITIZE_SHADOW_CALL_STACK.
15862         * target.def: New hook.
15863         * toplev.cc (process_options): Add SCS compile option check.
15864         * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
15866 2022-02-21  Tom de Vries  <tdevries@suse.de>
15868         PR target/104440
15869         * config/nvptx/nvptx.cc (workaround_uninit_method_1)
15870         (workaround_uninit_method_2, workaround_uninit_method_3)
15871         (workaround_uninit): New function.
15872         (nvptx_reorg): Use workaround_uninit.
15873         * config/nvptx/nvptx.opt (minit-regs): New option.
15875 2022-02-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
15877         PR rtl-optimization/104498
15878         * alias.cc (compare_base_symbol_refs): Correct distance computation
15879         when swapping x and y.
15881 2022-02-21  Andrew Pinski  <apinski@marvell.com>
15883         PR c/104506
15884         * tree-ssa.cc (tree_ssa_useless_type_conversion):
15885         Check the inner type before calling useless_type_conversion_p.
15887 2022-02-19  Tom de Vries  <tdevries@suse.de>
15889         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
15890         * config/nvptx/nvptx.md
15891         (define_insn "nvptx_atomic_store<mode>"): Rename to ...
15892         (define_insn "nvptx_atomic_store_sm70<mode>"): This.
15893         (define_insn "nvptx_atomic_store<mode>"): New define_insn.
15894         (define_expand "atomic_store<mode>"): Handle rename.  Use
15895         nvptx_atomic_store instead of atomic_exchange.
15897 2022-02-19  Tom de Vries  <tdevries@suse.de>
15899         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
15900         insns with atomic attribute.  Assert that all handled insns are
15901         PARALLELs.
15902         * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
15903         Set atomic attribute to false.
15905 2022-02-19  Tom de Vries  <tdevries@suse.de>
15907         * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
15908         type to bool.
15909         (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
15910         nvptx_warpsync, if necessary.
15912 2022-02-19  Jakub Jelinek  <jakub@redhat.com>
15914         PR sanitizer/102656
15915         * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
15916         known to be within bounds, treat it like automatic variables.
15917         If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
15918         current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
15919         it addressable.
15921 2022-02-18  Pat Haugen  <pthaugen@linux.ibm.com>
15923         * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
15924         (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
15925         mpower10-fusion-logical-add, mpower10-fusion-add-logical,
15926         mpower10-fusion-2add, mpower10-fusion-2store): Remove.
15927         * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
15928         OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
15929         * config/rs6000/rs6000.cc (rs6000_option_override_internal,
15930         power10_sched_reorder): Likewise.
15931         * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
15932         gen_addadd): Likewise
15933         * config/rs6000/fusion.md: Regenerate.
15935 2022-02-18  Jakub Jelinek  <jakub@redhat.com>
15937         PR target/104257
15938         PR target/104598
15939         * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
15940         rather than __posix_memalign.
15942 2022-02-18  Richard Biener  <rguenther@suse.de>
15944         PR target/104581
15945         * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
15946         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
15947         of calling ix86_avx_u128_mode_source which would eventually
15948         have returned AVX_U128_ANY in some very special case.
15950 2022-02-18  Richard Biener  <rguenther@suse.de>
15952         PR tree-optimization/96881
15953         * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
15954         CLOBBER handling.
15955         (control_parents_preserved_p): New function.
15956         (eliminate_unnecessary_stmts): Check that we preserved control
15957         parents before retaining a CLOBBER.
15958         (perform_tree_ssa_dce): Pass down aggressive flag
15959         to eliminate_unnecessary_stmts.
15961 2022-02-17  Jason Merrill  <jason@redhat.com>
15963         * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
15964         on TYPE_MAIN_VARIANT.
15966 2022-02-17  Paul A. Clarke  <pc@us.ibm.com>
15968         PR target/104257
15969         * config/rs6000/bmi2intrin.h: Uglify local variables.
15970         * config/rs6000/emmintrin.h: Likewise.
15971         * config/rs6000/mm_malloc.h: Likewise.
15972         * config/rs6000/mmintrin.h: Likewise.
15973         * config/rs6000/pmmintrin.h: Likewise.
15974         * config/rs6000/smmintrin.h: Likewise.
15975         * config/rs6000/tmmintrin.h: Likewise.
15976         * config/rs6000/xmmintrin.h: Likewise.
15978 2022-02-17  Robin Dapp  <rdapp@linux.ibm.com>
15980         PR target/104335
15981         * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
15982         if the expected comparison's first operand is of mode MODE_CC.
15984 2022-02-17  Vladimir N. Makarov  <vmakarov@redhat.com>
15986         PR rtl-optimization/104447
15987         * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
15988         hard reg set by lra_no_alloc_regs.
15990 2022-02-17  liuhongt  <hongtao.liu@intel.com>
15992         PR tree-optimization/104551
15993         PR tree-optimization/103771
15994         * match.pd (cond_expr_convert_p): Add types_match check when
15995         convert is extension.
15996         * tree-vect-patterns.cc
15997         (gimple_cond_expr_convert_p): Adjust comments.
15998         (vect_recog_cond_expr_convert_pattern): Ditto.
16000 2022-02-17  Jakub Jelinek  <jakub@redhat.com>
16002         PR debug/104557
16003         * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
16004         if expr has VOIDmode.
16006 2022-02-17  liuhongt  <hongtao.liu@intel.com>
16008         * config/i386/cpuid.h (bit_MPX): Removed.
16009         (bit_BNDREGS): Ditto.
16010         (bit_BNDCSR): Ditto.
16012 2022-02-17  Michael Meissner  <meissner@the-meissners.org>
16014         PR target/99708
16015         * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
16016         __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
16017         Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
16018         is created.
16020 2022-02-16  Andrew MacLeod  <amacleod@redhat.com>
16022         * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
16023         range_compatible_p instead of direct type comparison.
16025 2022-02-16  Jakub Jelinek  <jakub@redhat.com>
16027         PR rtl-optimization/104544
16028         * combine.cc (try_combine): When looking for insn whose links
16029         should be updated from i3 to i2, don't stop on debug insns, instead
16030         skip over them.
16032 2022-02-16  Richard Sandiford  <richard.sandiford@arm.com>
16034         PR target/100056
16035         * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
16036         * config/aarch64/aarch64.md: Extend the PR100056 patterns
16037         to handle plus in the same way as ior, if the operands have
16038         no set bits in common.
16040 2022-02-15  Andrew MacLeod  <amacleod@redhat.com>
16042         PR tree-optimization/104526
16043         * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
16044         new routine.
16045         * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
16046         of dependency chain if there isn't one.
16047         (gori_compute::condexpr_adjust): New.
16048         * gimple-range-gori.h (class gori_compute): New prototype.
16050 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
16052         PR target/100874
16053         * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
16054         Declare.
16055         * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
16056         * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
16058 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
16060         * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
16061         (vect_scalar_ops_slice_hash): Likewise.
16062         (vect_scalar_ops_slice::op): New function.
16063         * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
16064         (vect_scalar_ops_slice_hash::hash): Likewise.
16065         (vect_scalar_ops_slice_hash::equal): Likewise.
16066         (vect_prologue_cost_for_slp): Check for duplicate vectors.
16067         * config/aarch64/aarch64.cc
16068         (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
16069         (aarch64_aligned_constant_offset_p): New function.
16070         (aarch64_stp_sequence_cost): Likewise.
16071         (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
16072         (aarch64_vector_costs::finish_cost): Likewise.
16074 2022-02-15  Richard Sandiford  <richard.sandiford@arm.com>
16076         * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
16077         use after free.
16079 2022-02-15  Richard Biener  <rguenther@suse.de>
16081         PR tree-optimization/104543
16082         * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
16083         come after the inner loop.
16085 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
16087         PR target/104536
16088         * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
16089         cannot instead of can%'t in diagnostics.  Formatting fixes.
16091 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
16093         PR middle-end/104522
16094         * fold-const.h (native_interpret_real): Declare.
16095         * fold-const.cc (native_interpret_real): No longer static.  Don't
16096         perform MODE_COMPOSITE_P verification here.
16097         (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
16098         for all modes.
16099         * gimple-fold.cc (clear_padding_type): Call native_interpret_real
16100         instead of native_interpret_expr.
16101         * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
16102         and comparison verification for all FLOAT_MODE_P modes, not just
16103         MODE_COMPOSITE_P.
16105 2022-02-15  Richard Biener  <rguenther@suse.de>
16107         PR tree-optimization/104519
16108         * fold-const.cc (multiple_of_p): Remove never true condition.
16109         * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
16110         the appropriate types for determining whether the difference
16111         of final and base is a multiple of the step.
16113 2022-02-15  Jakub Jelinek  <jakub@redhat.com>
16115         PR debug/104517
16116         * omp-low.cc (task_cpyfns): New variable.
16117         (delete_omp_context): Don't call finalize_task_copyfn from here.
16118         (create_task_copyfn): Push task_stmt into task_cpyfns.
16119         (execute_lower_omp): Call finalize_task_copyfn here on entries from
16120         task_cpyfns vector and release the vector.
16122 2022-02-14  Martin Sebor  <msebor@redhat.com>
16124         PR middle-end/104355
16125         * doc/invoke.texi (-Warray-bounds): Update documentation.
16127 2022-02-14  Michael Meissner  <meissner@the-meissners.org>
16129         PR target/104253
16130         * config/rs6000/rs6000.cc (init_float128_ibm): Update the
16131         conversion functions used to convert IFmode types.
16133 2022-02-14  Andrew Stubbs  <ams@codesourcery.com>
16135         * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
16137 2022-02-14  Richard Biener  <rguenther@suse.de>
16139         PR tree-optimization/104528
16140         * tree-ssa.h (find_released_ssa_name): Declare.
16141         * tree-ssa.cc (find_released_ssa_name): Export.
16142         * cfgloop.cc (verify_loop_structure): Look for released
16143         SSA names in loops nb_iterations.
16144         * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
16145         estimates.
16147 2022-02-14  Richard Biener  <rguenther@suse.de>
16149         PR tree-optimization/104511
16150         * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
16151         touching DFP <-> FP conversions.
16153 2022-02-14  Richard Biener  <rguenther@suse.de>
16155         PR middle-end/104497
16156         * gimplify.cc (gimplify_compound_lval): Make sure the
16157         base is a non-register if needed and possible.
16159 2022-02-13  liuhongt  <hongtao.liu@intel.com>
16161         PR target/103771
16162         * match.pd (cond_expr_convert_p): New match.
16163         * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
16164         (vect_recog_cond_expr_convert_pattern): New.
16166 2022-02-12  Jakub Jelinek  <jakub@redhat.com>
16168         PR sanitizer/104449
16169         * asan.cc: Include tree-eh.h.
16170         (handle_builtin_alloca): Handle the case when __builtin_alloca or
16171         __builtin_alloca_with_align can throw.
16173 2022-02-12  Jakub Jelinek  <jakub@redhat.com>
16175         PR target/104502
16176         * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
16177         and AVX512VL isn't available, move operands[1] to operands[0] first.
16179 2022-02-12  Uroš Bizjak  <ubizjak@gmail.com>
16181         PR target/79754
16182         * config/i386/i386.cc (type_natural_mode):
16183         Skip decimal float vector modes.
16185 2022-02-11  Iain Sandoe  <iain@sandoe.co.uk>
16186             Vladimir Makarov  <vmakarov@redhat.com>
16188         PR target/104117
16189         * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
16190         Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
16191         emitting PIC code.
16192         (legitimate_lo_sum_address_p): Likewise.
16193         * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
16194         load from an invalid lo_sum address.
16196 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
16198         PR tree-optimization/104499
16199         * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
16200         of convert.
16202 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
16204         * tree.cc (build_common_builtin_nodes): Fix up formatting in
16205         __builtin_clear_padding decl creation.
16206         * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
16207         for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
16208         argument rather than in 3rd argument.
16209         (gimplify_call_expr): Likewise.  Fix up comment formatting.
16210         * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
16211         2 arguments instead of 3, take for_auto_init from the value
16212         of 2nd argument.
16214 2022-02-11  Vladimir N. Makarov  <vmakarov@redhat.com>
16216         PR rtl-optimization/104400
16217         * lra-constraints.cc (process_alt_operands): Don't make union of
16218         this_alternative_exclude_start_hard_regs when reg class in insn
16219         alternative covers other reg classes in the same alternative.
16221 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
16223         PR middle-end/104446
16224         * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
16225         operands.
16227 2022-02-11  Richard Biener  <rguenther@suse.de>
16229         PR middle-end/104496
16230         * internal-fn.cc (vectorized_internal_fn_supported_p):
16231         Bail out for integer mode vector types.
16233 2022-02-11  Jakub Jelinek  <jakub@redhat.com>
16235         PR rtl-optimization/104459
16236         * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
16237         moving DEBUG_INSNs between bbs.
16239 2022-02-11  liuhongt  <hongtao.liu@intel.com>
16241         PR tree-optimization/104479
16242         * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
16243         for the dest of uncond_op.
16245 2022-02-11  Tom de Vries  <tdevries@suse.de>
16247         PR target/104456
16248         * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
16249         insn.
16251 2022-02-10  Qing Zhao  <qing.zhao@oracle.com>
16253         PR middle-end/100775
16254         * function.cc (gen_call_used_regs_seq): Call
16255         df_update_exit_block_uses when updating df.
16257 2022-02-10  Uroš Bizjak  <ubizjak@gmail.com>
16259         PR target/104469
16260         * config/i386/sse.md (vec_unpacks_float_lo_v4si):
16261         Change operand 1 constraint to register_operand.
16263 2022-02-10  Richard Biener  <rguenther@suse.de>
16265         PR tree-optimization/104373
16266         * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
16267         walk kind.
16268         * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
16269         walk kind as argument.
16270         (run_rpo_vn): Adjust.
16271         (pass_fre::execute): Likewise.
16272         * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
16273         blocks not reachable.
16274         (execute_late_warn_uninitialized): Mark all edges as
16275         executable.
16276         (execute_early_warn_uninitialized): Use VN to compute
16277         executable edges.
16278         (pass_data_early_warn_uninitialized): Enable a dump file,
16279         change dump name to warn_uninit.
16281 2022-02-10  Richard Biener  <rguenther@suse.de>
16283         PR middle-end/104467
16284         * match.pd (vector extract simplification): Multiply the
16285         number of CTOR elements with the number of element elements.
16287 2022-02-10  Richard Biener  <rguenther@suse.de>
16289         PR tree-optimization/104466
16290         * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
16291         for the MR_DEPENDENCE checks as intended.
16293 2022-02-10  Tom de Vries  <tdevries@suse.de>
16295         * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
16296         define_insn.
16297         (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
16298         TARGET_SM70.
16299         (define_c_enum "unspecv"): Add UNSPECV_ST.
16301 2022-02-10  Tom de Vries  <tdevries@suse.de>
16303         * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
16304         * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
16305         (nvptx_mem_maybe_shared_p): New function.
16306         * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
16307         define_expand.
16309 2022-02-10  Tom de Vries  <tdevries@suse.de>
16311         PR target/97005
16312         * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
16313         driver JIT bug by using sub.s16 instead of sub.u16.
16315 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
16317         * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
16318         floating point constants as operands 1 and/or 2.
16320 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
16322         PR target/104345
16323         * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
16324         (sel_false<mode>): Likewise.
16325         (define_code_iterator eqne): New code iterator for EQ and NE.
16326         (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
16327         the negation of a selp instruction.
16328         (*selp<mode>_not_<code>): New define_insn_and_split to optimize
16329         the bitwise not of a selp instruction.
16330         (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
16332 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
16334         * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
16335         in machine description.
16336         (logic): Move code attribute earlier in machine description.
16337         (ilogic): New code attribute, like logic but "ior" for IOR.
16338         (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
16339         (<ilogic><mode>3): New define_insn for HSDIM logic operations.
16340         (<ilogic>bi3): New define_insn for BI mode logic operations.
16341         (define_split): Lower logic operations from integer modes to
16342         BI mode predicate operations.
16344 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
16346         * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
16347         (one_cmplbi2): New define_insn for not.pred.
16348         (mulditi3): New define_expand for signed widening multiply.
16349         (umulditi3): New define_expand for unsigned widening multiply.
16350         (smul<mode>3_highpart): New define_insn for signed highpart mult.
16351         (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
16352         (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
16353         (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
16354         (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
16355         (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
16356         (*setcc<mode>_from_not_bi): New define_insn.
16357         (*setcc_isinf<mode>): New define_insn for testp.infinite.
16358         (isinf<mode>2): New define_expand.
16360 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
16362         * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
16363         (setcc<mode>_from_bi): Additionally support QImode.
16364         (extendbi<mode>2): Additionally support QImode.
16365         (zero_extendbi<mode>2): Additionally support QImode.
16366         (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
16367         iterators for signed and unsigned, binary and unary operations.
16368         (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
16369         expanders to perform QImode operations using SImode instructions.
16370         (cstoreqi4): New define_expand.
16371         (*ext_truncsi2_qi): New define_insn.
16372         (*zext_truncsi2_qi): New define_insn.
16374 2022-02-10  Roger Sayle  <roger@nextmovesoftware.com>
16376         * config/nvptx/nvptx.md (*cmpf): New define_insn.
16377         (cstorehf4): New define_expand.
16378         (fmahf4): New define_insn.
16379         (neghf2): New define_insn.
16380         (abshf2): New define_insn.
16382 2022-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
16384         * doc/install.texi (Specific): Change the www.bitwizard.nl
16385         reference to use https.
16387 2022-02-10  Marcel Vollweiler  <marcel@codesourcery.com>
16389         * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
16390         OMP_CLAUSE_HAS_DEVICE_ADDR
16391         and handle array sections.
16392         (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
16393         * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
16394         (lower_omp_target): Same.
16395         * tree-core.h (enum omp_clause_code): Same.
16396         * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
16397         (convert_local_omp_clauses): Same.
16398         * tree-pretty-print.cc (dump_omp_clause): Same.
16399         * tree.cc: Same.
16401 2022-02-10  Eugene Rozenfeld  <erozen@microsoft.com>
16403         * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
16404         that will result in direct recursive calls.
16406 2022-02-10  Andrew Pinski  <apinski@marvell.com>
16408         PR target/104474
16409         * config/aarch64/aarch64.cc
16410         (aarch64_sve_expand_vector_init_handle_trailing_constants):
16411         Use CONST0_RTX instead of const0_rtx for the non-constant elements.
16413 2022-02-09  Uroš Bizjak  <ubizjak@gmail.com>
16415         PR target/104462
16416         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
16417         Also include OPTION_MASK_ISA2_AVX2_UNSET.
16419 2022-02-09  Uroš Bizjak  <ubizjak@gmail.com>
16421         PR target/104458
16422         * config/i386/i386-expand.cc (ix86_split_idivmod):
16423         Force operands[2] and operands[3] into a register..
16425 2022-02-09  Jeff Law  <jeffreyalaw@gmail.com>
16427         PR target/97040
16428         * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
16429         (*v850_fnmssf4): Renamed from fnmssf4
16431 2022-02-09  Ian Lance Taylor  <iant@golang.org>
16433         * godump.cc (go_force_record_alignment): Really name the alignment
16434         field "_" (complete 2021-12-29 change).
16436 2022-02-09  Bill Schmidt  <wschmidt@linux.ibm.com>
16438         * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
16439         function prototype.
16440         (VREPLACE_UN_UV4SI): Likewise.
16441         (VREPLACE_UN_V2DF): Likewise.
16442         (VREPLACE_UN_V2DI): Likewise.
16443         (VREPLACE_UN_V4SF): Likewise.
16444         (VREPLACE_UN_V4SI): Likewise.
16445         * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
16446         function prototypes.
16447         * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
16448         (vreplace_un_<mode>): New define_insn.
16450 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
16452         * config/aarch64/iterators.md (VDCSIF): New mode iterator.
16453         (VDBL): Handle SF.
16454         (single_wx, single_type, single_dtype, dblq): New mode attributes.
16455         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
16456         from VDC to VDCSIF.
16457         (store_pair_lanes<mode>): Likewise.
16458         (*aarch64_combine_internal<mode>): Likewise.
16459         (*aarch64_combine_internal_be<mode>): Likewise.
16460         (*aarch64_combinez<mode>): Likewise.
16461         (*aarch64_combinez_be<mode>): Likewise.
16462         * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
16463         8-byte modes for ADDR_QUERY_LDP_STP_N.
16464         (aarch64_print_operand): Likewise for %y.
16466 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
16468         * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
16469         Use aarch64_combine instead of move_lo/hi_quad.  Tabify.
16470         (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
16471         (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
16472         (vec_pack_trunc_<mode>): Take general_operand elements and use
16473         aarch64_combine rather than move_lo/hi_quad to combine them.
16474         (vec_pack_trunc_df): Likewise.
16476 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
16478         * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
16479         Delete.
16480         * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
16481         to...
16482         (*aarch64_combinez<mode>): ...this.
16483         (@aarch64_combinez_be<mode>): Rename to...
16484         (*aarch64_combinez_be<mode>): ...this.
16485         (@aarch64_vec_concat<mode>): New expander.
16486         (aarch64_combine<mode>): Use it.
16487         (@aarch64_simd_combine<mode>): Delete.
16488         * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
16489         (aarch64_expand_vector_init): Use aarch64_vec_concat.
16491 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
16493         * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
16494         New predicate.
16495         * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
16496         (*aarch64_combine_internal_be<mode>): New patterns.
16498 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
16500         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
16501         (move_lo_quad_internal_be_<mode>): Delete.
16502         (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
16504 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
16506         * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
16507         Declare.
16508         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
16509         aarch64_mergeable_load_pair_p instead of inline check.
16510         * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
16511         (aarch64_check_consecutive_mems): Allow the reversed parameter
16512         to be null.
16513         (aarch64_mergeable_load_pair_p): New function.
16515 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
16517         * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
16518         element to be an aarch64_simd_nonimmediate_operand.
16520 2022-02-09  Richard Sandiford  <richard.sandiford@arm.com>
16522         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
16523         aarch64_simd_nonimmediate_operand instead of
16524         aarch64_simd_general_operand.
16525         (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
16526         general_operand.
16527         (@aarch64_combinez_be<mode>): Likewise.
16529 2022-02-09  Richard Biener  <rguenther@suse.de>
16531         PR middle-end/104464
16532         * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
16533         throwing check to after unproblematic replacement.
16535 2022-02-09  Roger Sayle  <roger@nextmovesoftware.com>
16537         PR tree-optimization/104420
16538         * match.pd (mult @0 real_zerop): Tweak conditions for constant
16539         folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
16541 2022-02-09  Jakub Jelinek  <jakub@redhat.com>
16543         PR debug/104407
16544         * dwarf2out.cc (mangle_referenced_decls): New function.
16545         (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
16546         early_dwarf.  Instead walk the initializer and try to mangle vars or
16547         functions referenced from it.
16549 2022-02-09  Andrew MacLeod  <amacleod@redhat.com>
16551         PR tree-optimization/104288
16552         * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
16553         (non_null_ref::adjust_range): Move to header.
16554         (ranger_cache::range_of_def): Don't check non-null.
16555         (ranger_cache::entry_range): Don't check non-null.
16556         (ranger_cache::range_on_edge): Check for nonnull on normal edges.
16557         (ranger_cache::update_to_nonnull): New.
16558         (non_null_loadstore): New.
16559         (ranger_cache::block_apply_nonnull): New.
16560         * gimple-range-cache.h (class non_null_ref): Update prototypes.
16561         (non_null_ref::adjust_range): Move to here and inline.
16562         (class ranger_cache): Update prototypes.
16563         * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
16564         not search dominators.
16565         (path_range_query::adjust_for_non_null_uses): Ditto.
16566         * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
16567         def overrides.  Do not check nonnull.
16568         (gimple_ranger::range_on_entry): Check dominators for nonnull.
16569         (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
16570         (gimple_ranger::register_side_effects): New.
16571         * gimple-range.h (gimple_ranger::register_side_effects): New.
16572         * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
16574 2022-02-09  Richard Biener  <rguenther@suse.de>
16576         PR tree-optimization/104445
16577         PR tree-optimization/102832
16578         * optabs-query.h (can_vec_extract): New.
16579         * optabs-query.cc (can_vec_extract): Likewise.
16580         * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
16581         we can extract a hi/lo part from the larger vector, rework
16582         check iteration from larger to smaller sizes.
16584 2022-02-09  H.J. Lu  <hjl.tools@gmail.com>
16586         PR target/35513
16587         PR target/100593
16588         * config/i386/gnu-property.cc: Include "i386-protos.h".
16589         (file_end_indicate_exec_stack_and_gnu_property): Generate
16590         a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
16591         nodirect_extern_access attribute.
16592         * config/i386/i386-options.cc
16593         (handle_nodirect_extern_access_attribute): New function.
16594         (ix86_attribute_table): Add nodirect_extern_access attribute.
16595         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
16596         bool argument.
16597         (ix86_has_no_direct_extern_access): New.
16598         * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
16599         (ix86_force_load_from_GOT_p): Add a bool argument to indicate
16600         call operand.  Force non-call load from GOT for
16601         -mno-direct-extern-access or nodirect_extern_access attribute.
16602         (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
16603         for -mno-direct-extern-access or nodirect_extern_access attribute.
16604         (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
16605         for call operand.
16606         (asm_preferred_eh_data_format): Use PC-relative format for
16607         -mno-direct-extern-access to avoid copy relocation.  Check
16608         ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
16609         (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
16610         true for -mno-direct-extern-access or nodirect_extern_access
16611         attribute.  Don't treat protected data as extern and avoid copy
16612         relocation on common symbol with -mno-direct-extern-access or
16613         nodirect_extern_access attribute.
16614         (ix86_reloc_rw_mask): New to avoid copy relocation for
16615         -mno-direct-extern-access.
16616         (TARGET_ASM_RELOC_RW_MASK): New.
16617         * config/i386/i386.opt: Add -mdirect-extern-access.
16618         * doc/extend.texi: Document nodirect_extern_access attribute.
16619         * doc/invoke.texi: Document -m[no-]direct-extern-access.
16621 2022-02-09  H.J. Lu  <hjl.tools@gmail.com>
16623         PR target/104441
16624         * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
16625         (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
16626         Call ix86_avx_u128_mode_source to check mode for each component
16627         of source operand.
16629 2022-02-09  liuhongt  <hongtao.liu@intel.com>
16631         PR target/104451
16632         * config/i386/sse.md (<insn><mode>3): lowpart_subreg
16633         operands[2] from SImode to QImode.
16635 2022-02-09  Richard Biener  <rguenther@suse.de>
16637         PR middle-end/104450
16638         * gimple-isel.cc: Pass cfun around.
16639         (+gimple_expand_vec_cond_expr): Do not combine a throwing
16640         comparison with the select.
16642 2022-02-09  Richard Biener  <rguenther@suse.de>
16644         PR target/104453
16645         * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
16646         folding for NULL LHS.
16648 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
16650         PR rtl-optimization/104198
16651         PR rtl-optimization/104153
16652         * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
16653         using it directly.  Rework comparison handling and always
16654         perform a second pass.
16656 2022-02-08  Jakub Jelinek  <jakub@redhat.com>
16658         PR target/102140
16659         * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
16660         split1 pass has finished already.
16662 2022-02-08  Bill Schmidt  <wschmidt@linux.ibm.com>
16664         * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
16665         * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
16666         * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
16667         (vmsumcud): New define_insn.
16669 2022-02-08  Tom de Vries  <tdevries@suse.de>
16671         * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
16672         * config/nvptx/nvptx.h (TARGET_SM70): Define.
16674 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
16676         * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
16677         on condition.
16678         * config/s390/s390.md: Use paradoxical subreg.
16680 2022-02-08  Robin Dapp  <rdapp@linux.ibm.com>
16682         * combine.cc (reg_subword_p): Check for paradoxical subreg.
16684 2022-02-08  Tom de Vries  <tdevries@suse.de>
16686         PR target/104283
16687         * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
16688         and PTX_VERSION_4_2.
16689         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
16690         (default_ptx_version_option, ptx_version_to_string)
16691         (sm_version_to_string, handle_ptx_version_option): New function.
16692         (nvptx_option_override): Call handle_ptx_version_option.
16693         (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
16694         * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
16695         (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
16696         * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
16698 2022-02-08  Maciej W. Rozycki  <macro@embecosm.com>
16700         * doc/install.texi (Configuration): Document `--with-isa-spec='
16701         RISC-V option.
16702         * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
16703         option.
16704         (RISC-V Options): Document it.
16706 2022-02-08  Maciej W. Rozycki  <macro@embecosm.com>
16708         * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
16710 2022-02-08  Tom de Vries  <tdevries@suse.de>
16712         * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
16714 2022-02-08  Tom de Vries  <tdevries@suse.de>
16716         PR target/104364
16717         * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
16718         * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
16719         change is validated.
16720         (nvptx_mem_local_p): New function.
16721         * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
16722         (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
16723         (define_insn "atomic_compare_and_swap<mode>_1_local"): New
16724         non-atomic, non-predicable define_insn, factored out of ...
16725         (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
16726         Make predicable again.
16727         (define_expand "atomic_compare_and_swap<mode>"): Use
16728         atomic_compare_and_swap<mode>_1_local.
16730 2022-02-08  liuhongt  <hongtao.liu@intel.com>
16732         PR rtl-optimization/104059
16733         * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
16734         for a more expensive reg-reg move.
16736 2022-02-07  Tamar Christina  <tamar.christina@arm.com>
16738         * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
16739         vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
16740         * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
16741         (usdot_laneq, sudot_laneq): New.
16742         * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
16743         (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
16745 2022-02-07  Tamar Christina  <tamar.christina@arm.com>
16747         * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
16748         vdot_laneq_s32, vdotq_laneq_s32): New.
16749         * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
16750         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
16751         (<sup>dot_prod<vsi2qi>): Re-order rtl.
16752         (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
16753         (neon_<sup>dot_laneq<vsi2qi>): New.
16755 2022-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
16757         PR target/104327
16758         * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
16759         if always_inline is set. Don't inline when tune differs without
16760         always_inline.
16762 2022-02-07  Richard Biener  <rguenther@suse.de>
16764         PR middle-end/104402
16765         * gimple-expr.cc (is_gimple_condexpr): _Complex typed
16766         compares are not valid.
16767         * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
16768         check is_gimple_condexpr.
16770 2022-02-07  Kewen Lin  <linkw@linux.ibm.com>
16772         PR target/103627
16773         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
16774         hunk affecting VSX and ALTIVEC to appropriate place.
16776 2022-02-07  Kewen Lin  <linkw@linux.ibm.com>
16778         PR target/103627
16779         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
16780         MMA if !TARGET_VSX.
16782 2022-02-06  Jakub Jelinek  <jakub@redhat.com>
16784         PR c++/89074
16785         PR c++/104033
16786         * fold-const.h (folding_initializer): Adjust comment.
16787         (folding_cxx_constexpr): Declare.
16788         * fold-const.cc (folding_initializer): Adjust comment.
16789         (folding_cxx_constexpr): New variable.
16790         (address_compare): Restrict the decl vs. STRING_CST
16791         or vice versa or STRING_CST vs. STRING_CST or
16792         is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
16793         Punt for FUNCTION_DECLs with non-zero offsets.  If folding_initializer,
16794         assume non-aliased functions have non-zero size and have different
16795         addresses.  For folding_cxx_constexpr, punt on comparisons of start
16796         of some object and end of another one, regardless whether it is a decl
16797         or string literal.  Also punt for folding_cxx_constexpr on
16798         STRING_CST vs. STRING_CST comparisons if the two literals could be
16799         overlapping.
16801 2022-02-05  Jakub Jelinek  <jakub@redhat.com>
16803         PR tree-optimization/104389
16804         * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
16805         honored.
16807 2022-02-05  Kito Cheng  <kito.cheng@sifive.com>
16809         * configure.ac: Fix detection for zifencei support.
16810         * configure: Regenerate.
16812 2022-02-05  Kito Cheng  <kito.cheng@sifive.com>
16814         PR target/104219
16815         * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
16816         (all_defaults): Add isa_spec.
16817         * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
16819 2022-02-04  Bill Schmidt  <wschmidt@linux.ibm.com>
16821         * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
16822         parameters instead of arglist and nargs.  Simplify accordingly.  Remove
16823         unnecessary test for argument count mismatch.
16824         (resolve_vec_cmpne): Likewise.
16825         (resolve_vec_adde_sube): Likewise.
16826         (resolve_vec_addec_subec): Likewise.
16827         (altivec_resolve_overloaded_builtin): Move overload special handling
16828         after the gathering of arguments into args[] and types[] and the test
16829         for correct number of arguments.  Don't perform the test for correct
16830         number of arguments for certain special cases.  Call the other special
16831         cases with args and types instead of arglist and nargs.
16833 2022-02-04  Bill Schmidt  <wschmidt@linux.ibm.com>
16835         PR target/100808
16836         * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
16837         3.1): Provide consistent type names.  Remove unnecessary semicolons.
16838         Fix bad line breaks.
16840 2022-02-04  Jakub Jelinek  <jakub@redhat.com>
16842         PR target/104380
16843         * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
16844         adjust mangling of __builtin*printf_chk.
16846 2022-02-04  Jonathan Wakely  <jwakely@redhat.com>
16848         * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
16850 2022-02-04  Richard Biener  <rguenther@suse.de>
16851             Bin Cheng   <bin.cheng@linux.alibaba.com>
16853         PR tree-optimization/100499
16854         * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
16855         to true.
16856         * fold-const.cc (multiple_of_p): Likewise.  Honor it for
16857         MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
16858         switching to false for conversions.
16859         * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
16860         claim the outermost expression does not wrap when calling
16861         multiple_of_p.  Refactor the check done to check the
16862         original IV, avoiding a bias that might wrap.
16864 2022-02-04  Richard Biener  <rguenther@suse.de>
16866         * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
16867         handling.
16869 2022-02-04  Eric Botcazou  <ebotcazou@adacore.com>
16871         PR debug/104366
16872         * dwarf2out.cc (dwarf2out_finish): Empty base_types.
16873         (dwarf2out_early_finish): Likewise.
16875 2022-02-04  Eric Botcazou  <ebotcazou@adacore.com>
16877         PR tree-optimization/104356
16878         * match.pd (X / bool_range_Y is X): Add guard.
16879         (X / X is one): Likewise.
16880         (X / abs (X) is X < 0 ? -1 : 1): Likewise.
16881         (X / -X is -1): Likewise.
16882         (1 / X -> X == 1): Likewise.
16884 2022-02-04  Richard Biener  <rguenther@suse.de>
16886         PR tree-optimization/103641
16887         * tree-vect-patterns.cc (vect_synth_mult_by_constant):
16888         Pass the vector mode to choose_mult_variant.
16890 2022-02-04  Roger Sayle  <roger@nextmovesoftware.com>
16892         PR rtl-optimization/101885
16893         * combine.cc (try_combine): When splitting a parallel into two
16894         sequential sets, check not only that the first doesn't clobber
16895         the second but also that the second doesn't clobber the first.
16897 2022-02-04  Richard Biener  <rguenther@suse.de>
16899         PR middle-end/90348
16900         PR middle-end/104092
16901         * tree-core.h (clobber_kind): New enum.
16902         (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
16903         * tree.h (CLOBBER_KIND): Add.
16904         (build_clobber): Add clobber kind argument, defaulted to
16905         CLOBBER_UNDEF.
16906         * tree.cc (build_clobber): Likewise.
16907         * gimple.h (gimple_clobber_p): New overload with specified kind.
16908         * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
16909         CLOBBER_KIND.
16910         * tree-streamer-out.cc (streamer_write_tree_bitfields):
16911         Likewise.
16912         * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
16913         * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
16914         with CLOBBER_EOL.
16915         (gimplify_target_expr): Likewise.
16916         * tree-inline.cc (expand_call_inline): Likewise.
16917         * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
16918         * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
16919         CLOBBER_EOL clobbers as ending lifetime of storage.
16921 2022-02-04  Martin Sebor  <msebor@redhat.com>
16923         * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
16924         cleanup.
16926 2022-02-03  Martin Sebor  <msebor@redhat.com>
16928         PR middle-end/104260
16929         * passes.def (pass_warn_access): Adjust pass placement.
16931 2022-02-03  Uroš Bizjak  <ubizjak@gmail.com>
16933         PR target/104362
16934         * config/i386/i386.cc (find_drap_reg): For 32bit targets
16935         return DI_REG if function uses __builtin_eh_return.
16937 2022-02-03  Martin Sebor  <msebor@redhat.com>
16939         * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
16940         (pass_wrestrict::m_ptr_qry): New member.
16941         (wrestrict_walk): Rename...
16942         (pass_wrestrict::check_block): ...to this.
16943         (pass_wrestrict::execute): Set up and tear down pointer_query and
16944         ranger.
16945         (builtin_memref::builtin_memref): Change ctor argument.  Simplify.
16946         (builtin_access::builtin_access): Same.
16947         (builtin_access::m_ptr_qry): New member.
16948         (check_call): Rename...
16949         (pass_wrestrict::check_call): ...to this.
16950         (check_bounds_or_overlap): Change argument.
16951         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
16953 2022-02-03  Martin Sebor  <msebor@redhat.com>
16955         * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
16956         Define ctor.
16957         (array_bounds_checker::get_value_range): Use new member.
16958         (array_bounds_checker::check_mem_ref): Same.
16959         * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
16960         Outline ctor.
16961         (array_bounds_checker::m_ptr_query): New member.
16963 2022-02-03  Martin Sebor  <msebor@redhat.com>
16965         * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
16966         pointer_query cache.
16967         * pointer-query.cc (pointer_query::pointer_query): Remove cache
16968         argument.  Zero-initialize new cache member.
16969         (pointer_query::get_ref): Replace cache pointer with direct access.
16970         (pointer_query::put_ref): Same.
16971         (pointer_query::flush_cache): Same.
16972         (pointer_query::dump): Same.
16973         * pointer-query.h (class pointer_query): Remove cache argument from
16974         ctor.  Change cache pointer to cache subobject member.
16975         * tree-ssa-strlen.cc: Remove pointer_query cache.
16977 2022-02-03  Martin Sebor  <msebor@redhat.com>
16979         PR tree-optimization/104119
16980         * gimple-ssa-sprintf.cc (struct directive): Change argument type.
16981         (format_none): Same.
16982         (format_percent): Same.
16983         (format_integer): Same.
16984         (format_floating): Same.
16985         (get_string_length): Same.
16986         (format_character): Same.
16987         (format_string): Same.
16988         (format_plain): Same.
16989         (format_directive): Same.
16990         (compute_format_length): Same.
16991         (handle_printf_call): Same.
16992         * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same.   Call
16993         get_maxbound.
16994         (get_range_strlen_phi): Same.
16995         (get_maxbound): New function.
16996         (strlen_pass::get_len_or_size): Adjust to parameter change.
16997         * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
16999 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
17001         PR target/103686
17002         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
17003         test for !rs6000_fold_gimple.
17004         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
17005         * config/rs6000/rs6000.opt (mfold-gimple): Remove.
17007 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
17009         PR target/95082
17010         * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
17011         endianness for vclzlsbb and vctzlsbb.
17012         * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
17013         default pattern and indicate a different pattern will be used for
17014         big endian.
17015         (VCLZLSBB_V4SI): Likewise.
17016         (VCLZLSBB_V8HI): Likewise.
17017         (VCTZLSBB_V16QI): Likewise.
17018         (VCTZLSBB_V4SI): Likewise.
17019         (VCTZLSBB_V8HI): Likewise.
17021 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
17023         * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
17024         * config/rs6000/rs6000-builtin.cc: New file, containing code moved
17025         from other files.
17026         * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
17027         rs6000-builtin.cc.
17028         (cpu_supports_info): Likewise.
17029         (rs6000_type_string): Likewise.
17030         (altivec_expand_predicate_builtin): Likewise.
17031         (rs6000_htm_spr_icode): Likewise.
17032         (altivec_expand_vec_init_builtin): Likewise.
17033         (get_element_number): Likewise.
17034         (altivec_expand_vec_set_builtin): Likewise.
17035         (altivec_expand_vec_ext_builtin): Likewise.
17036         (rs6000_invalid_builtin): Likewise.
17037         (rs6000_fold_builtin): Likewise.
17038         (fold_build_vec_cmp): Likewise.
17039         (fold_compare_helper): Likewise.
17040         (map_to_integral_tree_type): Likewise.
17041         (fold_mergehl_helper): Likewise.
17042         (fold_mergeeo_helper): Likewise.
17043         (rs6000_builtin_valid_without_lhs): Likewise.
17044         (rs6000_builtin_is_supported): Likewise.
17045         (rs6000_gimple_fold_mma_builtin): Likewise.
17046         (rs6000_gimple_fold_builtin): Likewise.
17047         (rs6000_expand_ldst_mask): Likewise.
17048         (cpu_expand_builtin): Likewise.
17049         (elemrev_icode): Likewise.
17050         (ldv_expand_builtin): Likewise.
17051         (lxvrse_expand_builtin): Likewise.
17052         (lxvrze_expand_builtin): Likewise.
17053         (stv_expand_builtin): Likewise.
17054         (mma_expand_builtin): Likewise.
17055         (htm_spr_num): Likewise.
17056         (htm_expand_builtin): Likewise.
17057         (rs6000_expand_builtin): Likewise.
17058         (rs6000_vector_type): Likewise.
17059         (rs6000_init_builtins): Likewise.  Remove initialization of
17060         builtin_mode_to_type entries.
17061         (rs6000_builtin_decl): Move to rs6000-builtin.cc.
17062         * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
17063         external declaration.
17064         (rs6000_builtin_md_vectorized_function): Likewise.
17065         (rs6000_builtin_reciprocal): Likewise.
17066         (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
17067         (rs6000_builtin_types): Likewise.
17068         (builtin_mode_to_type): Remove.
17069         (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc.  Remove
17070         static qualifier.
17071         (rs6000_builtin_md_vectorized_function): Likewise.
17072         (rs6000_builtin_reciprocal): Likewise.
17073         * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
17074         * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
17076 2022-02-03  Richard Biener  <rguenther@suse.de>
17078         PR debug/104337
17079         * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
17080         together via DECL_ABSTRACT_ORIGIN.
17082 2022-02-03  Bill Schmidt  <wschmidt@linux.ibm.com>
17084         * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
17085         message for RES_BITS case.
17087 2022-02-03  Aldy Hernandez  <aldyh@redhat.com>
17089         * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
17091 2022-02-03  Jakub Jelinek  <jakub@redhat.com>
17093         * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
17094         mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
17096 2022-02-03  Aldy Hernandez  <aldyh@redhat.com>
17098         * cfganal.cc (verify_marked_backedges): New.
17099         * cfganal.h (verify_marked_backedges): New.
17100         * gimple-range-path.cc (path_range_query::path_range_query):
17101         Verify freshness of back edges.
17102         * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
17103         mark_dfs_back_edges.
17104         * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
17105         path_range_query construction after backedges have been
17106         updated.
17108 2022-02-03  Richard Sandiford  <richard.sandiford@arm.com>
17110         * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
17111         VALL to VALL_F16.
17113 2022-02-03  Richard Sandiford  <richard.sandiford@arm.com>
17115         * config/aarch64/iterators.md (VALL_F16MOV): Delete.
17116         * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
17117         of VALL_F16MOV.
17119 2022-02-03  Martin Liska  <mliska@suse.cz>
17121         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
17122         Change subject and object in the error message.
17123         * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
17124         Likewise.
17126 2022-02-03  Martin Liska  <mliska@suse.cz>
17128         * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
17129         Use the error message for i386 target.
17131 2022-02-03  Jakub Jelinek  <jakub@redhat.com>
17133         PR tree-optimization/104334
17134         * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
17135         and rh_range type to widest_int and subtract in widest_int.  Remove
17136         ov_rh, ov_lh and sign vars, always perform comparisons as signed
17137         and use >, < and == operators for it.
17139 2022-02-03  Martin Sebor  <msebor@redhat.com>
17141         * common.opt (-Wuse-after-free): Correct typos.
17143 2022-02-02  David Malcolm  <dmalcolm@redhat.com>
17145         PR analyzer/104270
17146         * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
17147         -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
17148         -ftrivial-auto-var-init= doesn't suppress warnings.
17150 2022-02-02  Martin Liska  <mliska@suse.cz>
17152         * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
17154 2022-02-02  Bernd Kuhls  <bernd.kuhls@t-online.de>
17156         PR target/94372
17157         * config/or1k/linux.h (CPP_SPEC): Define.
17159 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
17161         PR tree-optimization/102819
17162         PR tree-optimization/103169
17163         * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
17164         canonical order.
17166 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
17168         PR tree-optimization/102819
17169         PR tree-optimization/103169
17170         * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
17171         canonical order.
17172         * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
17174 2022-02-02  Tamar Christina  <tamar.christina@arm.com>
17176         PR tree-optimization/102819
17177         PR tree-optimization/103169
17178         * doc/md.texi: Update docs for cfms, cfma.
17179         * tree-data-ref.h (same_data_refs): Accept optional offset.
17180         * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
17181         patterns.
17182         (vect_normalize_conj_loc): Remove.
17183         (is_eq_or_top): Change to take two nodes.
17184         (enum _conj_status, compatible_complex_nodes_p,
17185         vect_validate_multiplication): New.
17186         (class complex_add_pattern, complex_add_pattern::matches,
17187         complex_add_pattern::recognize, class complex_mul_pattern,
17188         complex_mul_pattern::recognize, class complex_fms_pattern,
17189         complex_fms_pattern::recognize, class complex_operations_pattern,
17190         complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
17191         new cache.
17192         (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
17193         cache and use new validation code.
17194         * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
17195         vect_analyze_slp): Pass along cache.
17196         (compatible_calls_p): Expose.
17197         * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
17198         slp_compat_nodes_map_t): New.
17199         (class vect_pattern): Update signatures include new cache.
17201 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
17203         * config/cris/cris.cc (cris_preferred_reload_class): Reject
17204         "eliminated" registers and small-enough constants unless
17205         reloaded into a class that is a subset of GENERAL_REGS.
17206         * config/cris/cris.md (attribute "cpu_variant"): New.
17207         (attribute "enabled"): Conditionalize on a matching attribute
17208         cpu_variant, if specified.
17209         ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
17210         memory, add cpu-variant-enabled variants for "r" alternatives on
17211         the far side of the "x" alternatives, preferring the "x" ones
17212         only for variants where MOF is present (in addition to SRP).
17214 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
17216         * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
17217         extra cost for ALL_REGS.
17219 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
17221         * config/cris/constraints.md (define_register_constraint "b"): Now
17222         GENERAL_REGS.
17223         * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
17224         * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
17225         (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
17226         and SPEC_GENNONACR_REGS.
17227         * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
17228         ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
17230 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
17232         * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
17233         Conditionalize on (sub-)register operands or operand 1 being 0.
17235 2022-02-02  Hans-Peter Nilsson  <hp@axis.com>
17237         * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
17238         (MUL_BUG_ASM_DEFAULT): New macro.
17239         (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
17240         * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
17241         accordingly.
17243 2022-02-01  Eugene Rozenfeld  <erozen@microsoft.com>
17245         * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
17246         to 10 for AutoFDO.
17248 2022-02-01  Eugene Rozenfeld  <erozen@microsoft.com>
17250         * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
17252 2022-02-01  Andrew Pinski  <apinski@marvell.com>
17254         * doc/install.texi:
17256 2022-02-01  Ilya Leoshkevich  <iii@linux.ibm.com>
17258         * config/s390/s390.cc (s390_code_end): Do not switch back to
17259         code section.
17261 2022-02-01  Jakub Jelinek  <jakub@redhat.com>
17263         PR target/104323
17264         * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
17265         rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
17266         * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
17267         GTY((user)) for struct bifdata and struct ovlddata.  Instead add
17268         GTY((skip(""))) to members with pointer and enum types that don't need
17269         to be tracked.  Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
17270         declarations.  Don't emit gt_ggc_mx and gt_pch_nx declarations.
17271         (write_extern_fntype, write_fntype): Remove.
17272         (write_fntype_init): Emit the fntype vars as automatic vars instead
17273         of file scope ones.
17274         (write_header_file): Don't iterate with write_extern_fntype.
17275         (write_init_file): Don't iterate with write_fntype.  Don't emit
17276         gt_ggc_mx and gt_pch_nx definitions.
17278 2022-02-01  Jason Merrill  <jason@redhat.com>
17280         * tree.h (struct tree_vec_map_cache_hasher): Move from...
17281         * tree.cc (struct tree_vec_map_cache_hasher): ...here.
17283 2022-02-01  Tom de Vries  <tdevries@suse.de>
17285         * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
17286         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
17287         UNSPECV_UNIFORM_WARP_CHECK.
17288         (define_insn "nvptx_uniform_warp_check"): New define_insn.
17290 2022-02-01  Tom de Vries  <tdevries@suse.de>
17292         * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
17293         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
17294         UNSPECV_WARPSYNC.
17295         (define_insn "nvptx_warpsync"): New define_insn.
17297 2022-02-01  Tom de Vries  <tdevries@suse.de>
17299         * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
17301 2022-02-01  Tom de Vries  <tdevries@suse.de>
17303         * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
17304         * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
17305         * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
17306         insn for TARGET_PTX_6_0.
17308 2022-02-01  Tom de Vries  <tdevries@suse.de>
17310         PR target/100428
17311         * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
17312         insn.
17314 2022-02-01  Tom de Vries  <tdevries@suse.de>
17316         * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
17317         (define_insn "atomic_exchange<mode>")
17318         (define_insn "atomic_fetch_add<mode>")
17319         (define_insn "atomic_fetch_addsf")
17320         (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
17321         if memory operands is frame-relative.
17323 2022-02-01  Tom de Vries  <tdevries@suse.de>
17325         * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
17326         NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
17327         (VOID): New macro.
17328         (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
17329         (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
17330         NVPTX_BUILTIN_MEMBAR_CTA.
17331         (nvptx_lockfull_update): Add level parameter.  Emit barriers.
17332         (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
17333         nvptx_lockfull_update.
17334         * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
17335         UNSPECV_MEMBAR_GL.
17336         (define_expand "nvptx_membar_gl"): New expand.
17337         (define_insn "*nvptx_membar_gl"): New insn.
17339 2022-02-01  Martin Liska  <mliska@suse.cz>
17341         * doc/install.texi: Remove option for GCC < 4.8.
17343 2022-02-01  Jakub Jelinek  <jakub@redhat.com>
17345         PR middle-end/104307
17346         * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
17347         stmts to uses vector, just set vec_cond_expr_only to false for
17348         non-VEC_COND_EXPRs instead of pushing them into uses.  Treat
17349         VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
17350         like non-VEC_COND_EXPRs.
17352 2022-02-01  Bill Schmidt  <wschmidt@linux.ibm.com>
17354         * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
17355         (VEC_BLENDV): Likewise.
17356         (VEC_BPERM): Likewise.
17357         (VEC_CFUGE): Likewise.
17358         (VEC_CIPHER_BE): Likewise.
17359         (VEC_CIPHERLAST_BE): Likewise.
17360         (VEC_CLRL): Likewise.
17361         (VEC_CLRR): Likewise.
17362         (VEC_CMPNEZ): Likewise.
17363         (VEC_CNTLZ): Likewise.
17364         (VEC_CNTLZM): Likewise.
17365         (VEC_CNTTZM): Likewise.
17366         (VEC_CNTLZ_LSBB): Likewise.
17367         (VEC_CNTM): Likewise.
17368         (VEC_CNTTZ): Likewise.
17369         (VEC_CNTTZ_LSBB): Likewise.
17370         (VEC_CONVERT_4F32_8F16): Likewise.
17371         (VEC_DIV): Likewise.
17372         (VEC_DIVE): Likewise.
17373         (VEC_EQV): Likewise.
17374         (VEC_EXPANDM): Likewise.
17375         (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
17376         (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
17377         (VEC_EXTRACTH): Likewise.
17378         (VEC_EXTRACTL): Likewise.
17379         (VEC_EXTRACTM): Likewise.
17380         (VEC_EXTRACT4B): Likewise.
17381         (VEC_EXTULX): Likewise.
17382         (VEC_EXTURX): Likewise.
17383         (VEC_FIRSTMATCHINDEX): Likewise.
17384         (VEC_FIRSTMACHOREOSINDEX): Likewise.
17385         (VEC_FIRSTMISMATCHINDEX): Likewise.
17386         (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
17387         (VEC_GB): Likewise.
17388         (VEC_GENBM): Likewise.
17389         (VEC_GENHM): Likewise.
17390         (VEC_GENWM): Likewise.
17391         (VEC_GENDM): Likewise.
17392         (VEC_GENQM): Likewise.
17393         (VEC_GENPCVM): Likewise.
17394         (VEC_GNB): Likewise.
17395         (VEC_INSERTH): Likewise.
17396         (VEC_INSERTL): Likewise.
17397         (VEC_INSERT4B): Likewise.
17398         (VEC_LXVL): Likewise.
17399         (VEC_MERGEE): Likewise.
17400         (VEC_MERGEO): Likewise.
17401         (VEC_MOD): Likewise.
17402         (VEC_MSUB): Likewise.
17403         (VEC_MULH): Likewise.
17404         (VEC_NAND): Likewise.
17405         (VEC_NCIPHER_BE): Likewise.
17406         (VEC_NCIPHERLAST_BE): Likewise.
17407         (VEC_NEARBYINT): Likewise.
17408         (VEC_NMADD): Likewise.
17409         (VEC_ORC): Likewise.
17410         (VEC_PDEP): Likewise.
17411         (VEC_PERMX): Likewise.
17412         (VEC_PEXT): Likewise.
17413         (VEC_POPCNT): Likewise.
17414         (VEC_PARITY_LSBB): Likewise.
17415         (VEC_REPLACE_ELT): Likewise.
17416         (VEC_REPLACE_UN): Likewise.
17417         (VEC_REVB): Likewise.
17418         (VEC_RINT): Likewise.
17419         (VEC_RLMI): Likewise.
17420         (VEC_RLNM): Likewise.
17421         (VEC_SBOX_BE): Likewise.
17422         (VEC_SIGNEXTI): Likewise.
17423         (VEC_SIGNEXTLL): Likewise.
17424         (VEC_SIGNEXTQ): Likewise.
17425         (VEC_SLDB): Likewise.
17426         (VEC_SLV): Likewise.
17427         (VEC_SPLATI): Likewise.
17428         (VEC_SPLATID): Likewise.
17429         (VEC_SPLATI_INS): Likewise.
17430         (VEC_SQRT): Likewise.
17431         (VEC_SRDB): Likewise.
17432         (VEC_SRV): Likewise.
17433         (VEC_STRIL): Likewise.
17434         (VEC_STRIL_P): Likewise.
17435         (VEC_STRIR): Likewise.
17436         (VEC_STRIR_P): Likewise.
17437         (VEC_STXVL): Likewise.
17438         (VEC_TERNARYLOGIC): Likewise.
17439         (VEC_TEST_LSBB_ALL_ONES): Likewise.
17440         (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
17441         (VEC_VEE): Likewise.
17442         (VEC_VES): Likewise.
17443         (VEC_VIE): Likewise.
17444         (VEC_VPRTYB): Likewise.
17445         (VEC_VSCEEQ): Likewise.
17446         (VEC_VSCEGT): Likewise.
17447         (VEC_VSCELT): Likewise.
17448         (VEC_VSCEUO): Likewise.
17449         (VEC_VSEE): Likewise.
17450         (VEC_VSES): Likewise.
17451         (VEC_VSIE): Likewise.
17452         (VEC_VSTDC): Likewise.
17453         (VEC_VSTDCN): Likewise.
17454         (VEC_VTDC): Likewise.
17455         (VEC_XL): Likewise.
17456         (VEC_XL_BE): Likewise.
17457         (VEC_XL_LEN_R): Likewise.
17458         (VEC_XL_SEXT): Likewise.
17459         (VEC_XL_ZEXT): Likewise.
17460         (VEC_XST): Likewise.
17461         (VEC_XST_BE): Likewise.
17462         (VEC_XST_LEN_R): Likewise.
17463         (VEC_XST_TRUNC): Likewise.
17464         (VEC_XXPERMDI): Likewise.
17465         (VEC_XXSLDWI): Likewise.
17466         (VEC_TSTSFI_EQ_DD): Likewise.
17467         (VEC_TSTSFI_EQ_TD): Likewise.
17468         (VEC_TSTSFI_GT_DD): Likewise.
17469         (VEC_TSTSFI_GT_TD): Likewise.
17470         (VEC_TSTSFI_LT_DD): Likewise.
17471         (VEC_TSTSFI_LT_TD): Likewise.
17472         (VEC_TSTSFI_OV_DD): Likewise.
17473         (VEC_TSTSFI_OV_TD): Likewise.
17474         (VEC_VADDCUQ): Likewise.
17475         (VEC_VADDECUQ): Likewise.
17476         (VEC_VADDEUQM): Likewise.
17477         (VEC_VADDUDM): Likewise.
17478         (VEC_VADDUQM): Likewise.
17479         (VEC_VBPERMQ): Likewise.
17480         (VEC_VCLZB): Likewise.
17481         (VEC_VCLZD): Likewise.
17482         (VEC_VCLZH): Likewise.
17483         (VEC_VCLZW): Likewise.
17484         (VEC_VCTZB): Likewise.
17485         (VEC_VCTZD): Likewise.
17486         (VEC_VCTZH): Likewise.
17487         (VEC_VCTZW): Likewise.
17488         (VEC_VEEDP): Likewise.
17489         (VEC_VEESP): Likewise.
17490         (VEC_VESDP): Likewise.
17491         (VEC_VESSP): Likewise.
17492         (VEC_VIEDP): Likewise.
17493         (VEC_VIESP): Likewise.
17494         (VEC_VPKSDSS): Likewise.
17495         (VEC_VPKSDUS): Likewise.
17496         (VEC_VPKUDUM): Likewise.
17497         (VEC_VPKUDUS): Likewise.
17498         (VEC_VPOPCNT): Likewise.
17499         (VEC_VPOPCNTB): Likewise.
17500         (VEC_VPOPCNTD): Likewise.
17501         (VEC_VPOPCNTH): Likewise.
17502         (VEC_VPOPCNTW): Likewise.
17503         (VEC_VPRTYBD): Likewise.
17504         (VEC_VPRTYBQ): Likewise.
17505         (VEC_VPRTYBW): Likewise.
17506         (VEC_VRLD): Likewise.
17507         (VEC_VSLD): Likewise.
17508         (VEC_VSRAD): Likewise.
17509         (VEC_VSRD): Likewise.
17510         (VEC_VSTDCDP): Likewise.
17511         (VEC_VSTDCNDP): Likewise.
17512         (VEC_VSTDCNQP): Likewise.
17513         (VEC_VSTDCNSP): Likewise.
17514         (VEC_VSTDCQP): Likewise.
17515         (VEC_VSTDCSP): Likewise.
17516         (VEC_VSUBECUQ): Likewise.
17517         (VEC_VSUBEUQM): Likewise.
17518         (VEC_VSUBUDM): Likewise.
17519         (VEC_VSUBUQM): Likewise.
17520         (VEC_VTDCDP): Likewise.
17521         (VEC_VTDCSP): Likewise.
17522         (VEC_VUPKHSW): Likewise.
17523         (VEC_VUPKLSW): Likewise.
17525 2022-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
17527         PR rtl-optimization/101260
17528         * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
17529         copy_regno.
17531 2022-02-01  Xi Ruoyao  <xry111@mengyan1223.wang>
17533         PR middle-end/95115
17534         * fold-const.cc (const_binop): Do not fold NaN result from
17535           non-NaN operands.
17537 2022-02-01  Tom de Vries  <tdevries@suse.de>
17539         * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
17540         -ftree-loop-distribute-patterns.
17541         (loop_distribution::execute): Don't call transform_reduction_loop for
17542         -fno-tree-loop-distribute-patterns.
17544 2022-01-31  Andrew Pinski  <apinski@marvell.com>
17546         * fold-const.h (operand_compare::operand_equal_p):
17547         Fix comment about OEP_* flags.
17549 2022-01-31  Jakub Jelinek  <jakub@redhat.com>
17551         PR target/104298
17552         * config/rs6000/aix.h (OPTION_GLIBC): Remove.
17553         * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
17554         * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
17555         if not already defined.
17557 2022-01-31  Martin Sebor  <msebor@redhat.com>
17559         PR middle-end/104232
17560         * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
17561         Handle PHIs.  Add a synonymous overload.
17562         (pass_waccess::check_pointer_uses): Call pointers_related_p.
17564 2022-01-31  Richard Biener  <rguenther@suse.de>
17566         PR tree-optimization/100499
17567         * fold-const.cc (multiple_of_p): Pass the correct type of
17568         the expression to the recursive invocation of multiple_of_p
17569         for conversions and use CASE_CONVERT.
17571 2022-01-31  Eric Botcazou  <ebotcazou@adacore.com>
17573         PR target/104189
17574         * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
17576 2022-01-31  Richard Biener  <rguenther@suse.de>
17578         PR tree-optimization/100499
17579         * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
17580         on poly-ints instead of multiple_of_p.
17581         * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
17582         (non_rewritable_mem_ref_base): Likewise.
17583         (non_rewritable_lvalue_p): Likewise.
17584         (execute_update_addresses_taken): Likewise.
17586 2022-01-29  Jakub Jelinek  <jakub@redhat.com>
17587             Andrew Pinski  <apinski@marvell.com>
17589         PR tree-optimization/104279
17590         PR tree-optimization/104280
17591         PR tree-optimization/104281
17592         * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
17593         boolean_type_node and convert to type.  Formatting fixes.
17595 2022-01-28  Yoshinori Sato  <yo-satoh@sios.com>
17597         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
17599 2022-01-28  Navid Rahimi  <navidrahimi@microsoft.com>
17601         PR tree-optimization/103514
17602         * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
17603         (a & b) == (a ^ b) -> !(a | b): New optimization.
17605 2022-01-28  Marek Polacek  <polacek@redhat.com>
17607         * doc/invoke.texi: Update -Wbidi-chars documentation.
17609 2022-01-28  Iain Sandoe  <iain@sandoe.co.uk>
17611         * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
17613 2022-01-28  Zhao Wei Liew  <zhaoweiliew@gmail.com>
17615         PR tree-optimization/95424
17616         * match.pd: Simplify 1 / X where X is an integer.
17618 2022-01-28  Jakub Jelinek  <jakub@redhat.com>
17620         PR tree-optimization/104263
17621         * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
17622         cfun->can_throw_non_call_exceptions && cfun->eh test whether
17623         last non-debug stmt in the bb is store_valid_for_store_merging_p
17624         rather than last stmt.
17626 2022-01-28  Martin Liska  <mliska@suse.cz>
17628         * diagnostic.cc (diagnostic_action_after_output): Remove extra
17629         newline.
17631 2022-01-28  Martin Liska  <mliska@suse.cz>
17633         * config/rs6000/host-darwin.cc (segv_crash_handler):
17634         Do not use leading capital letter.
17635         (segv_handler): Likewise.
17636         * ipa-sra.cc (verify_splitting_accesses): Likewise.
17637         * varasm.cc (get_section): Likewise.
17639 2022-01-28  Richard Biener  <rguenther@suse.de>
17641         PR tree-optimization/104267
17642         * tree-vect-stmts.cc (vectorizable_call): Properly use the
17643         per-argument determined vector type for externals and
17644         invariants.
17646 2022-01-28  Richard Biener  <rguenther@suse.de>
17648         PR tree-optimization/104263
17649         * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
17650         Purge edges also when !cfun->has_nonlocal_label
17651         and !cfun->calls_setjmp.
17653 2022-01-28  Maciej W. Rozycki  <macro@embecosm.com>
17655         * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
17656         attributes.
17658 2022-01-28  Jakub Jelinek  <jakub@redhat.com>
17660         PR lto/104237
17661         * cfgrtl.cc (loc_equal): New function.
17662         (unique_locus_on_edge_between_p): Use it.
17664 2022-01-28  Richard Biener  <rguenther@suse.de>
17666         * cfganal.h (mark_dfs_back_edges): Provide API with struct
17667         function argument.
17668         * cfganal.cc (mark_dfs_back_edges): Take a struct function
17669         to work on, add a wrapper passing cfun.
17670         * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
17671         uses with fun which is already passed.
17672         (draw_cfg_edges): Likewise.
17673         (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
17674         for fun != cfun.
17676 2022-01-27  Patrick Palka  <ppalka@redhat.com>
17678         PR c++/99895
17679         * tree.cc (build_call_vec): Add const to second parameter.
17680         * tree.h (build_call_vec): Likewise.
17682 2022-01-27  Martin Liska  <mliska@suse.cz>
17684         PR web/104254
17685         * diagnostic.cc (diagnostic_initialize):
17686         Initialize report_bug flag.
17687         (diagnostic_action_after_output):
17688         Explain that -freport-bug option can be used for pre-processed
17689         file creation.  Make the message shorter.
17690         (error_recursion): Rename Internal to internal.
17691         * diagnostic.h (struct diagnostic_context): New field.
17692         * opts.cc (common_handle_option): Init the field here.
17694 2022-01-27  Kewen Lin  <linkw@linux.ibm.com>
17696         PR target/103702
17697         * config/rs6000/rs6000.cc
17698         (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
17699         assertion with early return.
17701 2022-01-27  Chung-Lin Tang  <cltang@codesourcery.com>
17703         PR middle-end/103642
17704         * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
17705         for non-pointer or non-reference-to-pointer cases.
17707 2022-01-27  Jakub Jelinek  <jakub@redhat.com>
17709         PR tree-optimization/104196
17710         * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
17711         * gimple-fold.cc (rewrite_to_defined_overflow): Likewise.  If true,
17712         return NULL and emit needed stmts before and after stmt.
17713         * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
17714         pick as operand_entry that will hold the merged test the one feeding
17715         earliest condition, ensure that by swapping range->idx with some
17716         other range's idx if needed.  If seq is non-NULL, don't actually swap
17717         it but instead rewrite stmts with undefined overflow in between
17718         the two locations.
17719         (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
17720         corresponding condition even if they have non-NULL ops[]->op.
17721         Formatting fix.
17723 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
17725         PR target/104239
17726         * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
17727         asm.
17728         * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
17729         before for loop instead of for init clause.
17730         * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
17732 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
17734         PR target/104239
17735         * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
17736         _X86INTRIN_H_INCLUDED and adjust #error wording.
17737         * config/rs6000/bmi2intrin.h: Likewise.
17739 2022-01-26  Jakub Jelinek  <jakub@redhat.com>
17741         PR debug/104194
17742         * dwarf2out.cc (long_double_as_float128): New function.
17743         (modified_type_die): For powerpc64le IEEE 754 quad long double
17744         and complex long double emit those as DW_TAG_typedef to
17745         _Float128 or complex _Float128 base type.
17747 2022-01-26  Marek Polacek  <polacek@redhat.com>
17749         PR target/104213
17750         * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
17751         warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
17753 2022-01-26  Martin Liska  <mliska@suse.cz>
17755         * ipa-modref-tree.cc (modref_access_node::update):
17756         Remove "--param param=foo" with "--param foo".
17757         (modref_access_node::insert): Likewise.
17758         (modref_access_node::insert_kill): Likewise.
17759         * ipa-modref-tree.h (struct modref_ref_node): Likewise.
17760         (struct modref_base_node): Likewise.
17761         (struct modref_tree): Likewise.
17763 2022-01-26  Raoni Fassina Firmino  <raoni@linux.ibm.com>
17765         PR target/94193
17766         * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
17767         predicate check.
17769 2022-01-25  Martin Sebor  <msebor@redhat.com>
17771         PR tree-optimization/104203
17772         * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
17773         TV_WARN_ACCESS.
17774         * pointer-query.cc (access_ref::merge_ref): Change return type.
17775         Convert failure to a conservative success.
17776         (access_ref::get_ref): Adjust to the change above.  Short-circuit
17777         PHI evaluation after first failure turned into conservative success.
17778         * pointer-query.h (access_ref::merge_ref): Change return type.
17779         * timevar.def (TV_WARN_ACCESS): New timer variable.
17781 2022-01-25  David Edelsohn  <dje.gcc@gmail.com>
17783         * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
17785 2022-01-25  Richard Biener  <rguenther@suse.de>
17787         PR tree-optimization/104214
17788         * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
17789         stronger guarantees for relational pointer compares when
17790         rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
17791         BASE0 + STEP0 - STEP1 cmp BASE1.
17793 2022-01-25  Jakub Jelinek  <jakub@redhat.com>
17795         PR target/104172
17796         * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
17797         declare.
17798         * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
17799         ieee128_mangling_gcc_8_1): Remove.
17800         (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
17801         (rs6000_mangle_type): Return "u9__ieee128" instead of
17802         ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
17803         (rs6000_globalize_decl_name): Remove.
17804         * config/rs6000/rs6000-call.cc (init_cumulative_args,
17805         rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
17807 2022-01-24  Martin Sebor  <msebor@redhat.com>
17809         * pointer-query.cc (pointer_query::dump): Remove duplicate
17810         block.
17812 2022-01-24  Marek Polacek  <polacek@redhat.com>
17814         PR preprocessor/104030
17815         * doc/invoke.texi: Update documentation for -Wbidi-chars.
17817 2022-01-24  Raoni Fassina Firmino  <raoni@linux.ibm.com>
17819         PR target/94193
17820         * builtins.cc (expand_builtin_fegetround): New function.
17821         (expand_builtin_feclear_feraise_except): New function.
17822         (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
17823         BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
17824         * config/rs6000/rs6000.md (fegetroundsi): New pattern.
17825         (feclearexceptsi): New Pattern.
17826         (feraiseexceptsi): New Pattern.
17827         * doc/extend.texi: Add a new introductory paragraph about the
17828         new builtins.
17829         * doc/md.texi: (fegetround@var{m}): Document new optab.
17830         (feclearexcept@var{m}): Document new optab.
17831         (feraiseexcept@var{m}): Document new optab.
17832         * optabs.def (fegetround_optab): New optab.
17833         (feclearexcept_optab): New optab.
17834         (feraiseexcept_optab): New optab.
17836 2022-01-24  Richard Biener  <rguenther@suse.de>
17837             Jiufu Guo  <guojiufu@linux.ibm.com>
17839         PR tree-optimization/100740
17840         PR tree-optimization/101508
17841         PR tree-optimization/101972
17842         PR tree-optimization/102131
17843         * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
17844         constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
17845         BASE0 + STEP0 - STEP1 cmp BASE1 transform.
17847 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
17849         PR sanitizer/104158
17850         * opt-functions.awk (var_set): Handle EnumBitSet property.
17851         * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
17852         specified.
17853         * opts.h (enum cl_enum_var_value): New type.
17854         * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
17855         Handle CLEV_BITSET.
17856         (cmdline_handle_error): Handle CLEV_BITSET.
17857         * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
17858         * doc/options.texi (EnumBitSet): Document.
17859         * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
17860         EnumSet.
17861         (trace-pc, trace-cmp): Drop Set properties.
17863 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
17865         PR sanitizer/104158
17866         * common.opt (flag_sanitize_coverage): Remove Variable entry.
17867         (fsanitize-coverage=): Remove RejectNegative property, add
17868         Var(flag_sanitize_coverage) and EnumSet properties.
17869         (trace-pc): Add Set(1) property.
17870         (trace-cmp): Add Set(2) property.
17871         * opts.cc (common_handle_option): Don't handle
17872         OPT_fsanitize_coverage_.
17874 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
17876         PR sanitizer/104158
17877         * opt-functions.awk (var_set): Handle EnumSet property.
17878         * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
17879         specified.
17880         * opt-read.awk: Handle Set property.
17881         * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
17882         (struct cl_decoded_option): Mention enum in value description.
17883         Add mask member.
17884         (set_option): Add mask argument defaulted to 0.
17885         * opts.cc (test_enum_sets): New function.
17886         (opts_cc_tests): Call it.
17887         * opts-common.cc (enum_arg_to_value): Change return argument
17888         from bool to int, on success return index into the cl_enum_arg
17889         array, on failure -1.  Add len argument, if non-0, use strncmp
17890         instead of strcmp.
17891         (opt_enum_arg_to_value): Adjust caller.
17892         (decode_cmdline_option): Handle EnumSet represented as
17893         CLVC_ENUM with non-zero var_value.  Initialize decoded->mask.
17894         (decode_cmdline_options_to_array): CLear opt_array[0].mask.
17895         (handle_option): Pass decoded->mask to set_options last argument.
17896         (generate_option): Clear decoded->mask.
17897         (generate_option_input_file): Likewise.
17898         (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
17899         (set_option): Add mask argument, use it for CLVC_ENUM.
17900         (control_warning_option): Adjust enum_arg_to_value caller.
17901         * doc/options.texi: Document Set and EnumSet properties.
17903 2022-01-24  Jakub Jelinek  <jakub@redhat.com>
17905         PR bootstrap/104170
17906         * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17907         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17908         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17909         using OPTION_*_P macros.
17910         * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17911         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17912         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17913         using OPTION_*_P macros.
17914         * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17915         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17916         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17917         using OPTION_*_P macros.
17918         * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
17919         OPTION_BIONIC_P, OPTION_MUSL_P): Define.
17920         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
17921         using OPTION_*_P macros.
17922         * config/fuchsia.h (OPTION_MUSL_P): Redefine.
17923         * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
17924         * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
17925         ATTRIBUTE_UNUSED to opts parameter.  If OPTION_GLIBC_P is defined, use
17926         OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
17927         * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
17928         OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
17929         otherwise assume if (true).
17931 2022-01-24  Kito Cheng  <kito.cheng@sifive.com>
17933         * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
17934         Skip zicsr and zifencei if I-ext is 2.0.
17936 2022-01-24  Jia-Wei Chen  <jiawei@iscas.ac.cn>
17938         * config.gcc: Modify default isa_spec version.
17940 2022-01-24  Jiufu Guo  <guojiufu@linux.ibm.com>
17942         PR tree-optimization/102087
17943         * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
17944         Correct PLUS result type.
17946 2022-01-24  H.J. Lu  <hjl.tools@gmail.com>
17948         PR target/104188
17949         * config/i386/predicates.md (bcst_mem_operand): Also check mode
17950         of memory broadcast.
17952 2022-01-23  Andrew Pinski  <apinski@marvell.com>
17954         PR target/64821
17955         * config/aarch64/aarch64-builtins.cc
17956         (aarch64_general_gimple_fold_builtin): Handle
17957         __builtin_aarch64_sqrt* and simplify into SQRT internal
17958         function.
17960 2022-01-22  Jakub Jelinek  <jakub@redhat.com>
17962         PR other/104176
17963         * opts-global.cc (handle_common_deferred_options): Quote
17964         --enable-plugin in diagnostics to avoid -Werror=format-diag.
17966 2022-01-21  Michael Meissner  <meissner@the-meissners.org>
17968         PR target/104136
17969         * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
17970         * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
17971         * config/rs6000/rs6000.md (prefixed attribute): Delete section
17972         that sets the prefixed attribute for xxspltiw, xxspltidp, and
17973         xxsplti32dx instructions.
17974         (movsf_hardfloat): Explicitly set the prefixed attribute
17975         when xxspltiw and xxspltidp instructions are generated.
17976         (mov<mode>_hardfloat32): Likewise.
17977         (mov<mode>_hardfloat64): Likewise.
17978         * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
17979         prefixed attribute for xxspltiw and xxspltidp instructions.
17980         (vsx_mov<mode>_32bit): Likewise.
17982 2022-01-21  H.J. Lu  <hjl.tools@gmail.com>
17984         PR bootstrap/104170
17985         * common/config/i386/i386-common.cc (ix86_supports_split_stack):
17986         Return true only on glibc.
17987         * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
17988         Revert commit c163647ffbc.
17989         * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
17991 2022-01-21  Sören Tempel  <soeren@soeren-tempel.net>
17993         * common/config/s390/s390-common.cc (s390_supports_split_stack):
17994         Only support split-stack on glibc targets.
17995         * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
17996         * config/i386/gnu.h (defined): Ditto.
17998 2022-01-21  Bill Schmidt  <wschmidt@linux.ibm.com>
18000         * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
18001         vector float and vector double.
18003 2022-01-21  Bill Seurer  <seurer@gcc.gnu.org>
18005         * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
18006         Fix mention of ifunc in string.
18008 2022-01-21  Roger Sayle  <roger@nextmovesoftware.com>
18010         PR middle-end/104140
18011         * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
18012         operands of the widening multiplication are either both signed or
18013         both unsigned, and abort the conversion if mismatched.
18014         * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
18015         (MULT_HIGHPART_EXPR): Clarify that operands must have the same
18016         signedness.
18017         * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
18018         integer types with the same precision and signedness.
18019         (WIDEN_MULT_EXPR): Document that operands must have integer types
18020         with the same precision, but possibly differing signedness.
18021         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
18022         riscv_current_subset_list returning a NULL pointer (empty list).
18024 2022-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>
18026         PR target/103676
18027         * ira.h (struct target_ira): Add member
18028         x_ira_exclude_class_mode_regs.
18029         (ira_exclude_class_mode_regs): New macro.
18030         * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
18031         move from here ...
18032         * lra-int.h: ... to here.
18033         (lra_create_new_reg_with_unique_value): Add arg
18034         exclude_start_hard_regs.
18035         (class lra_reg): Add member exclude_start_hard_regs.
18036         * lra-assigns.cc (find_hard_regno_for_1): Setup
18037         impossible_start_hard_regs from exclude_start_hard_regs.
18038         * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
18039         it lra_create_new_reg[_with_unique_value].
18040         (match_reload): Ditto.
18041         (check_and_process_move): Pass NULL
18042         exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
18043         (goal_alt_exclude_start_hard_regs): New static variable.
18044         (process_addr_reg, simplify_operand_subreg): Pass NULL
18045         exclude_start_hard_regs to lra_create_new_reg_with_unique_value
18046         and get_reload_reg.
18047         (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
18048         Use this_alternative_exclude_start_hard_regs additionally to find
18049         winning operand alternative.
18050         (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
18051         exclude_start_hard_regs to lra_create_new_reg.
18052         (process_address_1, emit_inc): Ditto.
18053         (curr_insn_transform): Pass exclude_start_hard_regs value to
18054         lra_create_new_reg, get_reload_reg, match_reload.
18055         (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
18056         to lra_create_new_reg.
18057         (process_invariant_for_inheritance): Ditto.
18058         * lra-remat.cc (update_scratch_ops): Ditto.
18059         * lra.cc (lra_create_new_reg_with_unique_value): Add arg
18060         exclude_start_hard_regs.  Setup the corresponding member of
18061         lra reg info.
18062         (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
18063         to lra_create_new_reg_with_unique_value.
18064         (initialize_lra_reg_info_element): Initialize member
18065         exclude_start_hard_regs.
18066         (get_scratch_reg): Pass NULL to lra_create_new_reg.
18067         * ira.cc (setup_prohibited_class_mode_regs): Rename to
18068         setup_prohibited_and_exclude_class_mode_regs and calculate
18069         ira_exclude_class_mode_regs.
18071 2022-01-21  Martin Liska  <mliska@suse.cz>
18073         * configure.ac: Detect ld_is_mold and use it for
18074         comdat_group=yes and gcc_cv_ld_hidden=yes.
18075         * configure: Regenerate.
18077 2022-01-21  Richard Biener  <rguenther@suse.de>
18079         PR tree-optimization/100089
18080         * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
18081         of if-converted loops with unvectorized COND_EXPRs for
18082         all but the unlimited cost models.
18084 2022-01-21  Ard Biesheuvel  <ardb@kernel.org>
18086         * config/arm/arm-opts.h (enum stack_protector_guard): New.
18087         * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
18088         New.
18089         * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
18090         (arm_option_override_internal): Handle and put in error checks.
18091         for stack protector guard options.
18092         (arm_option_reconfigure_globals): Likewise.
18093         (arm_stack_protect_tls_canary_mem): New.
18094         (arm_stack_protect_guard): New.
18095         * config/arm/arm.md (stack_protect_set): New.
18096         (stack_protect_set_tls): Likewise.
18097         (stack_protect_test): Likewise.
18098         (stack_protect_test_tls): Likewise.
18099         (reload_tp_hard): Likewise.
18100         * config/arm/arm.opt (-mstack-protector-guard): New
18101         (-mstack-protector-guard-offset): New.
18102         * doc/invoke.texi: Document new options.
18104 2022-01-21  Richard Biener  <rguenther@suse.de>
18106         PR tree-optimization/104156
18107         * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
18108         Collect and reset debug stmts with out-of-loop uses when
18109         hoisting guards.
18110         (find_loop_guard): Adjust.
18111         (empty_bb_without_guard_p): Likewise.  Ignore debug stmts.
18112         (used_outside_loop_p): Push debug uses to a vector of
18113         debug stmts to reset.
18114         (hoist_guard): Adjust -fopt-info category.
18116 2022-01-21  Richard Biener  <rguenther@suse.de>
18118         PR tree-optimization/104152
18119         * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
18120         can_duplicate_and_interleave_p check.
18122 2022-01-21  Jakub Jelinek  <jakub@redhat.com>
18124         * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
18125         Avoid passing var to warning_at when the format string doesn't
18126         refer to it.
18128 2022-01-21  Aldy Hernandez  <aldyh@redhat.com>
18130         PR tree-optimization/103721
18131         * gimple-range-path.cc
18132         (path_range_query::relations_may_be_invalidated): New.
18133         (path_range_query::compute_ranges_in_block): Reset relations if
18134         they may be invalidated.
18135         (path_range_query::maybe_register_phi_relation): Exit if relations
18136         may be invalidated on incoming edge.
18137         (path_range_query::compute_phi_relations): Pass incoming PHI edge
18138         to maybe_register_phi_relation.
18139         * gimple-range-path.h (relations_may_be_invalidated): New.
18140         (maybe_register_phi_relation): Pass edge instead of tree.
18141         * tree-ssa-threadbackward.cc (back_threader::back_threader):
18142         Mark DFS edges.
18143         * value-relation.cc (path_oracle::path_oracle): Call
18144         mark_dfs_back_edges.
18145         (path_oracle::register_relation): Add SSA names to m_registered
18146         bitmap.
18147         (path_oracle::reset_path): Clear m_registered bitmap.
18148         * value-relation.h (path_oracle::set_root_oracle): New.
18150 2022-01-21  Jakub Jelinek  <jakub@redhat.com>
18152         PR rtl-optimization/102478
18153         * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
18154         force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
18155         would be needed.
18157 2022-01-20  Richard Biener  <rguenther@suse.de>
18159         PR middle-end/100786
18160         * gimple-fold.cc (get_symbol_constant_value): Only return
18161         values of compatible type to the symbol.
18163 2022-01-20  Andrew MacLeod  <amacleod@redhat.com>
18165         * value-relation.cc (relation_oracle::valid_equivs): Query and add
18166         if valid members of a set.
18167         (equiv_oracle::register_equiv): Call valid_equivs rather than
18168         bitmap direct operations.
18169         (path_oracle::register_equiv): Ditto.
18170         * value-relation.h (relation_oracle::valid_equivs): New prototype.
18172 2022-01-20  Richard Biener  <rguenther@suse.de>
18174         PR target/100784
18175         * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
18176         LHS before folding __builtin_ia32_shufpd and friends.
18178 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
18180         * config/arm/crypto.md (aes_op_protect): Allow moves from core
18181         registers and from memory.
18182         (aes_op_protect_misalign_load): New pattern.
18183         (aes_op_protect_neon_vld1v16qi): New pattern.
18185 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
18187         * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
18188         New pattern.
18189         (aarch32_crypto_aese_fused_protected): Likewise.
18190         (aarch32_crypto_aesd_fused_protected): Likewise.
18192 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
18194         * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
18195         to define_expand.  Add mitigation for the Cortex-A AES erratum
18196         when enabled.
18197         (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
18198         on original crypto_<CRYPTO_AES:crypto_pattern> insn.
18199         (aes_op_protect): New pattern.
18200         * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
18202 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
18204         * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
18205         (ALL_QUIRKS): Add it.
18206         (cortex-a57, cortex-a72): Enable it.
18207         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
18208         * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
18209         option.
18210         (mfix-cortex-a72-aes-1655431): New option alias.
18211         * config/arm/arm.cc (arm_option_override): Handle default settings
18212         for AES erratum switch.
18213         * doc/invoke.texi (Arm Options): Document new options.
18215 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
18217         * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
18218         <crypto_mode> rather than hard-coding the mode.
18219         (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
18220         (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
18221         (*aarch32_crypto_aese_fused): Likewise.
18222         (*aarch32_crypto_aesd_fused): Likewise.
18223         (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
18224         (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
18225         (crypto_sha1h_lb): Likewise.
18226         (crypto_vmullp64): Likewise.
18227         (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
18228         (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
18230 2022-01-20  Richard Earnshaw  <rearnsha@arm.com>
18232         * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
18233         iterator to pattern name to disambiguate.
18234         (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
18235         (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
18236         (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
18237         (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
18238         (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
18240 2022-01-20  Martin Liska  <mliska@suse.cz>
18242         PR bootstrap/104135
18243         * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
18244         * rtl.cc: Partially disable -Wformat-diag for RTL checking
18245         error messages.
18247 2022-01-20  Jakub Jelinek  <jakub@redhat.com>
18249         PR debug/103874
18250         * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
18251         block_num > 0, index entry even if !have_multiple_function_sections.
18253 2022-01-20  liuhongt  <hongtao.liu@intel.com>
18255         PR target/103771
18256         * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
18257         integral mode mask pack by multi steps which takes
18258         vec_pack_sbool_trunc_optab as start when elements number is
18259         less than BITS_PER_UNITS.
18261 2022-01-20  Richard Biener  <rguenther@suse.de>
18263         PR tree-optimization/104114
18264         * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
18265         single element vector decomposition.
18267 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
18269         * ifcvt.cc (noce_convert_multiple_sets_1): New function.
18270         (noce_convert_multiple_sets): Call function a second time if we can
18271         improve the first try.
18273 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
18275         * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
18276         reversed comparison.
18277         (try_emit_cmove_seq): New function to facilitate creating a cmov
18278         sequence.
18279         (noce_convert_multiple_sets): Create two sequences and use the less
18280         expensive one.
18282 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
18284         * rtl.h (struct rtx_comparison): New struct that holds an rtx
18285         comparison.
18286         * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
18287         single parameters.
18288         (rs6000_emit_swsqrt): Likewise.
18289         * expmed.cc (expand_sdiv_pow2): Likewise.
18290         (emit_store_flag): Likewise.
18291         * expr.cc (expand_cond_expr_using_cmove): Likewise.
18292         (expand_expr_real_2): Likewise.
18293         * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
18294         parameters.
18295         * optabs.cc (emit_conditional_move_1): New function.
18296         (expand_doubleword_shift_condmove): Use struct.
18297         (emit_conditional_move): Use struct and allow to call directly
18298         without going through preparation steps.
18299         * optabs.h (emit_conditional_move): Use struct.
18301 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
18303         * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
18304         (noce_process_if_block): Use potential costs.
18306 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
18308         * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
18309         (bb_ok_for_noce_convert_multiple_sets): Likewise.
18311 2022-01-19  Robin Dapp  <rdapp@linux.ibm.com>
18313         * ifcvt.cc (need_cmov_or_rewire): New function.
18314         (noce_convert_multiple_sets): Call it.
18316 2022-01-19  David Malcolm  <dmalcolm@redhat.com>
18318         * attribs.cc (attribute_c_tests): Rename to...
18319         (attribs_cc_tests): ...this.
18320         * bitmap.cc (bitmap_c_tests): Rename to...
18321         (bitmap_cc_tests): ...this.
18322         * cgraph.cc (cgraph_c_finalize): Rename to...
18323         (cgraph_cc_finalize): ...this.
18324         (cgraph_c_tests): Rename to...
18325         (cgraph_cc_tests): ...this.
18326         * cgraph.h (cgraph_c_finalize): Rename to...
18327         (cgraph_cc_finalize): ...this.
18328         (cgraphunit_c_finalize): Rename to...
18329         (cgraphunit_cc_finalize): ...this.
18330         * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
18331         (cgraphunit_cc_finalize): ...this.
18332         * convert.cc (convert_c_tests): Rename to...
18333         (convert_cc_tests): ...this.
18334         * dbgcnt.cc (dbgcnt_c_tests): Rename to...
18335         (dbgcnt_cc_tests): ...this.
18336         * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
18337         (diagnostic_show_locus_cc_tests): ...this.
18338         * diagnostic.cc (diagnostic_c_tests): Rename to...
18339         (diagnostic_cc_tests): ...this.
18340         * dumpfile.cc (dumpfile_c_tests): Rename to...
18341         (dumpfile_cc_tests): ...this.
18342         * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
18343         (dwarf2out_cc_finalize): ...this.
18344         * dwarf2out.h (dwarf2out_c_finalize): Rename to...
18345         (dwarf2out_cc_finalize): ...this.
18346         * edit-context.cc (edit_context_c_tests): Rename to...
18347         (edit_context_cc_tests): ...this.
18348         * et-forest.cc (et_forest_c_tests): Rename to...
18349         (et_forest_cc_tests): ...this.
18350         * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
18351         (fibonacci_heap_cc_tests): ...this.
18352         * fold-const.cc (fold_const_c_tests): Rename to...
18353         (fold_const_cc_tests): ...this.
18354         * function-tests.cc (function_tests_c_tests): Rename to...
18355         (function_tests_cc_tests): ...this.
18356         * gcse.cc (gcse_c_finalize): Rename to...
18357         (gcse_cc_finalize): ...this.
18358         * gcse.h (gcse_c_finalize): Rename to...
18359         (gcse_cc_finalize): ...this.
18360         * ggc-tests.cc (ggc_tests_c_tests): Rename to...
18361         (ggc_tests_cc_tests): ...this.
18362         * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
18363         (store_merging_cc_tests): ...this.
18364         * gimple.cc (gimple_c_tests): Rename to...
18365         (gimple_cc_tests): ...this.
18366         * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
18367         (hash_map_tests_cc_tests): ...this.
18368         * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
18369         (hash_set_tests_cc_tests): ...this.
18370         * input.cc (input_c_tests): Rename to...
18371         (input_cc_tests): ...this.
18372         * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
18373         (ipa_cp_cc_finalize): ...this.
18374         * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
18375         (ipa_fnsummary_cc_finalize): ...this.
18376         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
18377         (ipa_fnsummary_cc_finalize): ...this.
18378         * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
18379         (ipa_modref_tree_cc_tests): ...this.
18380         * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
18381         * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
18382         (ipa_modref_cc_finalize): ...this.
18383         * ipa-modref.h (ipa_modref_c_finalize): Rename to...
18384         (ipa_modref_cc_finalize): ...this.
18385         * ipa-prop.h (ipa_cp_c_finalize): Rename to...
18386         (ipa_cp_cc_finalize): ...this.
18387         * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
18388         (ipa_reference_cc_finalize): ...this.
18389         * ipa-reference.h (ipa_reference_c_finalize): Rename to...
18390         (ipa_reference_cc_finalize): ...this.
18391         * ira-costs.cc (ira_costs_c_finalize): Rename to...
18392         (ira_costs_cc_finalize): ...this.
18393         * ira.h (ira_costs_c_finalize): Rename to...
18394         (ira_costs_cc_finalize): ...this.
18395         * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
18396         (opt_suggestions_cc_tests): ...this.
18397         * opts.cc (opts_c_tests): Rename to...
18398         (opts_cc_tests): ...this.
18399         * predict.cc (predict_c_tests): Rename to...
18400         (predict_cc_tests): ...this.
18401         * pretty-print.cc (pretty_print_c_tests): Rename to...
18402         (pretty_print_cc_tests): ...this.
18403         * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
18404         (read_rtl_function_cc_tests): ...this.
18405         * rtl-tests.cc (rtl_tests_c_tests): Rename to...
18406         (rtl_tests_cc_tests): ...this.
18407         * sbitmap.cc (sbitmap_c_tests): Rename to...
18408         (sbitmap_cc_tests): ...this.
18409         * selftest-run-tests.cc (selftest::run_tests): Update calls for
18410         _c_ to _cc_ function renamings; fix names of attribs and
18411         opt-suggestions tests.
18412         * selftest.cc (selftest_c_tests): Rename to...
18413         (selftest_cc_tests): ...this.
18414         * selftest.h (attribute_c_tests): Rename to...
18415         (attribs_cc_tests): ...this.
18416         (bitmap_c_tests): Rename to...
18417         (bitmap_cc_tests): ...this.
18418         (cgraph_c_tests): Rename to...
18419         (cgraph_cc_tests): ...this.
18420         (convert_c_tests): Rename to...
18421         (convert_cc_tests): ...this.
18422         (diagnostic_c_tests): Rename to...
18423         (diagnostic_cc_tests): ...this.
18424         (diagnostic_show_locus_c_tests): Rename to...
18425         (diagnostic_show_locus_cc_tests): ...this.
18426         (dumpfile_c_tests): Rename to...
18427         (dumpfile_cc_tests): ...this.
18428         (edit_context_c_tests): Rename to...
18429         (edit_context_cc_tests): ...this.
18430         (et_forest_c_tests): Rename to...
18431         (et_forest_cc_tests): ...this.
18432         (fibonacci_heap_c_tests): Rename to...
18433         (fibonacci_heap_cc_tests): ...this.
18434         (fold_const_c_tests): Rename to...
18435         (fold_const_cc_tests): ...this.
18436         (function_tests_c_tests): Rename to...
18437         (function_tests_cc_tests): ...this.
18438         (ggc_tests_c_tests): Rename to...
18439         (ggc_tests_cc_tests): ...this.
18440         (gimple_c_tests): Rename to...
18441         (gimple_cc_tests): ...this.
18442         (hash_map_tests_c_tests): Rename to...
18443         (hash_map_tests_cc_tests): ...this.
18444         (hash_set_tests_c_tests): Rename to...
18445         (hash_set_tests_cc_tests): ...this.
18446         (input_c_tests): Rename to...
18447         (input_cc_tests): ...this.
18448         (opts_c_tests): Rename to...
18449         (opts_cc_tests): ...this.
18450         (predict_c_tests): Rename to...
18451         (predict_cc_tests): ...this.
18452         (pretty_print_c_tests): Rename to...
18453         (pretty_print_cc_tests): ...this.
18454         (read_rtl_function_c_tests): Rename to...
18455         (read_rtl_function_cc_tests): ...this.
18456         (rtl_tests_c_tests): Rename to...
18457         (rtl_tests_cc_tests): ...this.
18458         (sbitmap_c_tests): Rename to...
18459         (sbitmap_cc_tests): ...this.
18460         (selftest_c_tests): Rename to...
18461         (selftest_cc_tests): ...this.
18462         (simplify_rtx_c_tests): Rename to...
18463         (simplify_rtx_cc_tests): ...this.
18464         (spellcheck_c_tests): Rename to...
18465         (spellcheck_cc_tests): ...this.
18466         (spellcheck_tree_c_tests): Rename to...
18467         (spellcheck_tree_cc_tests): ...this.
18468         (sreal_c_tests): Rename to...
18469         (sreal_cc_tests): ...this.
18470         (store_merging_c_tests): Rename to...
18471         (store_merging_cc_tests): ...this.
18472         (tree_c_tests): Rename to...
18473         (tree_cc_tests): ...this.
18474         (tree_cfg_c_tests): Rename to...
18475         (tree_cfg_cc_tests): ...this.
18476         (typed_splay_tree_c_tests): Rename to...
18477         (typed_splay_tree_cc_tests): ...this.
18478         (vec_c_tests): Rename to...
18479         (vec_cc_tests): ...this.
18480         (vec_perm_indices_c_tests): Rename to...
18481         (vec_perm_indices_cc_tests): ..this.
18482         (opt_proposer_c_tests): Rename to...
18483         (opt_suggestions_cc_tests): ...this.
18484         (dbgcnt_c_tests): Rename to...
18485         (dbgcnt_cc_tests): ...this.
18486         (ipa_modref_tree_c_tests): Rename to...
18487         (ipa_modref_tree_cc_tests): ...this.
18488         * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
18489         (simplify_rtx_cc_tests): ...this.
18490         * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
18491         (spellcheck_tree_cc_tests): ...this.
18492         * spellcheck.cc (spellcheck_c_tests): Rename to...
18493         (spellcheck_cc_tests): ...this.
18494         * sreal.cc (sreal_c_tests): Rename to...
18495         (sreal_cc_tests): ...this.
18496         * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
18497         function renamings.
18498         * tree-cfg.cc (tree_cfg_c_tests): Rename to...
18499         (tree_cfg_cc_tests): ...this.
18500         * tree.cc (tree_c_tests): Rename to...
18501         (tree_cc_tests): ...this.
18502         * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
18503         (typed_splay_tree_cc_tests): ...this.
18504         * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
18505         (vec_perm_indices_cc_tests): ...this.
18506         * vec.cc (vec_c_tests): Rename to...
18507         (vec_cc_tests): ...this.
18509 2022-01-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18511         PR tree-optimization/103997
18512         * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
18513         vectorization.
18515 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
18517         PR middle-end/102860
18518         * match.pd (x %[fl] y -> x % y): New simplification for
18519         unsigned integral types.
18520         * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
18521         for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
18523 2022-01-19  Richard Biener  <rguenther@suse.de>
18525         PR tree-optimization/104112
18526         * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
18527         for required intermediate vector types.
18529 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
18531         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
18533 2022-01-19  Martin Liska  <mliska@suse.cz>
18535         * configure.ac: Remove -Wno-error=format-diag.
18536         * configure: Regenerate.
18538 2022-01-19  Martin Liska  <mliska@suse.cz>
18540         * config/riscv/riscv.cc (riscv_handle_type_attribute):
18541         Update one -Wformat-diag string in warning message.
18543 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
18545         PR middle-end/104103
18546         * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
18547         .ASAN_MARK calls.
18549 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
18551         PR c++/89074
18552         * fold-const.cc (address_compare): Consider different STRING_CSTs
18553         with the same lengths that memcmp the same as equal, not different.
18555 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
18557         * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
18558         {%0}.
18560 2022-01-19  Martin Liska  <mliska@suse.cz>
18561             Thomas Schwinge  <thomas@codesourcery.com>
18563         * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
18564         warning messages.
18566 2022-01-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18568         PR target/104090
18569         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
18570         rs6000_cpu.
18572 2022-01-19  Jakub Jelinek  <jakub@redhat.com>
18574         PR target/104104
18575         * config/i386/sse.md
18576         (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
18577         avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
18578         avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
18579         avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
18580         avx512dq_rangep<mode><mask_name><round_saeonly_name>,
18581         avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
18582         <avx512>_getmant<mode><mask_name><round_saeonly_name>,
18583         avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
18584         Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
18586 2022-01-19  Martin Sebor  <msebor@redhat.com>
18588         PR middle-end/104069
18589         * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
18590         an unknown result as documented.
18592 2022-01-18  Andrew Pinski  <apinski@marvell.com>
18594         * ipa-split.cc (visit_bb): Fix comment before the
18595         warning/error attribute checking code.
18597 2022-01-18  David Faust  <david.faust@oracle.com>
18599         * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
18600         for base strtab offset yet as it may change.
18601         (output_asm_btfext_core_reloc): Do so here instead.
18602         (output_btfext_core_sections): Likewise.
18604 2022-01-18  David Faust  <david.faust@oracle.com>
18606         * config/bpf/coreout.cc (output_btfext_header): Account for
18607         4-byte record size in core_relo_len.
18608         (output_btfext_core_sections): Only write record size once.
18609         * config/bpf/coreout.h (btf_ext_section_header): Delete unused
18610         member.
18612 2022-01-18  Maciej W. Rozycki  <macro@embecosm.com>
18614         * common/config/riscv/riscv-common.cc
18615         (riscv_subset_list::parse_multiletter_ext): Move pointer
18616         arithmetic ahead of `free'.
18618 2022-01-18  Jason Merrill  <jason@redhat.com>
18620         PR c++/104007
18621         * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
18622         context.
18624 2022-01-18  Sandra Loosemore  <sandra@codesourcery.com>
18626         PR middle-end/103163
18627         * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
18628         (init_emit_once): ...not here.
18630 2022-01-18  Martin Liska  <mliska@suse.cz>
18632         * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
18633         * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
18634         * config/arc/arc.md: Likewise.
18635         * config/avr/avr.cc (avr_section_type_flags): Likewise.
18636         * config/bfin/bfin.cc (bfin_option_override): Likewise.
18637         (bfin_handle_longcall_attribute): Likewise.
18638         * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
18639         * config/frv/frv.cc (frv_expand_builtin): Likewise.
18640         * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
18641         * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
18642         (iq2000_print_operand_address): Likewise.
18643         (iq2000_print_operand): Likewise.
18644         * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
18645         (m32c_pragma_address): Likewise.
18646         * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
18647         * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
18648         (mips_set_compression_mode): Likewise.
18649         * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
18650         (mmix_print_operand): Likewise.
18651         (mmix_output_shiftvalue_op_from_str): Likewise.
18652         (mmix_output_shifted_value): Likewise.
18653         * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
18654         * config/msp430/msp430.cc (msp430_option_override): Likewise.
18655         (msp430_attr): Likewise.
18656         (msp430_expand_delay_cycles): Likewise.
18657         (msp430_expand_builtin): Likewise.
18658         * config/rs6000/aix73.h: Likewise.
18659         * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
18660         * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
18661         (valid_psw_flag): Likewise.
18662         * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
18663         * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
18664         (xstormy16_expand_builtin_va_start): Likewise.
18665         (xstormy16_handle_below100_attribute): Likewise.
18667 2022-01-18  Martin Liska  <mliska@suse.cz>
18669         * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
18670         warning.
18671         (vms_pragma_standard): Likewise.
18672         (vms_pragma_extern_prefix): Likewise.
18674 2022-01-18  Martin Liska  <mliska@suse.cz>
18676         * config/xtensa/xtensa.cc (print_operand): Fix warnings.
18677         (print_operand_address): Likewise.
18678         (xtensa_multibss_section_type_flags): Likewise.
18680 2022-01-18  Martin Liska  <mliska@suse.cz>
18682         * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
18683         wording of an error message.
18685 2022-01-18  Martin Liska  <mliska@suse.cz>
18687         * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
18688         warning.
18689         (ghs_pragma_section): Likewise.
18690         (ghs_pragma_interrupt): Likewise.
18691         (ghs_pragma_starttda): Likewise.
18692         (ghs_pragma_startsda): Likewise.
18693         (ghs_pragma_startzda): Likewise.
18694         (ghs_pragma_endtda): Likewise.
18695         (ghs_pragma_endsda): Likewise.
18696         (ghs_pragma_endzda): Likewise.
18698 2022-01-18  Martin Liska  <mliska@suse.cz>
18700         * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
18701         Fix warnings.
18702         * config/nds32/nds32-intrinsic.md: Likewise.
18703         * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
18704         * config/nds32/nds32.cc (nds32_print_operand): Likewise.
18705         (nds32_insert_attributes): Likewise.
18707 2022-01-18  Martin Liska  <mliska@suse.cz>
18709         * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
18710         keyword.
18711         * config/nvptx/nvptx.md: Remove trailing dot.
18713 2022-01-18  Martin Liska  <mliska@suse.cz>
18715         * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
18716         Wrap keywords with quotes and remove trailing dots.
18717         (riscv_subset_list::parsing_subset_version): Likewise.
18718         (riscv_subset_list::parse_std_ext): Likewise.
18719         (riscv_subset_list::parse_multiletter_ext): Likewise.
18720         * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
18722 2022-01-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18724         * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
18725         argument suggested_unroll_factor.
18726         (vect_analyze_loop_costing): Likewise.
18727         (_loop_vec_info::_loop_vec_info): Initialize new member
18728         suggested_unroll_factor.
18729         (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
18730         main loop use partial vectors.
18731         (vect_analyze_loop_2): Pass and use new argument
18732         suggested_unroll_factor.
18733         (vect_analyze_loop_1): Change to intialize local
18734         suggested_unroll_factor and use it.
18735         (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
18736         * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
18737         suggested_unroll_factor.
18738         (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
18739         (vector_costs::suggested_unroll_factor): New getter function.
18740         (finish_cost): Set return argument suggested_unroll_factor.
18742 2022-01-18  Andrew MacLeod  <amacleod@redhat.com>
18744         PR tree-optimization/104038
18745         * doc/invoke.texi (relation-block-limit): New.
18746         * params.opt (relation-block-limit): New.
18747         * value-relation.cc (dom_oracle::register_relation): Check for NULL
18748         record before invoking transitive registery.
18749         (dom_oracle::set_one_relation): Check limit before creating record.
18750         (dom_oracle::register_transitives): Stop when no record created.
18751         * value-relation.h (relation_chain_head::m_num_relations): New.
18753 2022-01-18  Richard Biener  <rguenther@suse.de>
18755         PR ipa/103989
18756         * ipa-inline.cc (inline_small_functions): Do not enqueue call
18757         edges originating in functions compiled with -Og.
18759 2022-01-18  Richard Biener  <rguenther@suse.de>
18761         PR ipa/103989
18762         * passes.def (pass_all_optimizations_g): Remove pass_modref
18763         and pass_local_pure_const.
18765 2022-01-18  Martin Liska  <mliska@suse.cz>
18767         * config/s390/s390.cc: Fix -Wformat-diag warnings.
18769 2022-01-18  Martin Liska  <mliska@suse.cz>
18771         * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
18772         keyword in quotes.
18773         (s390_resolve_overloaded_builtin): Remove trailing dot.
18774         * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
18775         (s390_expand_builtin): Remove trailing dot.
18776         (s390_emit_prologue): Likewise, use semicolon.
18777         (s390_option_override_internal): Update keyword.
18778         * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
18780 2022-01-18  Martin Liska  <mliska@suse.cz>
18782         * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
18783         keywords and use %qs instead of %<%s%>.
18785 2022-01-18  Richard Biener  <rguenther@suse.de>
18787         PR tree-optimization/103987
18788         * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
18789         query with a pointer check.
18791 2022-01-18  Richard Sandiford  <richard.sandiford@arm.com>
18793         PR target/104005
18794         * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
18795         When using MEM_EXPR, require the base to be a decl.
18797 2022-01-18  Richard Biener  <rguenther@suse.de>
18799         * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
18800         avoid padding.
18801         * function.h (struct function): Likewise.
18803 2022-01-18  Arnaud Charlet  <charlet@adacore.com>
18805         * doc/install.texi: Update prerequisites for GNAT
18807 2022-01-18  Andrew Pinski  <apinski@marvell.com>
18809         PR tree-optimization/101941
18810         * ipa-split.cc (visit_bb): Disallow function calls where
18811         the function has either error or warning attribute.
18813 2022-01-18  Richard Biener  <rguenther@suse.de>
18815         PR tree-optimization/104064
18816         * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
18817         DR_INIT fits in a signed HWI, represent the difference from the
18818         first DR in unsigned.
18820 2022-01-17  Martin Liska  <mliska@suse.cz>
18822         * Makefile.in: Rename .c names to .cc.
18823         * config.gcc: Likewise.
18824         * configure: Regenerate. Likewise.
18825         * configure.ac: Likewise.
18826         * gengtype.cc (set_gc_used): Likewise.
18827         (source_dot_c_frul): Likewise.
18828         (source_dot_cc_frul): Likewise.
18829         (struct file_rule_st): Likewise.
18830         (close_output_files): Likewise.
18831         * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
18833 2022-01-17  Martin Liska  <mliska@suse.cz>
18835         * Makefile.in: Rename .c names to .cc.
18836         * alias.h: Likewise.
18837         * asan.cc: Likewise.
18838         * auto-profile.h: Likewise.
18839         * basic-block.h (struct basic_block_d): Likewise.
18840         * btfout.cc: Likewise.
18841         * builtins.cc (expand_builtin_longjmp): Likewise.
18842         (validate_arg): Likewise.
18843         (access_ref::offset_bounded): Likewise.
18844         * caller-save.cc (reg_restore_code): Likewise.
18845         (setup_save_areas): Likewise.
18846         * calls.cc (initialize_argument_information): Likewise.
18847         (expand_call): Likewise.
18848         (emit_library_call_value_1): Likewise.
18849         * cfg-flags.def (RTL): Likewise.
18850         (SIBCALL): Likewise.
18851         (CAN_FALLTHRU): Likewise.
18852         * cfganal.cc (post_order_compute): Likewise.
18853         * cfgcleanup.cc (try_simplify_condjump): Likewise.
18854         (merge_blocks_move_predecessor_nojumps): Likewise.
18855         (merge_blocks_move_successor_nojumps): Likewise.
18856         (merge_blocks_move): Likewise.
18857         (old_insns_match_p): Likewise.
18858         (try_crossjump_bb): Likewise.
18859         * cfgexpand.cc (expand_gimple_stmt): Likewise.
18860         * cfghooks.cc (split_block_before_cond_jump): Likewise.
18861         (profile_record_check_consistency): Likewise.
18862         * cfghooks.h: Likewise.
18863         * cfgrtl.cc (pass_free_cfg::execute): Likewise.
18864         (rtl_can_merge_blocks): Likewise.
18865         (try_redirect_by_replacing_jump): Likewise.
18866         (make_pass_outof_cfg_layout_mode): Likewise.
18867         (cfg_layout_can_merge_blocks_p): Likewise.
18868         * cgraph.cc (release_function_body): Likewise.
18869         (cgraph_node::get_fun): Likewise.
18870         * cgraph.h (struct cgraph_node): Likewise.
18871         (asmname_hasher::equal): Likewise.
18872         (cgraph_inline_failed_type): Likewise.
18873         (thunk_adjust): Likewise.
18874         (dump_callgraph_transformation): Likewise.
18875         (record_references_in_initializer): Likewise.
18876         (ipa_discover_variable_flags): Likewise.
18877         * cgraphclones.cc (GTY): Likewise.
18878         * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
18879         * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
18880         * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
18881         * collect2.cc (maybe_run_lto_and_relink): Likewise.
18882         * combine-stack-adj.cc: Likewise.
18883         * combine.cc (setup_incoming_promotions): Likewise.
18884         (combine_simplify_rtx): Likewise.
18885         (count_rtxs): Likewise.
18886         * common.opt: Likewise.
18887         * common/config/aarch64/aarch64-common.cc: Likewise.
18888         * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
18889         * common/config/avr/avr-common.cc: Likewise.
18890         * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
18891         * conditions.h: Likewise.
18892         * config.gcc: Likewise.
18893         * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
18894         * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
18895         (aarch64_get_extension_string_for_isa_flags): Likewise.
18896         * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
18897         * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
18898         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
18899         (aarch64_option_valid_attribute_p): Likewise.
18900         (aarch64_short_vector_p): Likewise.
18901         (aarch64_float_const_representable_p): Likewise.
18902         * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
18903         (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
18904         (GTY): Likewise.
18905         * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
18906         * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
18907         * config/aarch64/t-aarch64: Likewise.
18908         * config/aarch64/x-aarch64: Likewise.
18909         * config/aarch64/x-darwin: Likewise.
18910         * config/alpha/alpha-protos.h: Likewise.
18911         * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
18912         * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
18913         (enum reg_class): Likewise.
18914         * config/alpha/alpha.md: Likewise.
18915         * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
18916         * config/alpha/x-alpha: Likewise.
18917         * config/arc/arc-protos.h (arc_eh_uses): Likewise.
18918         * config/arc/arc.cc (ARC_OPT): Likewise.
18919         (arc_ccfsm_advance): Likewise.
18920         (arc_arg_partial_bytes): Likewise.
18921         (conditionalize_nonjump): Likewise.
18922         * config/arc/arc.md: Likewise.
18923         * config/arc/builtins.def: Likewise.
18924         * config/arc/t-arc: Likewise.
18925         * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
18926         (arm_pragma_target_parse): Likewise.
18927         * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
18928         (arm_cpu_cpp_builtins): Likewise.
18929         * config/arm/arm.cc (vfp3_const_double_index): Likewise.
18930         (shift_op): Likewise.
18931         (thumb2_final_prescan_insn): Likewise.
18932         (arm_final_prescan_insn): Likewise.
18933         (arm_asm_output_labelref): Likewise.
18934         (arm_small_register_classes_for_mode_p): Likewise.
18935         * config/arm/arm.h: Likewise.
18936         * config/arm/arm.md: Likewise.
18937         * config/arm/driver-arm.cc: Likewise.
18938         * config/arm/symbian.h: Likewise.
18939         * config/arm/t-arm: Likewise.
18940         * config/arm/thumb1.md: Likewise.
18941         * config/arm/x-arm: Likewise.
18942         * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
18943         * config/avr/avr-fixed.md: Likewise.
18944         * config/avr/avr-log.cc (avr_log_vadump): Likewise.
18945         * config/avr/avr-mcus.def: Likewise.
18946         * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
18947         * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
18948         * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
18949         * config/avr/avr.cc (avr_option_override): Likewise.
18950         (avr_build_builtin_va_list): Likewise.
18951         (avr_mode_dependent_address_p): Likewise.
18952         (avr_function_arg_advance): Likewise.
18953         (avr_asm_output_aligned_decl_common): Likewise.
18954         * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
18955         (SUPPORTS_INIT_PRIORITY): Likewise.
18956         * config/avr/avr.md: Likewise.
18957         * config/avr/builtins.def: Likewise.
18958         * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
18959         * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
18960         (main): Likewise.
18961         * config/avr/t-avr: Likewise.
18962         * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
18963         * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
18964         * config/bpf/bpf.h (enum reg_class): Likewise.
18965         * config/bpf/t-bpf: Likewise.
18966         * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
18967         * config/cr16/cr16-protos.h: Likewise.
18968         * config/cris/cris.cc (cris_address_cost): Likewise.
18969         (cris_side_effect_mode_ok): Likewise.
18970         (cris_init_machine_status): Likewise.
18971         (cris_emit_movem_store): Likewise.
18972         * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
18973         (enum reg_class): Likewise.
18974         (struct cum_args): Likewise.
18975         * config/cris/cris.opt: Likewise.
18976         * config/cris/sync.md: Likewise.
18977         * config/csky/csky.cc (csky_expand_prologue): Likewise.
18978         * config/darwin-c.cc: Likewise.
18979         * config/darwin-f.cc: Likewise.
18980         * config/darwin-sections.def (zobj_const_section): Likewise.
18981         * config/darwin.cc (output_objc_section_asm_op): Likewise.
18982         (fprintf): Likewise.
18983         * config/darwin.h (GTY): Likewise.
18984         * config/elfos.h: Likewise.
18985         * config/epiphany/epiphany-sched.md: Likewise.
18986         * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
18987         * config/epiphany/epiphany.h (GTY): Likewise.
18988         (NO_FUNCTION_CSE): Likewise.
18989         * config/epiphany/mode-switch-use.cc: Likewise.
18990         * config/epiphany/predicates.md: Likewise.
18991         * config/epiphany/t-epiphany: Likewise.
18992         * config/fr30/fr30-protos.h: Likewise.
18993         * config/frv/frv-protos.h: Likewise.
18994         * config/frv/frv.cc (TLS_BIAS): Likewise.
18995         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
18996         * config/ft32/ft32-protos.h: Likewise.
18997         * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
18998         * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
18999         * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
19000         * config/gcn/t-gcn-hsa: Likewise.
19001         * config/gcn/t-omp-device: Likewise.
19002         * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
19003         (same_cmp_following_p): Likewise.
19004         * config/h8300/h8300.cc (F): Likewise.
19005         * config/h8300/h8300.h (struct cum_arg): Likewise.
19006         (BRANCH_COST): Likewise.
19007         * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
19008         * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
19009         * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
19010         * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
19011         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
19012         * config/i386/i386-c.cc (ix86_target_macros): Likewise.
19013         * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
19014         * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
19015         * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
19016         (ix86_register_pragmas): Likewise.
19017         (ix86_d_has_stdcall_convention): Likewise.
19018         (i386_pe_seh_init_sections): Likewise.
19019         * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
19020         (ix86_function_value_regno_p): Likewise.
19021         (ix86_compute_frame_layout): Likewise.
19022         (legitimize_pe_coff_symbol): Likewise.
19023         (output_pic_addr_const): Likewise.
19024         * config/i386/i386.h (defined): Likewise.
19025         (host_detect_local_cpu): Likewise.
19026         (CONSTANT_ADDRESS_P): Likewise.
19027         (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
19028         (struct machine_frame_state): Likewise.
19029         * config/i386/i386.md: Likewise.
19030         * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
19031         * config/i386/mmx.md: Likewise.
19032         * config/i386/sse.md: Likewise.
19033         * config/i386/t-cygming: Likewise.
19034         * config/i386/t-djgpp: Likewise.
19035         * config/i386/t-gnu-property: Likewise.
19036         * config/i386/t-i386: Likewise.
19037         * config/i386/t-intelmic: Likewise.
19038         * config/i386/t-omp-device: Likewise.
19039         * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
19040         (i386_pe_adjust_class_at_definition): Likewise.
19041         * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
19042         (i386_pe_mangle_decl_assembler_name): Likewise.
19043         (i386_pe_encode_section_info): Likewise.
19044         * config/i386/x-cygwin: Likewise.
19045         * config/i386/x-darwin: Likewise.
19046         * config/i386/x-i386: Likewise.
19047         * config/i386/x-mingw32: Likewise.
19048         * config/i386/x86-tune-sched-core.cc: Likewise.
19049         * config/i386/x86-tune.def: Likewise.
19050         * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
19051         * config/ia64/freebsd.h: Likewise.
19052         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
19053         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
19054         * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
19055         (ia64_secondary_reload_class): Likewise.
19056         (bundling): Likewise.
19057         * config/ia64/ia64.h: Likewise.
19058         * config/ia64/ia64.md: Likewise.
19059         * config/ia64/predicates.md: Likewise.
19060         * config/ia64/sysv4.h: Likewise.
19061         * config/ia64/t-ia64: Likewise.
19062         * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
19063         * config/iq2000/iq2000.md: Likewise.
19064         * config/linux.h (TARGET_HAS_BIONIC): Likewise.
19065         (if): Likewise.
19066         * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
19067         * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
19068         * config/m32c/t-m32c: Likewise.
19069         * config/m32r/m32r-protos.h: Likewise.
19070         * config/m32r/m32r.cc (m32r_print_operand): Likewise.
19071         * config/m32r/m32r.h: Likewise.
19072         * config/m32r/m32r.md: Likewise.
19073         * config/m68k/m68k-isas.def: Likewise.
19074         * config/m68k/m68k-microarchs.def: Likewise.
19075         * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
19076         (m68k_epilogue_uses): Likewise.
19077         * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
19078         (m68k_sched_adjust_cost): Likewise.
19079         (m68k_sched_md_init): Likewise.
19080         * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
19081         (enum m68k_function_kind): Likewise.
19082         * config/m68k/m68k.md: Likewise.
19083         * config/m68k/m68kemb.h: Likewise.
19084         * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
19085         * config/mcore/mcore-protos.h: Likewise.
19086         * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
19087         (mcore_expand_prolog): Likewise.
19088         * config/mcore/mcore.h (TARGET_MCORE): Likewise.
19089         * config/mcore/mcore.md: Likewise.
19090         * config/microblaze/microblaze-protos.h: Likewise.
19091         * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
19092         (microblaze_function_prologue): Likewise.
19093         (microblaze_function_epilogue): Likewise.
19094         (microblaze_select_section): Likewise.
19095         (microblaze_asm_output_mi_thunk): Likewise.
19096         (microblaze_eh_return): Likewise.
19097         * config/microblaze/microblaze.h: Likewise.
19098         * config/microblaze/microblaze.md: Likewise.
19099         * config/microblaze/t-microblaze: Likewise.
19100         * config/mips/driver-native.cc: Likewise.
19101         * config/mips/loongson2ef.md: Likewise.
19102         * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
19103         * config/mips/mips.cc (mips_rtx_costs): Likewise.
19104         (mips_output_filename): Likewise.
19105         (mips_output_function_prologue): Likewise.
19106         (mips_output_function_epilogue): Likewise.
19107         (mips_output_mi_thunk): Likewise.
19108         * config/mips/mips.h: Likewise.
19109         * config/mips/mips.md: Likewise.
19110         * config/mips/t-mips: Likewise.
19111         * config/mips/x-native: Likewise.
19112         * config/mmix/mmix-protos.h: Likewise.
19113         * config/mmix/mmix.cc (mmix_option_override): Likewise.
19114         (mmix_dbx_register_number): Likewise.
19115         (mmix_expand_prologue): Likewise.
19116         * config/mmix/mmix.h: Likewise.
19117         * config/mmix/mmix.md: Likewise.
19118         * config/mmix/predicates.md: Likewise.
19119         * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
19120         (mn10300_legitimate_pic_operand_p): Likewise.
19121         * config/mn10300/mn10300.h (enum reg_class): Likewise.
19122         (NO_FUNCTION_CSE): Likewise.
19123         * config/moxie/moxie-protos.h: Likewise.
19124         * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
19125         * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
19126         * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
19127         (msp430_incoming_return_addr_rtx): Likewise.
19128         * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
19129         * config/msp430/t-msp430: Likewise.
19130         * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
19131         (nds32_rtx_costs_size_prefer): Likewise.
19132         (nds32_init_rtx_costs): Likewise.
19133         * config/nds32/nds32-doubleword.md: Likewise.
19134         * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
19135         (nds32_builtin_decl): Likewise.
19136         * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
19137         (enum nds32_isr_nested_type): Likewise.
19138         (enum reg_class): Likewise.
19139         * config/nds32/predicates.md: Likewise.
19140         * config/nds32/t-nds32: Likewise.
19141         * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
19142         * config/nvptx/nvptx-protos.h: Likewise.
19143         * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
19144         * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
19145         * config/nvptx/t-nvptx: Likewise.
19146         * config/nvptx/t-omp-device: Likewise.
19147         * config/pa/elf.h: Likewise.
19148         * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
19149         * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
19150         * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
19151         * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
19152         (pa_legitimize_reload_address): Likewise.
19153         (pa_can_use_return_insn): Likewise.
19154         * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
19155         (som_output_text_section_asm_op): Likewise.
19156         * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
19157         * config/pa/pa.md: Likewise.
19158         * config/pa/som.h: Likewise.
19159         * config/pa/t-pa: Likewise.
19160         * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
19161         * config/pdp11/pdp11.h: Likewise.
19162         * config/pdp11/pdp11.md: Likewise.
19163         * config/pdp11/t-pdp11: Likewise.
19164         * config/pru/pru.md: Likewise.
19165         * config/pru/t-pru: Likewise.
19166         * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
19167         (riscv_gpr_save_operation_p): Likewise.
19168         (riscv_d_register_target_info): Likewise.
19169         (riscv_init_builtins): Likewise.
19170         * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
19171         * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
19172         * config/riscv/t-riscv: Likewise.
19173         * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
19174         * config/rl78/t-rl78: Likewise.
19175         * config/rs6000/aix.h: Likewise.
19176         * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
19177         * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
19178         * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
19179         * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
19180         * config/rs6000/driver-rs6000.cc: Likewise.
19181         * config/rs6000/freebsd.h: Likewise.
19182         * config/rs6000/freebsd64.h: Likewise.
19183         * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
19184         * config/rs6000/rbtree.cc: Likewise.
19185         * config/rs6000/rbtree.h: Likewise.
19186         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
19187         * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
19188         (rs6000_expand_builtin): Likewise.
19189         (rs6000_init_builtins): Likewise.
19190         * config/rs6000/rs6000-cpus.def: Likewise.
19191         * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
19192         * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
19193         (quad_address_offset_p): Likewise.
19194         * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
19195         (rs6000_emit_epilogue): Likewise.
19196         * config/rs6000/rs6000-overload.def: Likewise.
19197         * config/rs6000/rs6000-p8swap.cc: Likewise.
19198         * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
19199         (rs6000_const_f32_to_i32): Likewise.
19200         * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
19201         (rs6000_debug_legitimize_address): Likewise.
19202         (rs6000_mode_dependent_address): Likewise.
19203         (rs6000_adjust_priority): Likewise.
19204         (rs6000_c_mode_for_suffix): Likewise.
19205         * config/rs6000/rs6000.h (defined): Likewise.
19206         (LONG_DOUBLE_TYPE_SIZE): Likewise.
19207         * config/rs6000/rs6000.md: Likewise.
19208         * config/rs6000/sysv4.h: Likewise.
19209         * config/rs6000/t-linux: Likewise.
19210         * config/rs6000/t-linux64: Likewise.
19211         * config/rs6000/t-rs6000: Likewise.
19212         * config/rs6000/x-darwin: Likewise.
19213         * config/rs6000/x-darwin64: Likewise.
19214         * config/rs6000/x-rs6000: Likewise.
19215         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
19216         * config/rx/rx.cc (rx_expand_builtin): Likewise.
19217         * config/s390/constraints.md: Likewise.
19218         * config/s390/driver-native.cc: Likewise.
19219         * config/s390/htmxlintrin.h: Likewise.
19220         * config/s390/s390-builtins.def (B_DEF): Likewise.
19221         (OB_DEF_VAR): Likewise.
19222         * config/s390/s390-builtins.h: Likewise.
19223         * config/s390/s390-c.cc: Likewise.
19224         * config/s390/s390-opts.h: Likewise.
19225         * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
19226         (s390_register_target_pragmas): Likewise.
19227         * config/s390/s390.cc (s390_init_builtins): Likewise.
19228         (s390_expand_plus_operand): Likewise.
19229         (s390_expand_atomic): Likewise.
19230         (s390_valid_target_attribute_inner_p): Likewise.
19231         * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
19232         * config/s390/s390.md: Likewise.
19233         * config/s390/t-s390: Likewise.
19234         * config/s390/vx-builtins.md: Likewise.
19235         * config/s390/x-native: Likewise.
19236         * config/sh/divtab-sh4-300.cc (main): Likewise.
19237         * config/sh/divtab-sh4.cc (main): Likewise.
19238         * config/sh/divtab.cc (main): Likewise.
19239         * config/sh/elf.h: Likewise.
19240         * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
19241         * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
19242         (sh_struct_value_rtx): Likewise.
19243         (sh_remove_reg_dead_or_unused_notes): Likewise.
19244         * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
19245         * config/sh/t-sh: Likewise.
19246         * config/sol2-protos.h (solaris_override_options): Likewise.
19247         * config/sol2.h: Likewise.
19248         * config/sparc/driver-sparc.cc: Likewise.
19249         * config/sparc/freebsd.h: Likewise.
19250         * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
19251         * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
19252         (sparc_asan_shadow_offset): Likewise.
19253         * config/sparc/sparc.h: Likewise.
19254         * config/sparc/sparc.md: Likewise.
19255         * config/sparc/t-sparc: Likewise.
19256         * config/sparc/x-sparc: Likewise.
19257         * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
19258         * config/t-darwin: Likewise.
19259         * config/t-dragonfly: Likewise.
19260         * config/t-freebsd: Likewise.
19261         * config/t-glibc: Likewise.
19262         * config/t-linux: Likewise.
19263         * config/t-netbsd: Likewise.
19264         * config/t-openbsd: Likewise.
19265         * config/t-pnt16-warn: Likewise.
19266         * config/t-sol2: Likewise.
19267         * config/t-vxworks: Likewise.
19268         * config/t-winnt: Likewise.
19269         * config/tilegx/t-tilegx: Likewise.
19270         * config/tilegx/tilegx-c.cc: Likewise.
19271         * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
19272         * config/tilegx/tilegx.md: Likewise.
19273         * config/tilepro/t-tilepro: Likewise.
19274         * config/tilepro/tilepro-c.cc: Likewise.
19275         * config/v850/t-v850: Likewise.
19276         * config/v850/v850-protos.h: Likewise.
19277         * config/v850/v850.cc (F): Likewise.
19278         * config/v850/v850.h (enum reg_class): Likewise.
19279         (SLOW_BYTE_ACCESS): Likewise.
19280         * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
19281         * config/vax/vax.h (enum reg_class): Likewise.
19282         * config/vax/vax.md: Likewise.
19283         * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
19284         * config/visium/visium.h: Likewise.
19285         * config/vms/t-vms: Likewise.
19286         * config/vms/vms-crtlmap.map: Likewise.
19287         * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
19288         * config/vx-common.h: Likewise.
19289         * config/x-darwin: Likewise.
19290         * config/x-hpux: Likewise.
19291         * config/x-linux: Likewise.
19292         * config/x-netbsd: Likewise.
19293         * config/x-openbsd: Likewise.
19294         * config/x-solaris: Likewise.
19295         * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
19296         * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
19297         * config/xtensa/xtensa.h: Likewise.
19298         * configure.ac: Likewise.
19299         * context.cc: Likewise.
19300         * convert.h: Likewise.
19301         * coretypes.h: Likewise.
19302         * coverage.cc: Likewise.
19303         * coverage.h: Likewise.
19304         * cppdefault.h (struct default_include): Likewise.
19305         * cprop.cc (local_cprop_pass): Likewise.
19306         (one_cprop_pass): Likewise.
19307         * cse.cc (hash_rtx_cb): Likewise.
19308         (fold_rtx): Likewise.
19309         * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
19310         * data-streamer.h (bp_unpack_var_len_int): Likewise.
19311         (streamer_write_widest_int): Likewise.
19312         * dbgcnt.def: Likewise.
19313         * dbxout.cc (dbxout_early_global_decl): Likewise.
19314         (dbxout_common_check): Likewise.
19315         * dbxout.h: Likewise.
19316         * debug.h (struct gcc_debug_hooks): Likewise.
19317         (dump_go_spec_init): Likewise.
19318         * df-core.cc: Likewise.
19319         * df-scan.cc (df_insn_info_delete): Likewise.
19320         (df_insn_delete): Likewise.
19321         * df.h (debug_df_chain): Likewise.
19322         (can_move_insns_across): Likewise.
19323         * dfp.cc (decimal_from_binary): Likewise.
19324         * diagnostic-color.cc: Likewise.
19325         * diagnostic-event-id.h: Likewise.
19326         * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
19327         * diagnostic.cc (bt_callback): Likewise.
19328         (num_digits): Likewise.
19329         * doc/avr-mmcu.texi: Likewise.
19330         * doc/cfg.texi: Likewise.
19331         * doc/contrib.texi: Likewise.
19332         * doc/cppinternals.texi: Likewise.
19333         * doc/extend.texi: Likewise.
19334         * doc/generic.texi: Likewise.
19335         * doc/gimple.texi: Likewise.
19336         * doc/gty.texi: Likewise.
19337         * doc/invoke.texi: Likewise.
19338         * doc/loop.texi: Likewise.
19339         * doc/lto.texi: Likewise.
19340         * doc/match-and-simplify.texi: Likewise.
19341         * doc/md.texi: Likewise.
19342         * doc/optinfo.texi: Likewise.
19343         * doc/options.texi: Likewise.
19344         * doc/passes.texi: Likewise.
19345         * doc/plugins.texi: Likewise.
19346         * doc/rtl.texi: Likewise.
19347         * doc/sourcebuild.texi: Likewise.
19348         * doc/tm.texi: Likewise.
19349         * doc/tm.texi.in: Likewise.
19350         * doc/tree-ssa.texi: Likewise.
19351         * dojump.cc (do_jump): Likewise.
19352         * dojump.h: Likewise.
19353         * dumpfile.cc (test_impl_location): Likewise.
19354         (test_capture_of_dump_calls): Likewise.
19355         * dumpfile.h (enum dump_kind): Likewise.
19356         (class dump_location_t): Likewise.
19357         (dump_enabled_p): Likewise.
19358         (enable_rtl_dump_file): Likewise.
19359         (dump_combine_total_stats): Likewise.
19360         * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
19361         * dwarf2ctf.h (ctf_debug_finish): Likewise.
19362         * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
19363         (struct loc_descr_context): Likewise.
19364         (rtl_for_decl_location): Likewise.
19365         (gen_subprogram_die): Likewise.
19366         (gen_label_die): Likewise.
19367         (is_trivial_indirect_ref): Likewise.
19368         (dwarf2out_late_global_decl): Likewise.
19369         (dwarf_file_hasher::hash): Likewise.
19370         (dwarf2out_end_source_file): Likewise.
19371         (dwarf2out_define): Likewise.
19372         (dwarf2out_early_finish): Likewise.
19373         * dwarf2out.h (struct dw_fde_node): Likewise.
19374         (struct dw_discr_list_node): Likewise.
19375         (output_loc_sequence_raw): Likewise.
19376         * emit-rtl.cc (gen_raw_REG): Likewise.
19377         (maybe_set_max_label_num): Likewise.
19378         * emit-rtl.h (struct rtl_data): Likewise.
19379         * errors.cc (internal_error): Likewise.
19380         (trim_filename): Likewise.
19381         * et-forest.cc: Likewise.
19382         * except.cc (init_eh_for_function): Likewise.
19383         * explow.cc (promote_ssa_mode): Likewise.
19384         (get_dynamic_stack_size): Likewise.
19385         * explow.h: Likewise.
19386         * expmed.h: Likewise.
19387         * expr.cc (safe_from_p): Likewise.
19388         (expand_expr_real_2): Likewise.
19389         (expand_expr_real_1): Likewise.
19390         * file-prefix-map.cc (remap_filename): Likewise.
19391         * final.cc (app_enable): Likewise.
19392         (make_pass_compute_alignments): Likewise.
19393         (final_scan_insn_1): Likewise.
19394         (final_scan_insn): Likewise.
19395         * fixed-value.h (fixed_from_string): Likewise.
19396         * flag-types.h (NO_DEBUG): Likewise.
19397         (DWARF2_DEBUG): Likewise.
19398         (VMS_DEBUG): Likewise.
19399         (BTF_DEBUG): Likewise.
19400         (enum ctf_debug_info_levels): Likewise.
19401         * fold-const.cc (const_binop): Likewise.
19402         (fold_binary_loc): Likewise.
19403         (fold_checksum_tree): Likewise.
19404         * fp-test.cc: Likewise.
19405         * function.cc (expand_function_end): Likewise.
19406         * function.h (struct function): Likewise.
19407         * fwprop.cc (should_replace_address): Likewise.
19408         * gcc-main.cc: Likewise.
19409         * gcc-rich-location.h (class gcc_rich_location): Likewise.
19410         * gcc-symtab.h: Likewise.
19411         * gcc.cc (MIN_FATAL_STATUS): Likewise.
19412         (driver_handle_option): Likewise.
19413         (quote_spec_arg): Likewise.
19414         (driver::finalize): Likewise.
19415         * gcc.h (set_input): Likewise.
19416         * gcov-dump.cc: Likewise.
19417         * gcov.cc (solve_flow_graph): Likewise.
19418         * gcse-common.cc: Likewise.
19419         * gcse.cc (make_pass_rtl_hoist): Likewise.
19420         * genattr-common.cc: Likewise.
19421         * genattrtab.cc (min_fn): Likewise.
19422         (write_const_num_delay_slots): Likewise.
19423         * genautomata.cc: Likewise.
19424         * genconditions.cc (write_one_condition): Likewise.
19425         * genconstants.cc: Likewise.
19426         * genemit.cc (gen_exp): Likewise.
19427         * generic-match-head.cc: Likewise.
19428         * genextract.cc: Likewise.
19429         * gengenrtl.cc (always_void_p): Likewise.
19430         * gengtype-parse.cc (gtymarker_opt): Likewise.
19431         * gengtype-state.cc (state_writer::state_writer): Likewise.
19432         (write_state_trailer): Likewise.
19433         (equals_type_number): Likewise.
19434         (read_state): Likewise.
19435         * gengtype.cc (open_base_files): Likewise.
19436         (struct file_rule_st): Likewise.
19437         (header_dot_h_frul): Likewise.
19438         * gengtype.h: Likewise.
19439         * genmatch.cc (main): Likewise.
19440         * genmddeps.cc: Likewise.
19441         * genmodes.cc (emit_mode_inner): Likewise.
19442         (emit_mode_unit_size): Likewise.
19443         * genpeep.cc (gen_peephole): Likewise.
19444         * genpreds.cc (write_tm_preds_h): Likewise.
19445         * genrecog.cc (validate_pattern): Likewise.
19446         (write_header): Likewise.
19447         (main): Likewise.
19448         * gensupport.cc (change_subst_attribute): Likewise.
19449         (traverse_c_tests): Likewise.
19450         (add_predicate): Likewise.
19451         (init_predicate_table): Likewise.
19452         * gensupport.h (struct optab_pattern): Likewise.
19453         (get_num_insn_codes): Likewise.
19454         (maybe_eval_c_test): Likewise.
19455         (struct pred_data): Likewise.
19456         * ggc-internal.h: Likewise.
19457         * gimple-fold.cc (maybe_fold_reference): Likewise.
19458         (get_range_strlen_tree): Likewise.
19459         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
19460         * gimple-low.cc: Likewise.
19461         * gimple-match-head.cc (directly_supported_p): Likewise.
19462         * gimple-pretty-print.h: Likewise.
19463         * gimple-ssa-sprintf.cc (format_percent): Likewise.
19464         (adjust_range_for_overflow): Likewise.
19465         * gimple-streamer.h: Likewise.
19466         * gimple.h (struct GTY): Likewise.
19467         (is_gimple_resx): Likewise.
19468         * gimplify.cc (gimplify_expr): Likewise.
19469         (gimplify_init_constructor): Likewise.
19470         (omp_construct_selector_matches): Likewise.
19471         (gimplify_omp_target_update): Likewise.
19472         (gimplify_omp_ordered): Likewise.
19473         (gimplify_va_arg_expr): Likewise.
19474         * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
19475         * haifa-sched.cc (increase_insn_priority): Likewise.
19476         (try_ready): Likewise.
19477         (sched_create_recovery_edges): Likewise.
19478         * ifcvt.cc (find_if_case_1): Likewise.
19479         (find_if_case_2): Likewise.
19480         * inchash.h: Likewise.
19481         * incpath.cc (add_env_var_paths): Likewise.
19482         * input.cc (dump_location_info): Likewise.
19483         (assert_loceq): Likewise.
19484         (test_lexer_string_locations_concatenation_1): Likewise.
19485         (test_lexer_string_locations_concatenation_2): Likewise.
19486         (test_lexer_string_locations_concatenation_3): Likewise.
19487         * input.h (BUILTINS_LOCATION): Likewise.
19488         (class string_concat_db): Likewise.
19489         * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
19490         (expand_LOOP_VECTORIZED): Likewise.
19491         * ipa-cp.cc (make_pass_ipa_cp): Likewise.
19492         * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
19493         (ipa_fn_summary_t::duplicate): Likewise.
19494         (make_pass_ipa_fn_summary): Likewise.
19495         * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
19496         * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
19497         (free_lang_data_in_decl): Likewise.
19498         * ipa-inline.cc (compute_inlined_call_time): Likewise.
19499         (inline_always_inline_functions): Likewise.
19500         * ipa-inline.h (free_growth_caches): Likewise.
19501         (inline_account_function_p): Likewise.
19502         * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
19503         (modref_eaf_analysis::analyze_ssa_name): Likewise.
19504         * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
19505         (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
19506         * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
19507         * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
19508         (unadjusted_ptr_and_unit_offset): Likewise.
19509         * ipa-reference.cc (make_pass_ipa_reference): Likewise.
19510         * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
19511         * ipa-split.cc (consider_split): Likewise.
19512         * ipa-sra.cc (isra_read_node_info): Likewise.
19513         * ipa-utils.h (struct ipa_dfs_info): Likewise.
19514         (recursive_call_p): Likewise.
19515         (ipa_make_function_pure): Likewise.
19516         * ira-build.cc (ira_create_allocno): Likewise.
19517         (ira_flattening): Likewise.
19518         * ira-color.cc (do_coloring): Likewise.
19519         (update_curr_costs): Likewise.
19520         * ira-conflicts.cc (process_regs_for_copy): Likewise.
19521         * ira-int.h (struct ira_emit_data): Likewise.
19522         (ira_prohibited_mode_move_regs): Likewise.
19523         (ira_get_dup_out_num): Likewise.
19524         (ira_destroy): Likewise.
19525         (ira_tune_allocno_costs): Likewise.
19526         (ira_implicitly_set_insn_hard_regs): Likewise.
19527         (ira_build_conflicts): Likewise.
19528         (ira_color): Likewise.
19529         * ira-lives.cc (process_bb_node_lives): Likewise.
19530         * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
19531         (setup_uniform_class_p): Likewise.
19532         (def_dominates_uses): Likewise.
19533         * ira.h (ira_nullify_asm_goto): Likewise.
19534         * langhooks.cc (lhd_post_options): Likewise.
19535         * langhooks.h (class substring_loc): Likewise.
19536         (struct lang_hooks_for_tree_inlining): Likewise.
19537         (struct lang_hooks_for_types): Likewise.
19538         (struct lang_hooks): Likewise.
19539         * libfuncs.h (synchronize_libfunc): Likewise.
19540         * loop-doloop.cc (doloop_condition_get): Likewise.
19541         * loop-init.cc (fix_loop_structure): Likewise.
19542         * loop-invariant.cc: Likewise.
19543         * lower-subreg.h: Likewise.
19544         * lra-constraints.cc (curr_insn_transform): Likewise.
19545         * lra-int.h (struct lra_insn_reg): Likewise.
19546         (lra_undo_inheritance): Likewise.
19547         (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
19548         (lra_split_hard_reg_for): Likewise.
19549         (lra_coalesce): Likewise.
19550         (lra_final_code_change): Likewise.
19551         * lra-spills.cc (lra_final_code_change): Likewise.
19552         * lra.cc (lra_process_new_insns): Likewise.
19553         * lto-compress.h (struct lto_compression_stream): Likewise.
19554         * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
19555         (write_symbol): Likewise.
19556         * lto-streamer.h (enum LTO_tags): Likewise.
19557         (lto_value_range_error): Likewise.
19558         (lto_append_block): Likewise.
19559         (lto_streamer_hooks_init): Likewise.
19560         (stream_read_tree_ref): Likewise.
19561         (lto_prepare_function_for_streaming): Likewise.
19562         (select_what_to_stream): Likewise.
19563         (omp_lto_input_declare_variant_alt): Likewise.
19564         (cl_optimization_stream_in): Likewise.
19565         * lto-wrapper.cc (append_compiler_options): Likewise.
19566         * machmode.def: Likewise.
19567         * machmode.h (struct int_n_data_t): Likewise.
19568         * main.cc (main): Likewise.
19569         * match.pd: Likewise.
19570         * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
19571         (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
19572         * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
19573         (make_pass_expand_omp_ssa): Likewise.
19574         * omp-low.cc (struct omp_context): Likewise.
19575         (struct omp_taskcopy_context): Likewise.
19576         (lower_omp): Likewise.
19577         * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
19578         (mask_name): Likewise.
19579         (omp_sese_dump_pars): Likewise.
19580         (worker_single_simple): Likewise.
19581         * omp-offload.cc (omp_finish_file): Likewise.
19582         (execute_oacc_loop_designation): Likewise.
19583         * optabs-query.cc (lshift_cheap_p): Likewise.
19584         * optc-gen.awk: Likewise.
19585         * optc-save-gen.awk: Likewise.
19586         * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
19587         * opts-common.cc: Likewise.
19588         * output.h (app_enable): Likewise.
19589         (output_operand_lossage): Likewise.
19590         (insn_current_reference_address): Likewise.
19591         (get_insn_template): Likewise.
19592         (output_quoted_string): Likewise.
19593         * pass_manager.h (struct register_pass_info): Likewise.
19594         * plugin.cc: Likewise.
19595         * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
19596         * plugin.h (invoke_plugin_callbacks): Likewise.
19597         * pointer-query.cc (handle_mem_ref): Likewise.
19598         * postreload-gcse.cc (alloc_mem): Likewise.
19599         * predict.h (enum prediction): Likewise.
19600         (add_reg_br_prob_note): Likewise.
19601         * prefix.h: Likewise.
19602         * profile.h (get_working_sets): Likewise.
19603         * read-md.cc: Likewise.
19604         * read-md.h (struct mapping): Likewise.
19605         (class md_reader): Likewise.
19606         (class noop_reader): Likewise.
19607         * read-rtl-function.cc (function_reader::create_function): Likewise.
19608         (function_reader::extra_parsing_for_operand_code_0): Likewise.
19609         * read-rtl.cc (initialize_iterators): Likewise.
19610         * real.cc: Likewise.
19611         * real.h (struct real_value): Likewise.
19612         (format_helper::format_helper): Likewise.
19613         (real_hash): Likewise.
19614         (real_can_shorten_arithmetic): Likewise.
19615         * recog.cc (struct target_recog): Likewise.
19616         (offsettable_nonstrict_memref_p): Likewise.
19617         (constrain_operands): Likewise.
19618         * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
19619         (which_op_alt): Likewise.
19620         (struct insn_gen_fn): Likewise.
19621         * reg-notes.def (REG_NOTE): Likewise.
19622         * reg-stack.cc: Likewise.
19623         * regs.h (reg_is_parm_p): Likewise.
19624         * regset.h: Likewise.
19625         * reload.cc (push_reload): Likewise.
19626         (find_reloads): Likewise.
19627         (find_reloads_address_1): Likewise.
19628         (find_replacement): Likewise.
19629         (refers_to_regno_for_reload_p): Likewise.
19630         (refers_to_mem_for_reload_p): Likewise.
19631         * reload.h (push_reload): Likewise.
19632         (deallocate_reload_reg): Likewise.
19633         * reload1.cc (emit_input_reload_insns): Likewise.
19634         * reorg.cc (relax_delay_slots): Likewise.
19635         * rtl.def (UNKNOWN): Likewise.
19636         (SEQUENCE): Likewise.
19637         (BARRIER): Likewise.
19638         (ASM_OPERANDS): Likewise.
19639         (EQ_ATTR_ALT): Likewise.
19640         * rtl.h (struct GTY): Likewise.
19641         (LABEL_NAME): Likewise.
19642         (LABEL_ALT_ENTRY_P): Likewise.
19643         (SUBREG_BYTE): Likewise.
19644         (get_stack_check_protect): Likewise.
19645         (dump_rtx_statistics): Likewise.
19646         (unwrap_const_vec_duplicate): Likewise.
19647         (subreg_promoted_mode): Likewise.
19648         (gen_lowpart_common): Likewise.
19649         (operand_subword): Likewise.
19650         (immed_wide_int_const): Likewise.
19651         (decide_function_section): Likewise.
19652         (active_insn_p): Likewise.
19653         (delete_related_insns): Likewise.
19654         (try_split): Likewise.
19655         (val_signbit_known_clear_p): Likewise.
19656         (simplifiable_subregs): Likewise.
19657         (set_insn_deleted): Likewise.
19658         (subreg_get_info): Likewise.
19659         (remove_free_EXPR_LIST_node): Likewise.
19660         (finish_subregs_of_mode): Likewise.
19661         (get_mem_attrs): Likewise.
19662         (lookup_constant_def): Likewise.
19663         (rtx_to_tree_code): Likewise.
19664         (hash_rtx): Likewise.
19665         (condjump_in_parallel_p): Likewise.
19666         (validate_subreg): Likewise.
19667         (make_compound_operation): Likewise.
19668         (schedule_ebbs): Likewise.
19669         (print_inline_rtx): Likewise.
19670         (fixup_args_size_notes): Likewise.
19671         (expand_dec): Likewise.
19672         (prepare_copy_insn): Likewise.
19673         (mark_elimination): Likewise.
19674         (valid_mode_changes_for_regno): Likewise.
19675         (make_debug_expr_from_rtl): Likewise.
19676         (delete_vta_debug_insns): Likewise.
19677         (simplify_using_condition): Likewise.
19678         (set_insn_locations): Likewise.
19679         (fatal_insn_not_found): Likewise.
19680         (word_register_operation_p): Likewise.
19681         * rtlanal.cc (get_call_fndecl): Likewise.
19682         (side_effects_p): Likewise.
19683         (subreg_nregs): Likewise.
19684         (rtx_cost): Likewise.
19685         (canonicalize_condition): Likewise.
19686         * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
19687         * run-rtl-passes.cc (run_rtl_passes): Likewise.
19688         * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
19689         * sched-deps.cc (add_dependence_1): Likewise.
19690         * sched-ebb.cc (begin_move_insn): Likewise.
19691         (add_deps_for_risky_insns): Likewise.
19692         (advance_target_bb): Likewise.
19693         * sched-int.h (reemit_notes): Likewise.
19694         (struct _haifa_insn_data): Likewise.
19695         (HID): Likewise.
19696         (DEP_CANCELLED): Likewise.
19697         (debug_ds): Likewise.
19698         (number_in_ready): Likewise.
19699         (schedule_ebbs_finish): Likewise.
19700         (find_modifiable_mems): Likewise.
19701         * sched-rgn.cc (debug_rgn_dependencies): Likewise.
19702         * sel-sched-dump.cc (dump_lv_set): Likewise.
19703         * sel-sched-dump.h: Likewise.
19704         * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
19705         (setup_id_reg_sets): Likewise.
19706         (has_dependence_p): Likewise.
19707         (sel_num_cfg_preds_gt_1): Likewise.
19708         (bb_ends_ebb_p): Likewise.
19709         * sel-sched-ir.h (struct _list_node): Likewise.
19710         (struct idata_def): Likewise.
19711         (bb_next_bb): Likewise.
19712         * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
19713         (choose_best_pseudo_reg): Likewise.
19714         (verify_target_availability): Likewise.
19715         (can_speculate_dep_p): Likewise.
19716         (sel_rank_for_schedule): Likewise.
19717         * selftest-run-tests.cc (selftest::run_tests): Likewise.
19718         * selftest.h (class auto_fix_quotes): Likewise.
19719         * shrink-wrap.cc (handle_simple_exit): Likewise.
19720         * shrink-wrap.h: Likewise.
19721         * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
19722         (simplify_context::simplify_gen_vec_select): Likewise.
19723         * spellcheck-tree.h: Likewise.
19724         * spellcheck.h: Likewise.
19725         * statistics.h (struct function): Likewise.
19726         * stmt.cc (conditional_probability): Likewise.
19727         * stmt.h: Likewise.
19728         * stor-layout.h: Likewise.
19729         * streamer-hooks.h: Likewise.
19730         * stringpool.h: Likewise.
19731         * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
19732         * target.def (HOOK_VECTOR_END): Likewise.
19733         (type.): Likewise.
19734         * target.h (union cumulative_args_t): Likewise.
19735         (by_pieces_ninsns): Likewise.
19736         (class predefined_function_abi): Likewise.
19737         * targhooks.cc (default_translate_mode_attribute): Likewise.
19738         * timevar.def: Likewise.
19739         * timevar.h (class timer): Likewise.
19740         * toplev.h (enable_rtl_dump_file): Likewise.
19741         * trans-mem.cc (collect_bb2reg): Likewise.
19742         * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
19743         * tree-cfg.cc (remove_bb): Likewise.
19744         (verify_gimple_debug): Likewise.
19745         (remove_edge_and_dominated_blocks): Likewise.
19746         (push_fndecl): Likewise.
19747         * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
19748         * tree-complex.cc (expand_complex_multiplication): Likewise.
19749         (expand_complex_div_straight): Likewise.
19750         * tree-core.h (enum tree_index): Likewise.
19751         (enum operand_equal_flag): Likewise.
19752         * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
19753         * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
19754         * tree-inline.cc (initialize_inlined_parameters): Likewise.
19755         * tree-inline.h (force_value_to_type): Likewise.
19756         * tree-nested.cc (get_chain_decl): Likewise.
19757         (walk_all_functions): Likewise.
19758         * tree-object-size.h: Likewise.
19759         * tree-outof-ssa.cc: Likewise.
19760         * tree-parloops.cc (create_parallel_loop): Likewise.
19761         * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
19762         (dump_generic_node): Likewise.
19763         * tree-profile.cc (tree_profiling): Likewise.
19764         * tree-sra.cc (maybe_add_sra_candidate): Likewise.
19765         * tree-ssa-address.cc: Likewise.
19766         * tree-ssa-alias.cc: Likewise.
19767         * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
19768         (dump_alias_stats): Likewise.
19769         * tree-ssa-ccp.cc: Likewise.
19770         * tree-ssa-coalesce.h: Likewise.
19771         * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
19772         * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
19773         * tree-ssa-loop-unswitch.cc: Likewise.
19774         * tree-ssa-math-opts.cc: Likewise.
19775         * tree-ssa-operands.cc (class operands_scanner): Likewise.
19776         * tree-ssa-pre.cc: Likewise.
19777         * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
19778         (debug_range_entry): Likewise.
19779         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
19780         * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
19781         * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
19782         (equal_mem_array_ref_p): Likewise.
19783         * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
19784         * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
19785         * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
19786         * tree-ssa-ter.h: Likewise.
19787         * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
19788         * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
19789         * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
19790         (write_ts_block_tree_pointers): Likewise.
19791         * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
19792         (streamer_read_tree_bitfields): Likewise.
19793         (streamer_write_integer_cst): Likewise.
19794         * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
19795         (vect_synth_mult_by_constant): Likewise.
19796         * tree-vect-stmts.cc (vectorizable_operation): Likewise.
19797         * tree-vectorizer.cc: Likewise.
19798         * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
19799         (vect_update_inits_of_drs): Likewise.
19800         (vect_get_mask_type_for_stmt): Likewise.
19801         (vect_rgroup_iv_might_wrap_p): Likewise.
19802         (cse_and_gimplify_to_preheader): Likewise.
19803         (vect_free_slp_tree): Likewise.
19804         (vect_pattern_recog): Likewise.
19805         (vect_stmt_dominates_stmt_p): Likewise.
19806         * tree.cc (initialize_tree_contains_struct): Likewise.
19807         (need_assembler_name_p): Likewise.
19808         (type_with_interoperable_signedness): Likewise.
19809         * tree.def (SWITCH_EXPR): Likewise.
19810         * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
19811         (poly_int_tree_p): Likewise.
19812         (inlined_function_outer_scope_p): Likewise.
19813         (tree_code_for_canonical_type_merging): Likewise.
19814         * value-prof.cc: Likewise.
19815         * value-prof.h (get_nth_most_common_value): Likewise.
19816         (find_func_by_profile_id): Likewise.
19817         * value-range.cc (vrp_operand_equal_p): Likewise.
19818         * value-range.h: Likewise.
19819         * var-tracking.cc: Likewise.
19820         * varasm.cc (default_function_section): Likewise.
19821         (function_section_1): Likewise.
19822         (assemble_variable): Likewise.
19823         (handle_vtv_comdat_section): Likewise.
19824         * vec.h (struct vec_prefix): Likewise.
19825         * vmsdbgout.cc (full_name): Likewise.
19826         * vtable-verify.cc: Likewise.
19827         * vtable-verify.h (struct vtv_graph_node): Likewise.
19828         * xcoffout.cc: Likewise.
19829         * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
19831 2022-01-17  Martin Liska  <mliska@suse.cz>
19833         * adjust-alignment.c: Moved to...
19834         * adjust-alignment.cc: ...here.
19835         * alias.c: Moved to...
19836         * alias.cc: ...here.
19837         * alloc-pool.c: Moved to...
19838         * alloc-pool.cc: ...here.
19839         * asan.c: Moved to...
19840         * asan.cc: ...here.
19841         * attribs.c: Moved to...
19842         * attribs.cc: ...here.
19843         * auto-inc-dec.c: Moved to...
19844         * auto-inc-dec.cc: ...here.
19845         * auto-profile.c: Moved to...
19846         * auto-profile.cc: ...here.
19847         * bb-reorder.c: Moved to...
19848         * bb-reorder.cc: ...here.
19849         * bitmap.c: Moved to...
19850         * bitmap.cc: ...here.
19851         * btfout.c: Moved to...
19852         * btfout.cc: ...here.
19853         * builtins.c: Moved to...
19854         * builtins.cc: ...here.
19855         * caller-save.c: Moved to...
19856         * caller-save.cc: ...here.
19857         * calls.c: Moved to...
19858         * calls.cc: ...here.
19859         * ccmp.c: Moved to...
19860         * ccmp.cc: ...here.
19861         * cfg.c: Moved to...
19862         * cfg.cc: ...here.
19863         * cfganal.c: Moved to...
19864         * cfganal.cc: ...here.
19865         * cfgbuild.c: Moved to...
19866         * cfgbuild.cc: ...here.
19867         * cfgcleanup.c: Moved to...
19868         * cfgcleanup.cc: ...here.
19869         * cfgexpand.c: Moved to...
19870         * cfgexpand.cc: ...here.
19871         * cfghooks.c: Moved to...
19872         * cfghooks.cc: ...here.
19873         * cfgloop.c: Moved to...
19874         * cfgloop.cc: ...here.
19875         * cfgloopanal.c: Moved to...
19876         * cfgloopanal.cc: ...here.
19877         * cfgloopmanip.c: Moved to...
19878         * cfgloopmanip.cc: ...here.
19879         * cfgrtl.c: Moved to...
19880         * cfgrtl.cc: ...here.
19881         * cgraph.c: Moved to...
19882         * cgraph.cc: ...here.
19883         * cgraphbuild.c: Moved to...
19884         * cgraphbuild.cc: ...here.
19885         * cgraphclones.c: Moved to...
19886         * cgraphclones.cc: ...here.
19887         * cgraphunit.c: Moved to...
19888         * cgraphunit.cc: ...here.
19889         * collect-utils.c: Moved to...
19890         * collect-utils.cc: ...here.
19891         * collect2-aix.c: Moved to...
19892         * collect2-aix.cc: ...here.
19893         * collect2.c: Moved to...
19894         * collect2.cc: ...here.
19895         * combine-stack-adj.c: Moved to...
19896         * combine-stack-adj.cc: ...here.
19897         * combine.c: Moved to...
19898         * combine.cc: ...here.
19899         * common/common-targhooks.c: Moved to...
19900         * common/common-targhooks.cc: ...here.
19901         * common/config/aarch64/aarch64-common.c: Moved to...
19902         * common/config/aarch64/aarch64-common.cc: ...here.
19903         * common/config/alpha/alpha-common.c: Moved to...
19904         * common/config/alpha/alpha-common.cc: ...here.
19905         * common/config/arc/arc-common.c: Moved to...
19906         * common/config/arc/arc-common.cc: ...here.
19907         * common/config/arm/arm-common.c: Moved to...
19908         * common/config/arm/arm-common.cc: ...here.
19909         * common/config/avr/avr-common.c: Moved to...
19910         * common/config/avr/avr-common.cc: ...here.
19911         * common/config/bfin/bfin-common.c: Moved to...
19912         * common/config/bfin/bfin-common.cc: ...here.
19913         * common/config/bpf/bpf-common.c: Moved to...
19914         * common/config/bpf/bpf-common.cc: ...here.
19915         * common/config/c6x/c6x-common.c: Moved to...
19916         * common/config/c6x/c6x-common.cc: ...here.
19917         * common/config/cr16/cr16-common.c: Moved to...
19918         * common/config/cr16/cr16-common.cc: ...here.
19919         * common/config/cris/cris-common.c: Moved to...
19920         * common/config/cris/cris-common.cc: ...here.
19921         * common/config/csky/csky-common.c: Moved to...
19922         * common/config/csky/csky-common.cc: ...here.
19923         * common/config/default-common.c: Moved to...
19924         * common/config/default-common.cc: ...here.
19925         * common/config/epiphany/epiphany-common.c: Moved to...
19926         * common/config/epiphany/epiphany-common.cc: ...here.
19927         * common/config/fr30/fr30-common.c: Moved to...
19928         * common/config/fr30/fr30-common.cc: ...here.
19929         * common/config/frv/frv-common.c: Moved to...
19930         * common/config/frv/frv-common.cc: ...here.
19931         * common/config/gcn/gcn-common.c: Moved to...
19932         * common/config/gcn/gcn-common.cc: ...here.
19933         * common/config/h8300/h8300-common.c: Moved to...
19934         * common/config/h8300/h8300-common.cc: ...here.
19935         * common/config/i386/i386-common.c: Moved to...
19936         * common/config/i386/i386-common.cc: ...here.
19937         * common/config/ia64/ia64-common.c: Moved to...
19938         * common/config/ia64/ia64-common.cc: ...here.
19939         * common/config/iq2000/iq2000-common.c: Moved to...
19940         * common/config/iq2000/iq2000-common.cc: ...here.
19941         * common/config/lm32/lm32-common.c: Moved to...
19942         * common/config/lm32/lm32-common.cc: ...here.
19943         * common/config/m32r/m32r-common.c: Moved to...
19944         * common/config/m32r/m32r-common.cc: ...here.
19945         * common/config/m68k/m68k-common.c: Moved to...
19946         * common/config/m68k/m68k-common.cc: ...here.
19947         * common/config/mcore/mcore-common.c: Moved to...
19948         * common/config/mcore/mcore-common.cc: ...here.
19949         * common/config/microblaze/microblaze-common.c: Moved to...
19950         * common/config/microblaze/microblaze-common.cc: ...here.
19951         * common/config/mips/mips-common.c: Moved to...
19952         * common/config/mips/mips-common.cc: ...here.
19953         * common/config/mmix/mmix-common.c: Moved to...
19954         * common/config/mmix/mmix-common.cc: ...here.
19955         * common/config/mn10300/mn10300-common.c: Moved to...
19956         * common/config/mn10300/mn10300-common.cc: ...here.
19957         * common/config/msp430/msp430-common.c: Moved to...
19958         * common/config/msp430/msp430-common.cc: ...here.
19959         * common/config/nds32/nds32-common.c: Moved to...
19960         * common/config/nds32/nds32-common.cc: ...here.
19961         * common/config/nios2/nios2-common.c: Moved to...
19962         * common/config/nios2/nios2-common.cc: ...here.
19963         * common/config/nvptx/nvptx-common.c: Moved to...
19964         * common/config/nvptx/nvptx-common.cc: ...here.
19965         * common/config/or1k/or1k-common.c: Moved to...
19966         * common/config/or1k/or1k-common.cc: ...here.
19967         * common/config/pa/pa-common.c: Moved to...
19968         * common/config/pa/pa-common.cc: ...here.
19969         * common/config/pdp11/pdp11-common.c: Moved to...
19970         * common/config/pdp11/pdp11-common.cc: ...here.
19971         * common/config/pru/pru-common.c: Moved to...
19972         * common/config/pru/pru-common.cc: ...here.
19973         * common/config/riscv/riscv-common.c: Moved to...
19974         * common/config/riscv/riscv-common.cc: ...here.
19975         * common/config/rs6000/rs6000-common.c: Moved to...
19976         * common/config/rs6000/rs6000-common.cc: ...here.
19977         * common/config/rx/rx-common.c: Moved to...
19978         * common/config/rx/rx-common.cc: ...here.
19979         * common/config/s390/s390-common.c: Moved to...
19980         * common/config/s390/s390-common.cc: ...here.
19981         * common/config/sh/sh-common.c: Moved to...
19982         * common/config/sh/sh-common.cc: ...here.
19983         * common/config/sparc/sparc-common.c: Moved to...
19984         * common/config/sparc/sparc-common.cc: ...here.
19985         * common/config/tilegx/tilegx-common.c: Moved to...
19986         * common/config/tilegx/tilegx-common.cc: ...here.
19987         * common/config/tilepro/tilepro-common.c: Moved to...
19988         * common/config/tilepro/tilepro-common.cc: ...here.
19989         * common/config/v850/v850-common.c: Moved to...
19990         * common/config/v850/v850-common.cc: ...here.
19991         * common/config/vax/vax-common.c: Moved to...
19992         * common/config/vax/vax-common.cc: ...here.
19993         * common/config/visium/visium-common.c: Moved to...
19994         * common/config/visium/visium-common.cc: ...here.
19995         * common/config/xstormy16/xstormy16-common.c: Moved to...
19996         * common/config/xstormy16/xstormy16-common.cc: ...here.
19997         * common/config/xtensa/xtensa-common.c: Moved to...
19998         * common/config/xtensa/xtensa-common.cc: ...here.
19999         * compare-elim.c: Moved to...
20000         * compare-elim.cc: ...here.
20001         * config/aarch64/aarch64-bti-insert.c: Moved to...
20002         * config/aarch64/aarch64-bti-insert.cc: ...here.
20003         * config/aarch64/aarch64-builtins.c: Moved to...
20004         * config/aarch64/aarch64-builtins.cc: ...here.
20005         * config/aarch64/aarch64-c.c: Moved to...
20006         * config/aarch64/aarch64-c.cc: ...here.
20007         * config/aarch64/aarch64-d.c: Moved to...
20008         * config/aarch64/aarch64-d.cc: ...here.
20009         * config/aarch64/aarch64.c: Moved to...
20010         * config/aarch64/aarch64.cc: ...here.
20011         * config/aarch64/cortex-a57-fma-steering.c: Moved to...
20012         * config/aarch64/cortex-a57-fma-steering.cc: ...here.
20013         * config/aarch64/driver-aarch64.c: Moved to...
20014         * config/aarch64/driver-aarch64.cc: ...here.
20015         * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
20016         * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
20017         * config/aarch64/host-aarch64-darwin.c: Moved to...
20018         * config/aarch64/host-aarch64-darwin.cc: ...here.
20019         * config/alpha/alpha.c: Moved to...
20020         * config/alpha/alpha.cc: ...here.
20021         * config/alpha/driver-alpha.c: Moved to...
20022         * config/alpha/driver-alpha.cc: ...here.
20023         * config/arc/arc-c.c: Moved to...
20024         * config/arc/arc-c.cc: ...here.
20025         * config/arc/arc.c: Moved to...
20026         * config/arc/arc.cc: ...here.
20027         * config/arc/driver-arc.c: Moved to...
20028         * config/arc/driver-arc.cc: ...here.
20029         * config/arm/aarch-common.c: Moved to...
20030         * config/arm/aarch-common.cc: ...here.
20031         * config/arm/arm-builtins.c: Moved to...
20032         * config/arm/arm-builtins.cc: ...here.
20033         * config/arm/arm-c.c: Moved to...
20034         * config/arm/arm-c.cc: ...here.
20035         * config/arm/arm-d.c: Moved to...
20036         * config/arm/arm-d.cc: ...here.
20037         * config/arm/arm.c: Moved to...
20038         * config/arm/arm.cc: ...here.
20039         * config/arm/driver-arm.c: Moved to...
20040         * config/arm/driver-arm.cc: ...here.
20041         * config/avr/avr-c.c: Moved to...
20042         * config/avr/avr-c.cc: ...here.
20043         * config/avr/avr-devices.c: Moved to...
20044         * config/avr/avr-devices.cc: ...here.
20045         * config/avr/avr-log.c: Moved to...
20046         * config/avr/avr-log.cc: ...here.
20047         * config/avr/avr.c: Moved to...
20048         * config/avr/avr.cc: ...here.
20049         * config/avr/driver-avr.c: Moved to...
20050         * config/avr/driver-avr.cc: ...here.
20051         * config/avr/gen-avr-mmcu-specs.c: Moved to...
20052         * config/avr/gen-avr-mmcu-specs.cc: ...here.
20053         * config/avr/gen-avr-mmcu-texi.c: Moved to...
20054         * config/avr/gen-avr-mmcu-texi.cc: ...here.
20055         * config/bfin/bfin.c: Moved to...
20056         * config/bfin/bfin.cc: ...here.
20057         * config/bpf/bpf.c: Moved to...
20058         * config/bpf/bpf.cc: ...here.
20059         * config/bpf/coreout.c: Moved to...
20060         * config/bpf/coreout.cc: ...here.
20061         * config/c6x/c6x.c: Moved to...
20062         * config/c6x/c6x.cc: ...here.
20063         * config/cr16/cr16.c: Moved to...
20064         * config/cr16/cr16.cc: ...here.
20065         * config/cris/cris.c: Moved to...
20066         * config/cris/cris.cc: ...here.
20067         * config/csky/csky.c: Moved to...
20068         * config/csky/csky.cc: ...here.
20069         * config/darwin-c.c: Moved to...
20070         * config/darwin-c.cc: ...here.
20071         * config/darwin-d.c: Moved to...
20072         * config/darwin-d.cc: ...here.
20073         * config/darwin-driver.c: Moved to...
20074         * config/darwin-driver.cc: ...here.
20075         * config/darwin-f.c: Moved to...
20076         * config/darwin-f.cc: ...here.
20077         * config/darwin.c: Moved to...
20078         * config/darwin.cc: ...here.
20079         * config/default-c.c: Moved to...
20080         * config/default-c.cc: ...here.
20081         * config/default-d.c: Moved to...
20082         * config/default-d.cc: ...here.
20083         * config/dragonfly-d.c: Moved to...
20084         * config/dragonfly-d.cc: ...here.
20085         * config/epiphany/epiphany.c: Moved to...
20086         * config/epiphany/epiphany.cc: ...here.
20087         * config/epiphany/mode-switch-use.c: Moved to...
20088         * config/epiphany/mode-switch-use.cc: ...here.
20089         * config/epiphany/resolve-sw-modes.c: Moved to...
20090         * config/epiphany/resolve-sw-modes.cc: ...here.
20091         * config/fr30/fr30.c: Moved to...
20092         * config/fr30/fr30.cc: ...here.
20093         * config/freebsd-d.c: Moved to...
20094         * config/freebsd-d.cc: ...here.
20095         * config/frv/frv.c: Moved to...
20096         * config/frv/frv.cc: ...here.
20097         * config/ft32/ft32.c: Moved to...
20098         * config/ft32/ft32.cc: ...here.
20099         * config/gcn/driver-gcn.c: Moved to...
20100         * config/gcn/driver-gcn.cc: ...here.
20101         * config/gcn/gcn-run.c: Moved to...
20102         * config/gcn/gcn-run.cc: ...here.
20103         * config/gcn/gcn-tree.c: Moved to...
20104         * config/gcn/gcn-tree.cc: ...here.
20105         * config/gcn/gcn.c: Moved to...
20106         * config/gcn/gcn.cc: ...here.
20107         * config/gcn/mkoffload.c: Moved to...
20108         * config/gcn/mkoffload.cc: ...here.
20109         * config/glibc-c.c: Moved to...
20110         * config/glibc-c.cc: ...here.
20111         * config/glibc-d.c: Moved to...
20112         * config/glibc-d.cc: ...here.
20113         * config/h8300/h8300.c: Moved to...
20114         * config/h8300/h8300.cc: ...here.
20115         * config/host-darwin.c: Moved to...
20116         * config/host-darwin.cc: ...here.
20117         * config/host-hpux.c: Moved to...
20118         * config/host-hpux.cc: ...here.
20119         * config/host-linux.c: Moved to...
20120         * config/host-linux.cc: ...here.
20121         * config/host-netbsd.c: Moved to...
20122         * config/host-netbsd.cc: ...here.
20123         * config/host-openbsd.c: Moved to...
20124         * config/host-openbsd.cc: ...here.
20125         * config/host-solaris.c: Moved to...
20126         * config/host-solaris.cc: ...here.
20127         * config/i386/djgpp.c: Moved to...
20128         * config/i386/djgpp.cc: ...here.
20129         * config/i386/driver-i386.c: Moved to...
20130         * config/i386/driver-i386.cc: ...here.
20131         * config/i386/driver-mingw32.c: Moved to...
20132         * config/i386/driver-mingw32.cc: ...here.
20133         * config/i386/gnu-property.c: Moved to...
20134         * config/i386/gnu-property.cc: ...here.
20135         * config/i386/host-cygwin.c: Moved to...
20136         * config/i386/host-cygwin.cc: ...here.
20137         * config/i386/host-i386-darwin.c: Moved to...
20138         * config/i386/host-i386-darwin.cc: ...here.
20139         * config/i386/host-mingw32.c: Moved to...
20140         * config/i386/host-mingw32.cc: ...here.
20141         * config/i386/i386-builtins.c: Moved to...
20142         * config/i386/i386-builtins.cc: ...here.
20143         * config/i386/i386-c.c: Moved to...
20144         * config/i386/i386-c.cc: ...here.
20145         * config/i386/i386-d.c: Moved to...
20146         * config/i386/i386-d.cc: ...here.
20147         * config/i386/i386-expand.c: Moved to...
20148         * config/i386/i386-expand.cc: ...here.
20149         * config/i386/i386-features.c: Moved to...
20150         * config/i386/i386-features.cc: ...here.
20151         * config/i386/i386-options.c: Moved to...
20152         * config/i386/i386-options.cc: ...here.
20153         * config/i386/i386.c: Moved to...
20154         * config/i386/i386.cc: ...here.
20155         * config/i386/intelmic-mkoffload.c: Moved to...
20156         * config/i386/intelmic-mkoffload.cc: ...here.
20157         * config/i386/msformat-c.c: Moved to...
20158         * config/i386/msformat-c.cc: ...here.
20159         * config/i386/winnt-cxx.c: Moved to...
20160         * config/i386/winnt-cxx.cc: ...here.
20161         * config/i386/winnt-d.c: Moved to...
20162         * config/i386/winnt-d.cc: ...here.
20163         * config/i386/winnt-stubs.c: Moved to...
20164         * config/i386/winnt-stubs.cc: ...here.
20165         * config/i386/winnt.c: Moved to...
20166         * config/i386/winnt.cc: ...here.
20167         * config/i386/x86-tune-sched-atom.c: Moved to...
20168         * config/i386/x86-tune-sched-atom.cc: ...here.
20169         * config/i386/x86-tune-sched-bd.c: Moved to...
20170         * config/i386/x86-tune-sched-bd.cc: ...here.
20171         * config/i386/x86-tune-sched-core.c: Moved to...
20172         * config/i386/x86-tune-sched-core.cc: ...here.
20173         * config/i386/x86-tune-sched.c: Moved to...
20174         * config/i386/x86-tune-sched.cc: ...here.
20175         * config/ia64/ia64-c.c: Moved to...
20176         * config/ia64/ia64-c.cc: ...here.
20177         * config/ia64/ia64.c: Moved to...
20178         * config/ia64/ia64.cc: ...here.
20179         * config/iq2000/iq2000.c: Moved to...
20180         * config/iq2000/iq2000.cc: ...here.
20181         * config/linux.c: Moved to...
20182         * config/linux.cc: ...here.
20183         * config/lm32/lm32.c: Moved to...
20184         * config/lm32/lm32.cc: ...here.
20185         * config/m32c/m32c-pragma.c: Moved to...
20186         * config/m32c/m32c-pragma.cc: ...here.
20187         * config/m32c/m32c.c: Moved to...
20188         * config/m32c/m32c.cc: ...here.
20189         * config/m32r/m32r.c: Moved to...
20190         * config/m32r/m32r.cc: ...here.
20191         * config/m68k/m68k.c: Moved to...
20192         * config/m68k/m68k.cc: ...here.
20193         * config/mcore/mcore.c: Moved to...
20194         * config/mcore/mcore.cc: ...here.
20195         * config/microblaze/microblaze-c.c: Moved to...
20196         * config/microblaze/microblaze-c.cc: ...here.
20197         * config/microblaze/microblaze.c: Moved to...
20198         * config/microblaze/microblaze.cc: ...here.
20199         * config/mips/driver-native.c: Moved to...
20200         * config/mips/driver-native.cc: ...here.
20201         * config/mips/frame-header-opt.c: Moved to...
20202         * config/mips/frame-header-opt.cc: ...here.
20203         * config/mips/mips-d.c: Moved to...
20204         * config/mips/mips-d.cc: ...here.
20205         * config/mips/mips.c: Moved to...
20206         * config/mips/mips.cc: ...here.
20207         * config/mmix/mmix.c: Moved to...
20208         * config/mmix/mmix.cc: ...here.
20209         * config/mn10300/mn10300.c: Moved to...
20210         * config/mn10300/mn10300.cc: ...here.
20211         * config/moxie/moxie.c: Moved to...
20212         * config/moxie/moxie.cc: ...here.
20213         * config/msp430/driver-msp430.c: Moved to...
20214         * config/msp430/driver-msp430.cc: ...here.
20215         * config/msp430/msp430-c.c: Moved to...
20216         * config/msp430/msp430-c.cc: ...here.
20217         * config/msp430/msp430-devices.c: Moved to...
20218         * config/msp430/msp430-devices.cc: ...here.
20219         * config/msp430/msp430.c: Moved to...
20220         * config/msp430/msp430.cc: ...here.
20221         * config/nds32/nds32-cost.c: Moved to...
20222         * config/nds32/nds32-cost.cc: ...here.
20223         * config/nds32/nds32-fp-as-gp.c: Moved to...
20224         * config/nds32/nds32-fp-as-gp.cc: ...here.
20225         * config/nds32/nds32-intrinsic.c: Moved to...
20226         * config/nds32/nds32-intrinsic.cc: ...here.
20227         * config/nds32/nds32-isr.c: Moved to...
20228         * config/nds32/nds32-isr.cc: ...here.
20229         * config/nds32/nds32-md-auxiliary.c: Moved to...
20230         * config/nds32/nds32-md-auxiliary.cc: ...here.
20231         * config/nds32/nds32-memory-manipulation.c: Moved to...
20232         * config/nds32/nds32-memory-manipulation.cc: ...here.
20233         * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
20234         * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
20235         * config/nds32/nds32-predicates.c: Moved to...
20236         * config/nds32/nds32-predicates.cc: ...here.
20237         * config/nds32/nds32-relax-opt.c: Moved to...
20238         * config/nds32/nds32-relax-opt.cc: ...here.
20239         * config/nds32/nds32-utils.c: Moved to...
20240         * config/nds32/nds32-utils.cc: ...here.
20241         * config/nds32/nds32.c: Moved to...
20242         * config/nds32/nds32.cc: ...here.
20243         * config/netbsd-d.c: Moved to...
20244         * config/netbsd-d.cc: ...here.
20245         * config/netbsd.c: Moved to...
20246         * config/netbsd.cc: ...here.
20247         * config/nios2/nios2.c: Moved to...
20248         * config/nios2/nios2.cc: ...here.
20249         * config/nvptx/mkoffload.c: Moved to...
20250         * config/nvptx/mkoffload.cc: ...here.
20251         * config/nvptx/nvptx-c.c: Moved to...
20252         * config/nvptx/nvptx-c.cc: ...here.
20253         * config/nvptx/nvptx.c: Moved to...
20254         * config/nvptx/nvptx.cc: ...here.
20255         * config/openbsd-d.c: Moved to...
20256         * config/openbsd-d.cc: ...here.
20257         * config/or1k/or1k.c: Moved to...
20258         * config/or1k/or1k.cc: ...here.
20259         * config/pa/pa-d.c: Moved to...
20260         * config/pa/pa-d.cc: ...here.
20261         * config/pa/pa.c: Moved to...
20262         * config/pa/pa.cc: ...here.
20263         * config/pdp11/pdp11.c: Moved to...
20264         * config/pdp11/pdp11.cc: ...here.
20265         * config/pru/pru-passes.c: Moved to...
20266         * config/pru/pru-passes.cc: ...here.
20267         * config/pru/pru-pragma.c: Moved to...
20268         * config/pru/pru-pragma.cc: ...here.
20269         * config/pru/pru.c: Moved to...
20270         * config/pru/pru.cc: ...here.
20271         * config/riscv/riscv-builtins.c: Moved to...
20272         * config/riscv/riscv-builtins.cc: ...here.
20273         * config/riscv/riscv-c.c: Moved to...
20274         * config/riscv/riscv-c.cc: ...here.
20275         * config/riscv/riscv-d.c: Moved to...
20276         * config/riscv/riscv-d.cc: ...here.
20277         * config/riscv/riscv-shorten-memrefs.c: Moved to...
20278         * config/riscv/riscv-shorten-memrefs.cc: ...here.
20279         * config/riscv/riscv-sr.c: Moved to...
20280         * config/riscv/riscv-sr.cc: ...here.
20281         * config/riscv/riscv.c: Moved to...
20282         * config/riscv/riscv.cc: ...here.
20283         * config/rl78/rl78-c.c: Moved to...
20284         * config/rl78/rl78-c.cc: ...here.
20285         * config/rl78/rl78.c: Moved to...
20286         * config/rl78/rl78.cc: ...here.
20287         * config/rs6000/driver-rs6000.c: Moved to...
20288         * config/rs6000/driver-rs6000.cc: ...here.
20289         * config/rs6000/host-darwin.c: Moved to...
20290         * config/rs6000/host-darwin.cc: ...here.
20291         * config/rs6000/host-ppc64-darwin.c: Moved to...
20292         * config/rs6000/host-ppc64-darwin.cc: ...here.
20293         * config/rs6000/rbtree.c: Moved to...
20294         * config/rs6000/rbtree.cc: ...here.
20295         * config/rs6000/rs6000-c.c: Moved to...
20296         * config/rs6000/rs6000-c.cc: ...here.
20297         * config/rs6000/rs6000-call.c: Moved to...
20298         * config/rs6000/rs6000-call.cc: ...here.
20299         * config/rs6000/rs6000-d.c: Moved to...
20300         * config/rs6000/rs6000-d.cc: ...here.
20301         * config/rs6000/rs6000-gen-builtins.c: Moved to...
20302         * config/rs6000/rs6000-gen-builtins.cc: ...here.
20303         * config/rs6000/rs6000-linux.c: Moved to...
20304         * config/rs6000/rs6000-linux.cc: ...here.
20305         * config/rs6000/rs6000-logue.c: Moved to...
20306         * config/rs6000/rs6000-logue.cc: ...here.
20307         * config/rs6000/rs6000-p8swap.c: Moved to...
20308         * config/rs6000/rs6000-p8swap.cc: ...here.
20309         * config/rs6000/rs6000-pcrel-opt.c: Moved to...
20310         * config/rs6000/rs6000-pcrel-opt.cc: ...here.
20311         * config/rs6000/rs6000-string.c: Moved to...
20312         * config/rs6000/rs6000-string.cc: ...here.
20313         * config/rs6000/rs6000.c: Moved to...
20314         * config/rs6000/rs6000.cc: ...here.
20315         * config/rx/rx.c: Moved to...
20316         * config/rx/rx.cc: ...here.
20317         * config/s390/driver-native.c: Moved to...
20318         * config/s390/driver-native.cc: ...here.
20319         * config/s390/s390-c.c: Moved to...
20320         * config/s390/s390-c.cc: ...here.
20321         * config/s390/s390-d.c: Moved to...
20322         * config/s390/s390-d.cc: ...here.
20323         * config/s390/s390.c: Moved to...
20324         * config/s390/s390.cc: ...here.
20325         * config/sh/divtab-sh4-300.c: Moved to...
20326         * config/sh/divtab-sh4-300.cc: ...here.
20327         * config/sh/divtab-sh4.c: Moved to...
20328         * config/sh/divtab-sh4.cc: ...here.
20329         * config/sh/divtab.c: Moved to...
20330         * config/sh/divtab.cc: ...here.
20331         * config/sh/sh-c.c: Moved to...
20332         * config/sh/sh-c.cc: ...here.
20333         * config/sh/sh.c: Moved to...
20334         * config/sh/sh.cc: ...here.
20335         * config/sol2-c.c: Moved to...
20336         * config/sol2-c.cc: ...here.
20337         * config/sol2-cxx.c: Moved to...
20338         * config/sol2-cxx.cc: ...here.
20339         * config/sol2-d.c: Moved to...
20340         * config/sol2-d.cc: ...here.
20341         * config/sol2-stubs.c: Moved to...
20342         * config/sol2-stubs.cc: ...here.
20343         * config/sol2.c: Moved to...
20344         * config/sol2.cc: ...here.
20345         * config/sparc/driver-sparc.c: Moved to...
20346         * config/sparc/driver-sparc.cc: ...here.
20347         * config/sparc/sparc-c.c: Moved to...
20348         * config/sparc/sparc-c.cc: ...here.
20349         * config/sparc/sparc-d.c: Moved to...
20350         * config/sparc/sparc-d.cc: ...here.
20351         * config/sparc/sparc.c: Moved to...
20352         * config/sparc/sparc.cc: ...here.
20353         * config/stormy16/stormy16.c: Moved to...
20354         * config/stormy16/stormy16.cc: ...here.
20355         * config/tilegx/mul-tables.c: Moved to...
20356         * config/tilegx/mul-tables.cc: ...here.
20357         * config/tilegx/tilegx-c.c: Moved to...
20358         * config/tilegx/tilegx-c.cc: ...here.
20359         * config/tilegx/tilegx.c: Moved to...
20360         * config/tilegx/tilegx.cc: ...here.
20361         * config/tilepro/mul-tables.c: Moved to...
20362         * config/tilepro/mul-tables.cc: ...here.
20363         * config/tilepro/tilepro-c.c: Moved to...
20364         * config/tilepro/tilepro-c.cc: ...here.
20365         * config/tilepro/tilepro.c: Moved to...
20366         * config/tilepro/tilepro.cc: ...here.
20367         * config/v850/v850-c.c: Moved to...
20368         * config/v850/v850-c.cc: ...here.
20369         * config/v850/v850.c: Moved to...
20370         * config/v850/v850.cc: ...here.
20371         * config/vax/vax.c: Moved to...
20372         * config/vax/vax.cc: ...here.
20373         * config/visium/visium.c: Moved to...
20374         * config/visium/visium.cc: ...here.
20375         * config/vms/vms-c.c: Moved to...
20376         * config/vms/vms-c.cc: ...here.
20377         * config/vms/vms-f.c: Moved to...
20378         * config/vms/vms-f.cc: ...here.
20379         * config/vms/vms.c: Moved to...
20380         * config/vms/vms.cc: ...here.
20381         * config/vxworks-c.c: Moved to...
20382         * config/vxworks-c.cc: ...here.
20383         * config/vxworks.c: Moved to...
20384         * config/vxworks.cc: ...here.
20385         * config/winnt-c.c: Moved to...
20386         * config/winnt-c.cc: ...here.
20387         * config/xtensa/xtensa.c: Moved to...
20388         * config/xtensa/xtensa.cc: ...here.
20389         * context.c: Moved to...
20390         * context.cc: ...here.
20391         * convert.c: Moved to...
20392         * convert.cc: ...here.
20393         * coverage.c: Moved to...
20394         * coverage.cc: ...here.
20395         * cppbuiltin.c: Moved to...
20396         * cppbuiltin.cc: ...here.
20397         * cppdefault.c: Moved to...
20398         * cppdefault.cc: ...here.
20399         * cprop.c: Moved to...
20400         * cprop.cc: ...here.
20401         * cse.c: Moved to...
20402         * cse.cc: ...here.
20403         * cselib.c: Moved to...
20404         * cselib.cc: ...here.
20405         * ctfc.c: Moved to...
20406         * ctfc.cc: ...here.
20407         * ctfout.c: Moved to...
20408         * ctfout.cc: ...here.
20409         * data-streamer-in.c: Moved to...
20410         * data-streamer-in.cc: ...here.
20411         * data-streamer-out.c: Moved to...
20412         * data-streamer-out.cc: ...here.
20413         * data-streamer.c: Moved to...
20414         * data-streamer.cc: ...here.
20415         * dbgcnt.c: Moved to...
20416         * dbgcnt.cc: ...here.
20417         * dbxout.c: Moved to...
20418         * dbxout.cc: ...here.
20419         * dce.c: Moved to...
20420         * dce.cc: ...here.
20421         * ddg.c: Moved to...
20422         * ddg.cc: ...here.
20423         * debug.c: Moved to...
20424         * debug.cc: ...here.
20425         * df-core.c: Moved to...
20426         * df-core.cc: ...here.
20427         * df-problems.c: Moved to...
20428         * df-problems.cc: ...here.
20429         * df-scan.c: Moved to...
20430         * df-scan.cc: ...here.
20431         * dfp.c: Moved to...
20432         * dfp.cc: ...here.
20433         * diagnostic-color.c: Moved to...
20434         * diagnostic-color.cc: ...here.
20435         * diagnostic-show-locus.c: Moved to...
20436         * diagnostic-show-locus.cc: ...here.
20437         * diagnostic-spec.c: Moved to...
20438         * diagnostic-spec.cc: ...here.
20439         * diagnostic.c: Moved to...
20440         * diagnostic.cc: ...here.
20441         * dojump.c: Moved to...
20442         * dojump.cc: ...here.
20443         * dominance.c: Moved to...
20444         * dominance.cc: ...here.
20445         * domwalk.c: Moved to...
20446         * domwalk.cc: ...here.
20447         * double-int.c: Moved to...
20448         * double-int.cc: ...here.
20449         * dse.c: Moved to...
20450         * dse.cc: ...here.
20451         * dumpfile.c: Moved to...
20452         * dumpfile.cc: ...here.
20453         * dwarf2asm.c: Moved to...
20454         * dwarf2asm.cc: ...here.
20455         * dwarf2cfi.c: Moved to...
20456         * dwarf2cfi.cc: ...here.
20457         * dwarf2ctf.c: Moved to...
20458         * dwarf2ctf.cc: ...here.
20459         * dwarf2out.c: Moved to...
20460         * dwarf2out.cc: ...here.
20461         * early-remat.c: Moved to...
20462         * early-remat.cc: ...here.
20463         * edit-context.c: Moved to...
20464         * edit-context.cc: ...here.
20465         * emit-rtl.c: Moved to...
20466         * emit-rtl.cc: ...here.
20467         * errors.c: Moved to...
20468         * errors.cc: ...here.
20469         * et-forest.c: Moved to...
20470         * et-forest.cc: ...here.
20471         * except.c: Moved to...
20472         * except.cc: ...here.
20473         * explow.c: Moved to...
20474         * explow.cc: ...here.
20475         * expmed.c: Moved to...
20476         * expmed.cc: ...here.
20477         * expr.c: Moved to...
20478         * expr.cc: ...here.
20479         * fibonacci_heap.c: Moved to...
20480         * fibonacci_heap.cc: ...here.
20481         * file-find.c: Moved to...
20482         * file-find.cc: ...here.
20483         * file-prefix-map.c: Moved to...
20484         * file-prefix-map.cc: ...here.
20485         * final.c: Moved to...
20486         * final.cc: ...here.
20487         * fixed-value.c: Moved to...
20488         * fixed-value.cc: ...here.
20489         * fold-const-call.c: Moved to...
20490         * fold-const-call.cc: ...here.
20491         * fold-const.c: Moved to...
20492         * fold-const.cc: ...here.
20493         * fp-test.c: Moved to...
20494         * fp-test.cc: ...here.
20495         * function-tests.c: Moved to...
20496         * function-tests.cc: ...here.
20497         * function.c: Moved to...
20498         * function.cc: ...here.
20499         * fwprop.c: Moved to...
20500         * fwprop.cc: ...here.
20501         * gcc-ar.c: Moved to...
20502         * gcc-ar.cc: ...here.
20503         * gcc-main.c: Moved to...
20504         * gcc-main.cc: ...here.
20505         * gcc-rich-location.c: Moved to...
20506         * gcc-rich-location.cc: ...here.
20507         * gcc.c: Moved to...
20508         * gcc.cc: ...here.
20509         * gcov-dump.c: Moved to...
20510         * gcov-dump.cc: ...here.
20511         * gcov-io.c: Moved to...
20512         * gcov-io.cc: ...here.
20513         * gcov-tool.c: Moved to...
20514         * gcov-tool.cc: ...here.
20515         * gcov.c: Moved to...
20516         * gcov.cc: ...here.
20517         * gcse-common.c: Moved to...
20518         * gcse-common.cc: ...here.
20519         * gcse.c: Moved to...
20520         * gcse.cc: ...here.
20521         * genattr-common.c: Moved to...
20522         * genattr-common.cc: ...here.
20523         * genattr.c: Moved to...
20524         * genattr.cc: ...here.
20525         * genattrtab.c: Moved to...
20526         * genattrtab.cc: ...here.
20527         * genautomata.c: Moved to...
20528         * genautomata.cc: ...here.
20529         * gencfn-macros.c: Moved to...
20530         * gencfn-macros.cc: ...here.
20531         * gencheck.c: Moved to...
20532         * gencheck.cc: ...here.
20533         * genchecksum.c: Moved to...
20534         * genchecksum.cc: ...here.
20535         * gencodes.c: Moved to...
20536         * gencodes.cc: ...here.
20537         * genconditions.c: Moved to...
20538         * genconditions.cc: ...here.
20539         * genconfig.c: Moved to...
20540         * genconfig.cc: ...here.
20541         * genconstants.c: Moved to...
20542         * genconstants.cc: ...here.
20543         * genemit.c: Moved to...
20544         * genemit.cc: ...here.
20545         * genenums.c: Moved to...
20546         * genenums.cc: ...here.
20547         * generic-match-head.c: Moved to...
20548         * generic-match-head.cc: ...here.
20549         * genextract.c: Moved to...
20550         * genextract.cc: ...here.
20551         * genflags.c: Moved to...
20552         * genflags.cc: ...here.
20553         * gengenrtl.c: Moved to...
20554         * gengenrtl.cc: ...here.
20555         * gengtype-parse.c: Moved to...
20556         * gengtype-parse.cc: ...here.
20557         * gengtype-state.c: Moved to...
20558         * gengtype-state.cc: ...here.
20559         * gengtype.c: Moved to...
20560         * gengtype.cc: ...here.
20561         * genhooks.c: Moved to...
20562         * genhooks.cc: ...here.
20563         * genmatch.c: Moved to...
20564         * genmatch.cc: ...here.
20565         * genmddeps.c: Moved to...
20566         * genmddeps.cc: ...here.
20567         * genmddump.c: Moved to...
20568         * genmddump.cc: ...here.
20569         * genmodes.c: Moved to...
20570         * genmodes.cc: ...here.
20571         * genopinit.c: Moved to...
20572         * genopinit.cc: ...here.
20573         * genoutput.c: Moved to...
20574         * genoutput.cc: ...here.
20575         * genpeep.c: Moved to...
20576         * genpeep.cc: ...here.
20577         * genpreds.c: Moved to...
20578         * genpreds.cc: ...here.
20579         * genrecog.c: Moved to...
20580         * genrecog.cc: ...here.
20581         * gensupport.c: Moved to...
20582         * gensupport.cc: ...here.
20583         * gentarget-def.c: Moved to...
20584         * gentarget-def.cc: ...here.
20585         * genversion.c: Moved to...
20586         * genversion.cc: ...here.
20587         * ggc-common.c: Moved to...
20588         * ggc-common.cc: ...here.
20589         * ggc-none.c: Moved to...
20590         * ggc-none.cc: ...here.
20591         * ggc-page.c: Moved to...
20592         * ggc-page.cc: ...here.
20593         * ggc-tests.c: Moved to...
20594         * ggc-tests.cc: ...here.
20595         * gimple-builder.c: Moved to...
20596         * gimple-builder.cc: ...here.
20597         * gimple-expr.c: Moved to...
20598         * gimple-expr.cc: ...here.
20599         * gimple-fold.c: Moved to...
20600         * gimple-fold.cc: ...here.
20601         * gimple-iterator.c: Moved to...
20602         * gimple-iterator.cc: ...here.
20603         * gimple-laddress.c: Moved to...
20604         * gimple-laddress.cc: ...here.
20605         * gimple-loop-jam.c: Moved to...
20606         * gimple-loop-jam.cc: ...here.
20607         * gimple-low.c: Moved to...
20608         * gimple-low.cc: ...here.
20609         * gimple-match-head.c: Moved to...
20610         * gimple-match-head.cc: ...here.
20611         * gimple-pretty-print.c: Moved to...
20612         * gimple-pretty-print.cc: ...here.
20613         * gimple-ssa-backprop.c: Moved to...
20614         * gimple-ssa-backprop.cc: ...here.
20615         * gimple-ssa-evrp-analyze.c: Moved to...
20616         * gimple-ssa-evrp-analyze.cc: ...here.
20617         * gimple-ssa-evrp.c: Moved to...
20618         * gimple-ssa-evrp.cc: ...here.
20619         * gimple-ssa-isolate-paths.c: Moved to...
20620         * gimple-ssa-isolate-paths.cc: ...here.
20621         * gimple-ssa-nonnull-compare.c: Moved to...
20622         * gimple-ssa-nonnull-compare.cc: ...here.
20623         * gimple-ssa-split-paths.c: Moved to...
20624         * gimple-ssa-split-paths.cc: ...here.
20625         * gimple-ssa-sprintf.c: Moved to...
20626         * gimple-ssa-sprintf.cc: ...here.
20627         * gimple-ssa-store-merging.c: Moved to...
20628         * gimple-ssa-store-merging.cc: ...here.
20629         * gimple-ssa-strength-reduction.c: Moved to...
20630         * gimple-ssa-strength-reduction.cc: ...here.
20631         * gimple-ssa-warn-alloca.c: Moved to...
20632         * gimple-ssa-warn-alloca.cc: ...here.
20633         * gimple-ssa-warn-restrict.c: Moved to...
20634         * gimple-ssa-warn-restrict.cc: ...here.
20635         * gimple-streamer-in.c: Moved to...
20636         * gimple-streamer-in.cc: ...here.
20637         * gimple-streamer-out.c: Moved to...
20638         * gimple-streamer-out.cc: ...here.
20639         * gimple-walk.c: Moved to...
20640         * gimple-walk.cc: ...here.
20641         * gimple-warn-recursion.c: Moved to...
20642         * gimple-warn-recursion.cc: ...here.
20643         * gimple.c: Moved to...
20644         * gimple.cc: ...here.
20645         * gimplify-me.c: Moved to...
20646         * gimplify-me.cc: ...here.
20647         * gimplify.c: Moved to...
20648         * gimplify.cc: ...here.
20649         * godump.c: Moved to...
20650         * godump.cc: ...here.
20651         * graph.c: Moved to...
20652         * graph.cc: ...here.
20653         * graphds.c: Moved to...
20654         * graphds.cc: ...here.
20655         * graphite-dependences.c: Moved to...
20656         * graphite-dependences.cc: ...here.
20657         * graphite-isl-ast-to-gimple.c: Moved to...
20658         * graphite-isl-ast-to-gimple.cc: ...here.
20659         * graphite-optimize-isl.c: Moved to...
20660         * graphite-optimize-isl.cc: ...here.
20661         * graphite-poly.c: Moved to...
20662         * graphite-poly.cc: ...here.
20663         * graphite-scop-detection.c: Moved to...
20664         * graphite-scop-detection.cc: ...here.
20665         * graphite-sese-to-poly.c: Moved to...
20666         * graphite-sese-to-poly.cc: ...here.
20667         * graphite.c: Moved to...
20668         * graphite.cc: ...here.
20669         * haifa-sched.c: Moved to...
20670         * haifa-sched.cc: ...here.
20671         * hash-map-tests.c: Moved to...
20672         * hash-map-tests.cc: ...here.
20673         * hash-set-tests.c: Moved to...
20674         * hash-set-tests.cc: ...here.
20675         * hash-table.c: Moved to...
20676         * hash-table.cc: ...here.
20677         * hooks.c: Moved to...
20678         * hooks.cc: ...here.
20679         * host-default.c: Moved to...
20680         * host-default.cc: ...here.
20681         * hw-doloop.c: Moved to...
20682         * hw-doloop.cc: ...here.
20683         * hwint.c: Moved to...
20684         * hwint.cc: ...here.
20685         * ifcvt.c: Moved to...
20686         * ifcvt.cc: ...here.
20687         * inchash.c: Moved to...
20688         * inchash.cc: ...here.
20689         * incpath.c: Moved to...
20690         * incpath.cc: ...here.
20691         * init-regs.c: Moved to...
20692         * init-regs.cc: ...here.
20693         * input.c: Moved to...
20694         * input.cc: ...here.
20695         * internal-fn.c: Moved to...
20696         * internal-fn.cc: ...here.
20697         * intl.c: Moved to...
20698         * intl.cc: ...here.
20699         * ipa-comdats.c: Moved to...
20700         * ipa-comdats.cc: ...here.
20701         * ipa-cp.c: Moved to...
20702         * ipa-cp.cc: ...here.
20703         * ipa-devirt.c: Moved to...
20704         * ipa-devirt.cc: ...here.
20705         * ipa-fnsummary.c: Moved to...
20706         * ipa-fnsummary.cc: ...here.
20707         * ipa-icf-gimple.c: Moved to...
20708         * ipa-icf-gimple.cc: ...here.
20709         * ipa-icf.c: Moved to...
20710         * ipa-icf.cc: ...here.
20711         * ipa-inline-analysis.c: Moved to...
20712         * ipa-inline-analysis.cc: ...here.
20713         * ipa-inline-transform.c: Moved to...
20714         * ipa-inline-transform.cc: ...here.
20715         * ipa-inline.c: Moved to...
20716         * ipa-inline.cc: ...here.
20717         * ipa-modref-tree.c: Moved to...
20718         * ipa-modref-tree.cc: ...here.
20719         * ipa-modref.c: Moved to...
20720         * ipa-modref.cc: ...here.
20721         * ipa-param-manipulation.c: Moved to...
20722         * ipa-param-manipulation.cc: ...here.
20723         * ipa-polymorphic-call.c: Moved to...
20724         * ipa-polymorphic-call.cc: ...here.
20725         * ipa-predicate.c: Moved to...
20726         * ipa-predicate.cc: ...here.
20727         * ipa-profile.c: Moved to...
20728         * ipa-profile.cc: ...here.
20729         * ipa-prop.c: Moved to...
20730         * ipa-prop.cc: ...here.
20731         * ipa-pure-const.c: Moved to...
20732         * ipa-pure-const.cc: ...here.
20733         * ipa-ref.c: Moved to...
20734         * ipa-ref.cc: ...here.
20735         * ipa-reference.c: Moved to...
20736         * ipa-reference.cc: ...here.
20737         * ipa-split.c: Moved to...
20738         * ipa-split.cc: ...here.
20739         * ipa-sra.c: Moved to...
20740         * ipa-sra.cc: ...here.
20741         * ipa-utils.c: Moved to...
20742         * ipa-utils.cc: ...here.
20743         * ipa-visibility.c: Moved to...
20744         * ipa-visibility.cc: ...here.
20745         * ipa.c: Moved to...
20746         * ipa.cc: ...here.
20747         * ira-build.c: Moved to...
20748         * ira-build.cc: ...here.
20749         * ira-color.c: Moved to...
20750         * ira-color.cc: ...here.
20751         * ira-conflicts.c: Moved to...
20752         * ira-conflicts.cc: ...here.
20753         * ira-costs.c: Moved to...
20754         * ira-costs.cc: ...here.
20755         * ira-emit.c: Moved to...
20756         * ira-emit.cc: ...here.
20757         * ira-lives.c: Moved to...
20758         * ira-lives.cc: ...here.
20759         * ira.c: Moved to...
20760         * ira.cc: ...here.
20761         * jump.c: Moved to...
20762         * jump.cc: ...here.
20763         * langhooks.c: Moved to...
20764         * langhooks.cc: ...here.
20765         * lcm.c: Moved to...
20766         * lcm.cc: ...here.
20767         * lists.c: Moved to...
20768         * lists.cc: ...here.
20769         * loop-doloop.c: Moved to...
20770         * loop-doloop.cc: ...here.
20771         * loop-init.c: Moved to...
20772         * loop-init.cc: ...here.
20773         * loop-invariant.c: Moved to...
20774         * loop-invariant.cc: ...here.
20775         * loop-iv.c: Moved to...
20776         * loop-iv.cc: ...here.
20777         * loop-unroll.c: Moved to...
20778         * loop-unroll.cc: ...here.
20779         * lower-subreg.c: Moved to...
20780         * lower-subreg.cc: ...here.
20781         * lra-assigns.c: Moved to...
20782         * lra-assigns.cc: ...here.
20783         * lra-coalesce.c: Moved to...
20784         * lra-coalesce.cc: ...here.
20785         * lra-constraints.c: Moved to...
20786         * lra-constraints.cc: ...here.
20787         * lra-eliminations.c: Moved to...
20788         * lra-eliminations.cc: ...here.
20789         * lra-lives.c: Moved to...
20790         * lra-lives.cc: ...here.
20791         * lra-remat.c: Moved to...
20792         * lra-remat.cc: ...here.
20793         * lra-spills.c: Moved to...
20794         * lra-spills.cc: ...here.
20795         * lra.c: Moved to...
20796         * lra.cc: ...here.
20797         * lto-cgraph.c: Moved to...
20798         * lto-cgraph.cc: ...here.
20799         * lto-compress.c: Moved to...
20800         * lto-compress.cc: ...here.
20801         * lto-opts.c: Moved to...
20802         * lto-opts.cc: ...here.
20803         * lto-section-in.c: Moved to...
20804         * lto-section-in.cc: ...here.
20805         * lto-section-out.c: Moved to...
20806         * lto-section-out.cc: ...here.
20807         * lto-streamer-in.c: Moved to...
20808         * lto-streamer-in.cc: ...here.
20809         * lto-streamer-out.c: Moved to...
20810         * lto-streamer-out.cc: ...here.
20811         * lto-streamer.c: Moved to...
20812         * lto-streamer.cc: ...here.
20813         * lto-wrapper.c: Moved to...
20814         * lto-wrapper.cc: ...here.
20815         * main.c: Moved to...
20816         * main.cc: ...here.
20817         * mcf.c: Moved to...
20818         * mcf.cc: ...here.
20819         * mode-switching.c: Moved to...
20820         * mode-switching.cc: ...here.
20821         * modulo-sched.c: Moved to...
20822         * modulo-sched.cc: ...here.
20823         * multiple_target.c: Moved to...
20824         * multiple_target.cc: ...here.
20825         * omp-expand.c: Moved to...
20826         * omp-expand.cc: ...here.
20827         * omp-general.c: Moved to...
20828         * omp-general.cc: ...here.
20829         * omp-low.c: Moved to...
20830         * omp-low.cc: ...here.
20831         * omp-offload.c: Moved to...
20832         * omp-offload.cc: ...here.
20833         * omp-simd-clone.c: Moved to...
20834         * omp-simd-clone.cc: ...here.
20835         * opt-suggestions.c: Moved to...
20836         * opt-suggestions.cc: ...here.
20837         * optabs-libfuncs.c: Moved to...
20838         * optabs-libfuncs.cc: ...here.
20839         * optabs-query.c: Moved to...
20840         * optabs-query.cc: ...here.
20841         * optabs-tree.c: Moved to...
20842         * optabs-tree.cc: ...here.
20843         * optabs.c: Moved to...
20844         * optabs.cc: ...here.
20845         * opts-common.c: Moved to...
20846         * opts-common.cc: ...here.
20847         * opts-global.c: Moved to...
20848         * opts-global.cc: ...here.
20849         * opts.c: Moved to...
20850         * opts.cc: ...here.
20851         * passes.c: Moved to...
20852         * passes.cc: ...here.
20853         * plugin.c: Moved to...
20854         * plugin.cc: ...here.
20855         * postreload-gcse.c: Moved to...
20856         * postreload-gcse.cc: ...here.
20857         * postreload.c: Moved to...
20858         * postreload.cc: ...here.
20859         * predict.c: Moved to...
20860         * predict.cc: ...here.
20861         * prefix.c: Moved to...
20862         * prefix.cc: ...here.
20863         * pretty-print.c: Moved to...
20864         * pretty-print.cc: ...here.
20865         * print-rtl-function.c: Moved to...
20866         * print-rtl-function.cc: ...here.
20867         * print-rtl.c: Moved to...
20868         * print-rtl.cc: ...here.
20869         * print-tree.c: Moved to...
20870         * print-tree.cc: ...here.
20871         * profile-count.c: Moved to...
20872         * profile-count.cc: ...here.
20873         * profile.c: Moved to...
20874         * profile.cc: ...here.
20875         * read-md.c: Moved to...
20876         * read-md.cc: ...here.
20877         * read-rtl-function.c: Moved to...
20878         * read-rtl-function.cc: ...here.
20879         * read-rtl.c: Moved to...
20880         * read-rtl.cc: ...here.
20881         * real.c: Moved to...
20882         * real.cc: ...here.
20883         * realmpfr.c: Moved to...
20884         * realmpfr.cc: ...here.
20885         * recog.c: Moved to...
20886         * recog.cc: ...here.
20887         * ree.c: Moved to...
20888         * ree.cc: ...here.
20889         * reg-stack.c: Moved to...
20890         * reg-stack.cc: ...here.
20891         * regcprop.c: Moved to...
20892         * regcprop.cc: ...here.
20893         * reginfo.c: Moved to...
20894         * reginfo.cc: ...here.
20895         * regrename.c: Moved to...
20896         * regrename.cc: ...here.
20897         * regstat.c: Moved to...
20898         * regstat.cc: ...here.
20899         * reload.c: Moved to...
20900         * reload.cc: ...here.
20901         * reload1.c: Moved to...
20902         * reload1.cc: ...here.
20903         * reorg.c: Moved to...
20904         * reorg.cc: ...here.
20905         * resource.c: Moved to...
20906         * resource.cc: ...here.
20907         * rtl-error.c: Moved to...
20908         * rtl-error.cc: ...here.
20909         * rtl-tests.c: Moved to...
20910         * rtl-tests.cc: ...here.
20911         * rtl.c: Moved to...
20912         * rtl.cc: ...here.
20913         * rtlanal.c: Moved to...
20914         * rtlanal.cc: ...here.
20915         * rtlhash.c: Moved to...
20916         * rtlhash.cc: ...here.
20917         * rtlhooks.c: Moved to...
20918         * rtlhooks.cc: ...here.
20919         * rtx-vector-builder.c: Moved to...
20920         * rtx-vector-builder.cc: ...here.
20921         * run-rtl-passes.c: Moved to...
20922         * run-rtl-passes.cc: ...here.
20923         * sancov.c: Moved to...
20924         * sancov.cc: ...here.
20925         * sanopt.c: Moved to...
20926         * sanopt.cc: ...here.
20927         * sbitmap.c: Moved to...
20928         * sbitmap.cc: ...here.
20929         * sched-deps.c: Moved to...
20930         * sched-deps.cc: ...here.
20931         * sched-ebb.c: Moved to...
20932         * sched-ebb.cc: ...here.
20933         * sched-rgn.c: Moved to...
20934         * sched-rgn.cc: ...here.
20935         * sel-sched-dump.c: Moved to...
20936         * sel-sched-dump.cc: ...here.
20937         * sel-sched-ir.c: Moved to...
20938         * sel-sched-ir.cc: ...here.
20939         * sel-sched.c: Moved to...
20940         * sel-sched.cc: ...here.
20941         * selftest-diagnostic.c: Moved to...
20942         * selftest-diagnostic.cc: ...here.
20943         * selftest-rtl.c: Moved to...
20944         * selftest-rtl.cc: ...here.
20945         * selftest-run-tests.c: Moved to...
20946         * selftest-run-tests.cc: ...here.
20947         * selftest.c: Moved to...
20948         * selftest.cc: ...here.
20949         * sese.c: Moved to...
20950         * sese.cc: ...here.
20951         * shrink-wrap.c: Moved to...
20952         * shrink-wrap.cc: ...here.
20953         * simplify-rtx.c: Moved to...
20954         * simplify-rtx.cc: ...here.
20955         * sparseset.c: Moved to...
20956         * sparseset.cc: ...here.
20957         * spellcheck-tree.c: Moved to...
20958         * spellcheck-tree.cc: ...here.
20959         * spellcheck.c: Moved to...
20960         * spellcheck.cc: ...here.
20961         * sreal.c: Moved to...
20962         * sreal.cc: ...here.
20963         * stack-ptr-mod.c: Moved to...
20964         * stack-ptr-mod.cc: ...here.
20965         * statistics.c: Moved to...
20966         * statistics.cc: ...here.
20967         * stmt.c: Moved to...
20968         * stmt.cc: ...here.
20969         * stor-layout.c: Moved to...
20970         * stor-layout.cc: ...here.
20971         * store-motion.c: Moved to...
20972         * store-motion.cc: ...here.
20973         * streamer-hooks.c: Moved to...
20974         * streamer-hooks.cc: ...here.
20975         * stringpool.c: Moved to...
20976         * stringpool.cc: ...here.
20977         * substring-locations.c: Moved to...
20978         * substring-locations.cc: ...here.
20979         * symtab.c: Moved to...
20980         * symtab.cc: ...here.
20981         * target-globals.c: Moved to...
20982         * target-globals.cc: ...here.
20983         * targhooks.c: Moved to...
20984         * targhooks.cc: ...here.
20985         * timevar.c: Moved to...
20986         * timevar.cc: ...here.
20987         * toplev.c: Moved to...
20988         * toplev.cc: ...here.
20989         * tracer.c: Moved to...
20990         * tracer.cc: ...here.
20991         * trans-mem.c: Moved to...
20992         * trans-mem.cc: ...here.
20993         * tree-affine.c: Moved to...
20994         * tree-affine.cc: ...here.
20995         * tree-call-cdce.c: Moved to...
20996         * tree-call-cdce.cc: ...here.
20997         * tree-cfg.c: Moved to...
20998         * tree-cfg.cc: ...here.
20999         * tree-cfgcleanup.c: Moved to...
21000         * tree-cfgcleanup.cc: ...here.
21001         * tree-chrec.c: Moved to...
21002         * tree-chrec.cc: ...here.
21003         * tree-complex.c: Moved to...
21004         * tree-complex.cc: ...here.
21005         * tree-data-ref.c: Moved to...
21006         * tree-data-ref.cc: ...here.
21007         * tree-dfa.c: Moved to...
21008         * tree-dfa.cc: ...here.
21009         * tree-diagnostic.c: Moved to...
21010         * tree-diagnostic.cc: ...here.
21011         * tree-dump.c: Moved to...
21012         * tree-dump.cc: ...here.
21013         * tree-eh.c: Moved to...
21014         * tree-eh.cc: ...here.
21015         * tree-emutls.c: Moved to...
21016         * tree-emutls.cc: ...here.
21017         * tree-if-conv.c: Moved to...
21018         * tree-if-conv.cc: ...here.
21019         * tree-inline.c: Moved to...
21020         * tree-inline.cc: ...here.
21021         * tree-into-ssa.c: Moved to...
21022         * tree-into-ssa.cc: ...here.
21023         * tree-iterator.c: Moved to...
21024         * tree-iterator.cc: ...here.
21025         * tree-loop-distribution.c: Moved to...
21026         * tree-loop-distribution.cc: ...here.
21027         * tree-nested.c: Moved to...
21028         * tree-nested.cc: ...here.
21029         * tree-nrv.c: Moved to...
21030         * tree-nrv.cc: ...here.
21031         * tree-object-size.c: Moved to...
21032         * tree-object-size.cc: ...here.
21033         * tree-outof-ssa.c: Moved to...
21034         * tree-outof-ssa.cc: ...here.
21035         * tree-parloops.c: Moved to...
21036         * tree-parloops.cc: ...here.
21037         * tree-phinodes.c: Moved to...
21038         * tree-phinodes.cc: ...here.
21039         * tree-predcom.c: Moved to...
21040         * tree-predcom.cc: ...here.
21041         * tree-pretty-print.c: Moved to...
21042         * tree-pretty-print.cc: ...here.
21043         * tree-profile.c: Moved to...
21044         * tree-profile.cc: ...here.
21045         * tree-scalar-evolution.c: Moved to...
21046         * tree-scalar-evolution.cc: ...here.
21047         * tree-sra.c: Moved to...
21048         * tree-sra.cc: ...here.
21049         * tree-ssa-address.c: Moved to...
21050         * tree-ssa-address.cc: ...here.
21051         * tree-ssa-alias.c: Moved to...
21052         * tree-ssa-alias.cc: ...here.
21053         * tree-ssa-ccp.c: Moved to...
21054         * tree-ssa-ccp.cc: ...here.
21055         * tree-ssa-coalesce.c: Moved to...
21056         * tree-ssa-coalesce.cc: ...here.
21057         * tree-ssa-copy.c: Moved to...
21058         * tree-ssa-copy.cc: ...here.
21059         * tree-ssa-dce.c: Moved to...
21060         * tree-ssa-dce.cc: ...here.
21061         * tree-ssa-dom.c: Moved to...
21062         * tree-ssa-dom.cc: ...here.
21063         * tree-ssa-dse.c: Moved to...
21064         * tree-ssa-dse.cc: ...here.
21065         * tree-ssa-forwprop.c: Moved to...
21066         * tree-ssa-forwprop.cc: ...here.
21067         * tree-ssa-ifcombine.c: Moved to...
21068         * tree-ssa-ifcombine.cc: ...here.
21069         * tree-ssa-live.c: Moved to...
21070         * tree-ssa-live.cc: ...here.
21071         * tree-ssa-loop-ch.c: Moved to...
21072         * tree-ssa-loop-ch.cc: ...here.
21073         * tree-ssa-loop-im.c: Moved to...
21074         * tree-ssa-loop-im.cc: ...here.
21075         * tree-ssa-loop-ivcanon.c: Moved to...
21076         * tree-ssa-loop-ivcanon.cc: ...here.
21077         * tree-ssa-loop-ivopts.c: Moved to...
21078         * tree-ssa-loop-ivopts.cc: ...here.
21079         * tree-ssa-loop-manip.c: Moved to...
21080         * tree-ssa-loop-manip.cc: ...here.
21081         * tree-ssa-loop-niter.c: Moved to...
21082         * tree-ssa-loop-niter.cc: ...here.
21083         * tree-ssa-loop-prefetch.c: Moved to...
21084         * tree-ssa-loop-prefetch.cc: ...here.
21085         * tree-ssa-loop-split.c: Moved to...
21086         * tree-ssa-loop-split.cc: ...here.
21087         * tree-ssa-loop-unswitch.c: Moved to...
21088         * tree-ssa-loop-unswitch.cc: ...here.
21089         * tree-ssa-loop.c: Moved to...
21090         * tree-ssa-loop.cc: ...here.
21091         * tree-ssa-math-opts.c: Moved to...
21092         * tree-ssa-math-opts.cc: ...here.
21093         * tree-ssa-operands.c: Moved to...
21094         * tree-ssa-operands.cc: ...here.
21095         * tree-ssa-phiopt.c: Moved to...
21096         * tree-ssa-phiopt.cc: ...here.
21097         * tree-ssa-phiprop.c: Moved to...
21098         * tree-ssa-phiprop.cc: ...here.
21099         * tree-ssa-pre.c: Moved to...
21100         * tree-ssa-pre.cc: ...here.
21101         * tree-ssa-propagate.c: Moved to...
21102         * tree-ssa-propagate.cc: ...here.
21103         * tree-ssa-reassoc.c: Moved to...
21104         * tree-ssa-reassoc.cc: ...here.
21105         * tree-ssa-sccvn.c: Moved to...
21106         * tree-ssa-sccvn.cc: ...here.
21107         * tree-ssa-scopedtables.c: Moved to...
21108         * tree-ssa-scopedtables.cc: ...here.
21109         * tree-ssa-sink.c: Moved to...
21110         * tree-ssa-sink.cc: ...here.
21111         * tree-ssa-strlen.c: Moved to...
21112         * tree-ssa-strlen.cc: ...here.
21113         * tree-ssa-structalias.c: Moved to...
21114         * tree-ssa-structalias.cc: ...here.
21115         * tree-ssa-tail-merge.c: Moved to...
21116         * tree-ssa-tail-merge.cc: ...here.
21117         * tree-ssa-ter.c: Moved to...
21118         * tree-ssa-ter.cc: ...here.
21119         * tree-ssa-threadbackward.c: Moved to...
21120         * tree-ssa-threadbackward.cc: ...here.
21121         * tree-ssa-threadedge.c: Moved to...
21122         * tree-ssa-threadedge.cc: ...here.
21123         * tree-ssa-threadupdate.c: Moved to...
21124         * tree-ssa-threadupdate.cc: ...here.
21125         * tree-ssa-uncprop.c: Moved to...
21126         * tree-ssa-uncprop.cc: ...here.
21127         * tree-ssa-uninit.c: Moved to...
21128         * tree-ssa-uninit.cc: ...here.
21129         * tree-ssa.c: Moved to...
21130         * tree-ssa.cc: ...here.
21131         * tree-ssanames.c: Moved to...
21132         * tree-ssanames.cc: ...here.
21133         * tree-stdarg.c: Moved to...
21134         * tree-stdarg.cc: ...here.
21135         * tree-streamer-in.c: Moved to...
21136         * tree-streamer-in.cc: ...here.
21137         * tree-streamer-out.c: Moved to...
21138         * tree-streamer-out.cc: ...here.
21139         * tree-streamer.c: Moved to...
21140         * tree-streamer.cc: ...here.
21141         * tree-switch-conversion.c: Moved to...
21142         * tree-switch-conversion.cc: ...here.
21143         * tree-tailcall.c: Moved to...
21144         * tree-tailcall.cc: ...here.
21145         * tree-vect-data-refs.c: Moved to...
21146         * tree-vect-data-refs.cc: ...here.
21147         * tree-vect-generic.c: Moved to...
21148         * tree-vect-generic.cc: ...here.
21149         * tree-vect-loop-manip.c: Moved to...
21150         * tree-vect-loop-manip.cc: ...here.
21151         * tree-vect-loop.c: Moved to...
21152         * tree-vect-loop.cc: ...here.
21153         * tree-vect-patterns.c: Moved to...
21154         * tree-vect-patterns.cc: ...here.
21155         * tree-vect-slp-patterns.c: Moved to...
21156         * tree-vect-slp-patterns.cc: ...here.
21157         * tree-vect-slp.c: Moved to...
21158         * tree-vect-slp.cc: ...here.
21159         * tree-vect-stmts.c: Moved to...
21160         * tree-vect-stmts.cc: ...here.
21161         * tree-vector-builder.c: Moved to...
21162         * tree-vector-builder.cc: ...here.
21163         * tree-vectorizer.c: Moved to...
21164         * tree-vectorizer.cc: ...here.
21165         * tree-vrp.c: Moved to...
21166         * tree-vrp.cc: ...here.
21167         * tree.c: Moved to...
21168         * tree.cc: ...here.
21169         * tsan.c: Moved to...
21170         * tsan.cc: ...here.
21171         * typed-splay-tree.c: Moved to...
21172         * typed-splay-tree.cc: ...here.
21173         * ubsan.c: Moved to...
21174         * ubsan.cc: ...here.
21175         * valtrack.c: Moved to...
21176         * valtrack.cc: ...here.
21177         * value-prof.c: Moved to...
21178         * value-prof.cc: ...here.
21179         * var-tracking.c: Moved to...
21180         * var-tracking.cc: ...here.
21181         * varasm.c: Moved to...
21182         * varasm.cc: ...here.
21183         * varpool.c: Moved to...
21184         * varpool.cc: ...here.
21185         * vec-perm-indices.c: Moved to...
21186         * vec-perm-indices.cc: ...here.
21187         * vec.c: Moved to...
21188         * vec.cc: ...here.
21189         * vmsdbgout.c: Moved to...
21190         * vmsdbgout.cc: ...here.
21191         * vr-values.c: Moved to...
21192         * vr-values.cc: ...here.
21193         * vtable-verify.c: Moved to...
21194         * vtable-verify.cc: ...here.
21195         * web.c: Moved to...
21196         * web.cc: ...here.
21197         * xcoffout.c: Moved to...
21198         * xcoffout.cc: ...here.
21200 2022-01-17  qing zhao  <qing.zhao@oracle.com>
21202         * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
21203         .DEFERRED_INIT call with an anonymous SSA_NAME specially.
21204         (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
21205         specially.
21206         (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
21207         (warn_uninitialized_vars): Likewise.
21208         (warn_uninitialized_phi): Likewise.
21210 2022-01-17  Jason Merrill  <jason@redhat.com>
21212         * diagnostic.h (struct diagnostic_context): Add includes_seen.
21213         * diagnostic.c (diagnostic_initialize): Initialize it.
21214         (diagnostic_finish): Clean it up.
21215         (includes_seen): New function.
21216         (diagnostic_report_current_module): Use it.
21218 2022-01-17  Richard Biener  <rguenther@suse.de>
21220         PR middle-end/101292
21221         * diagnostic-spec.c (copy_warning): Make sure to not
21222         reference old hashtable content on possible resize.
21223         * warning-control.cc (copy_warning): Likewise.
21225 2022-01-17  Jakub Jelinek  <jakub@redhat.com>
21227         PR target/103973
21228         * tree-cfg.h (cond_only_block_p): Declare.
21229         * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
21230         * tree-cfg.c (cond_only_block_p): ... here.  No longer static.
21231         * optabs.def (spaceship_optab): New optab.
21232         * internal-fn.def (SPACESHIP): New internal function.
21233         * internal-fn.h (expand_SPACESHIP): Declare.
21234         * internal-fn.c (expand_PHI): Formatting fix.
21235         (expand_SPACESHIP): New function.
21236         * tree-ssa-math-opts.c (optimize_spaceship): New function.
21237         (math_opts_dom_walker::after_dom_children): Use it.
21238         * config/i386/i386.md (spaceship<mode>3): New define_expand.
21239         * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
21240         * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
21241         * doc/md.texi (spaceship@var{m}3): Document.
21243 2022-01-17  Kewen Lin  <linkw@linux.ibm.com>
21245         * config/rs6000/altivec.md (altivec_vreveti2): Remove.
21246         * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
21247         *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
21248         known constant values to simplify code.
21250 2022-01-17  Haochen Gui  <guihaoc@gcc.gnu.org>
21252         PR target/103124
21253         * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
21255 2022-01-16  wwwhhhyyy  <hongyu.wang@intel.com>
21257         * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
21258         * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
21259         Insert zero-idiom in output template when attr enabled, set new attribute to
21260         true for non-mask/maskz insn.
21261         (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
21262         Likewise.
21263         (avx512dq_mul<mode>3<mask_name>): Likewise.
21264         (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
21265         (avx2_perm<mode>_1<mask_name>): Likewise.
21266         (avx512f_perm<mode>_1<mask_name>): Likewise.
21267         (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
21268         (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
21269         Likewise.
21270         (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
21271         (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
21272         Likewise.
21273         * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
21274         subst_attr.
21275         (mask4_dest_false_dep_for_glc_cond): Likewise.
21276         (mask6_dest_false_dep_for_glc_cond): Likewise.
21277         (mask10_dest_false_dep_for_glc_cond): Likewise.
21278         (maskc_dest_false_dep_for_glc_cond): Likewise.
21279         (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
21280         (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
21281         * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
21282         DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
21284 2022-01-15  Martin Sebor  <msebor@redhat.com>
21286         PR c/63272
21287         * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
21288         -Wdangling-pointer.
21289         * doc/invoke.texi (-Wdangling-pointer): Document new option.
21290         * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
21291         (pass_waccess::check_pointer_uses): New function.
21292         (pass_waccess::gimple_call_return_arg): New function.
21293         (pass_waccess::gimple_call_return_arg_ref): New function.
21294         (pass_waccess::check_call_dangling): New function.
21295         (pass_waccess::check_dangling_uses): New function overloads.
21296         (pass_waccess::check_dangling_stores): New function.
21297         (pass_waccess::check_dangling_stores): New function.
21298         (pass_waccess::m_clobbers): New data member.
21299         (pass_waccess::m_func): New data member.
21300         (pass_waccess::m_run_number): New data member.
21301         (pass_waccess::m_check_dangling_p): New data member.
21302         (pass_waccess::check_alloca): Check m_early_checks_p.
21303         (pass_waccess::check_alloc_size_call): Same.
21304         (pass_waccess::check_strcat): Same.
21305         (pass_waccess::check_strncat): Same.
21306         (pass_waccess::check_stxcpy): Same.
21307         (pass_waccess::check_stxncpy): Same.
21308         (pass_waccess::check_strncmp): Same.
21309         (pass_waccess::check_memop_access): Same.
21310         (pass_waccess::check_read_access): Same.
21311         (pass_waccess::check_builtin): Call check_pointer_uses.
21312         (pass_waccess::warn_invalid_pointer): Add arguments.
21313         (is_auto_decl): New function.
21314         (pass_waccess::check_stmt): New function.
21315         (pass_waccess::check_block): Call check_stmt.
21316         (pass_waccess::execute): Call check_dangling_uses,
21317         check_dangling_stores.  Empty m_clobbers.
21318         * passes.def (pass_warn_access): Invoke pass two more times.
21320 2022-01-15  Martin Sebor  <msebor@redhat.com>
21322         PR tree-optimization/80532
21323         * common.opt (-Wuse-after-free): New options.
21324         * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
21325         OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
21326         * diagnostic-spec.h (NW_DANGLING): New enumerator.
21327         * doc/invoke.texi (-Wuse-after-free): Document new option.
21328         * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
21329         (pass_waccess::check_call_access): ...to this.
21330         (pass_waccess::check): Rename...
21331         (pass_waccess::check_block): ...to this.
21332         (pass_waccess::check_pointer_uses): New function.
21333         (pass_waccess::gimple_call_return_arg): New function.
21334         (pass_waccess::warn_invalid_pointer): New function.
21335         (pass_waccess::check_builtin): Handle free and realloc.
21336         (gimple_use_after_inval_p): New function.
21337         (get_realloc_lhs): New function.
21338         (maybe_warn_mismatched_realloc): New function.
21339         (pointers_related_p): New function.
21340         (pass_waccess::check_call): Call check_pointer_uses.
21341         (pass_waccess::execute): Compute and free dominance info.
21343 2022-01-15  Uroš Bizjak  <ubizjak@gmail.com>
21345         * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
21346         expand_simple_unop and expand_simple_binop instead of manually
21347         constructing NOT, AND and IOR RTXes.  Use vector_all_ones_operand
21348         consistently.  Eliminate common subexpressions and simplify code.
21349         * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
21350         (<any_logic:code><MODEF:mode>3): Make public.
21352 2022-01-14  Eric Botcazou  <ebotcazou@adacore.com>
21354         * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
21355         reverse flag as "reverse" for the sake of consistency.
21356         * ipa-sra.c: Fix copyright year.
21357         (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
21358         (dump_isra_access): Tweak dump line.
21359         (isra_write_node_summary): Write the reverse flag.
21360         (isra_read_node_info): Read it.
21361         (pull_accesses_from_callee): Test its consistency and copy it.
21363 2022-01-14  Richard Sandiford  <richard.sandiford@arm.com>
21365         PR middle-end/104026
21366         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
21367         partial_load_store_bias.
21369 2022-01-14  Martin Sebor  <msebor@redhat.com>
21371         PR middle-end/101475
21372         * pointer-query.cc (handle_component_ref): Use the size of
21373         the enclosing object if it's smaller than the member.
21375 2022-01-14  Martin Liska  <mliska@suse.cz>
21377         * configure: Regenerate.
21379 2022-01-14  Uroš Bizjak  <ubizjak@gmail.com>
21381         * config/i386/i386.md (*add<mode>_1_slp"):
21382         Mark alternative 1 output operand earlyclobbered.
21383         (*sub<mode>_1_slp): Ditto.
21384         (*and<mode>_1_slp): Ditto.
21385         (*<code><mode>_1_slp): Ditto.
21386         (*neg<mode>_1_slp): Ditto.
21387         (*one_cmpl<mode>_1_slp): Ditto.
21388         (*ashl<mode>3_1_slp): Ditto.
21389         (*<insn><mode>3_1_slp): Ditto.
21390         (*<insn><mode>3_1_slp): Ditto.
21392 2022-01-14  Kewen Lin  <linkw@linux.ibm.com>
21394         PR tree-optimization/104015
21395         * tree-vect-loop.c (vect_analyze_loop): Check
21396         param_vect_partial_vector_usage for supports_partial_vectors.
21398 2022-01-14  Jakub Jelinek  <jakub@redhat.com>
21400         PR c++/89074
21401         * fold-const.c (address_compare): Punt on comparison of address of
21402         one object with address of end of another object if
21403         folding_initializer.
21405 2022-01-14  Jakub Jelinek  <jakub@redhat.com>
21407         PR target/98737
21408         * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
21409         __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
21410         and __atomic_op_fetch (p, x, y) iop x into
21411         __atomic_fetch_op (p, x, y).
21413 2022-01-14  Claudiu Zissulescu  <claziss@synopsys.com>
21415         * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
21416         (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
21417         (INCOMING_RETURN_ADDR_RTX): Likewise.
21418         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
21420 2022-01-14  Claudiu Zissulescu  <claziss@synopsys.com>
21422         * config/arc/arc.c (arc_compute_frame_size): Remove condition when
21423         computin checking accumulator regs.
21424         (arc_expand_prologue): Update comments.
21425         (arc_expand_epilogue): Likewise.
21427 2022-01-14  Roger Sayle  <roger@nextmovesoftware.com>
21428             Uroš Bizjak  <ubizjak@gmail.com>
21430         * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
21431         (ix86_expand_ti_to_v1ti): Use force_reg.
21432         (ix86_expand_v1ti_shift): Use force_reg.
21433         (ix86_expand_v1ti_rotate): Use force_reg.
21434         (ix86_expand_v1ti_ashiftrt): Provide new three operation
21435         implementations for shifts by 111..126 bits.  Use force_reg.
21437 2022-01-14  Martin Liska  <mliska@suse.cz>
21439         * common/config/arm/arm-common.c (arm_target_mode): Fix
21440         warning: unterminated quoting directive [-Wformat=].
21442 2022-01-14  Siddhesh Poyarekar  <siddhesh@gotplt.org>
21444         PR tree-optimization/104009
21445         * tree-object-size.c (compute_builtin_object_size): Bail out on
21446         negative offset.
21447         (plus_stmt_object_size): Return maximum of wholesize and minimum
21448         of 0 for negative offset.
21450 2022-01-14  liuhongt  <hongtao.liu@intel.com>
21452         PR target/104001
21453         PR target/94790
21454         PR target/104014
21455         * config/i386/i386.md (*xor2andn): Refine predicate of
21456         operands[0] from nonimmediate_operand to
21457         register_operand, remove TARGET_AVX512BW from condition.
21459 2022-01-14  David Malcolm  <dmalcolm@redhat.com>
21461         * doc/extend.texi (Function Attributes): Note that "tainted_args" can
21462         be used on field decls.
21463         (Common Function Attributes): Add entry on "tainted_args" attribute.
21465 2022-01-13  Anthony Sharp  <anthonysharp15@gmail.com>
21466             Jason Merrill  <jason@redhat.com>
21468         PR c++/70417
21469         * doc/invoke.texi: Documentation for Wmissing-template-keyword.
21471 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
21473         PR target/103861
21474         * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
21475         (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
21476         * config/i386/mmx.md (<any_shift:insn>v2qi):
21477         New insn_and_split pattern.
21479 2022-01-13  Robin Dapp  <rdapp@linux.ibm.com>
21481         * internal-fn.c (expand_partial_load_optab_fn): Add bias.
21482         (expand_partial_store_optab_fn): Likewise.
21483         (internal_len_load_store_bias): New function.
21484         * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
21485         (internal_len_load_store_bias): New function.
21486         * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
21487         (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
21488         * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
21489         (vect_estimate_min_profitable_iters): Account for bias.
21490         (vect_get_loop_len): Add bias-adjusted length.
21491         * tree-vect-stmts.c (vectorizable_store): Use.
21492         (vectorizable_load): Use.
21493         * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
21494         (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
21495         * config/rs6000/vsx.md: Use const0 bias predicate.
21496         * doc/md.texi: Document bias value.
21498 2022-01-13  Andrew MacLeod  <amacleod@redhat.com>
21500         PR tree-optimization/83072
21501         PR tree-optimization/83073
21502         PR tree-optimization/97909
21503         * fold-const.c (expr_not_equal_to): Use a multi-range class.
21505 2022-01-13  Andrew MacLeod  <amacleod@redhat.com>
21507         PR tree-optimization/96707
21508         * range-op.cc (operator_rshift::lhs_op1_relation): New.
21510 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
21512         * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
21513         Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
21514         (negv2qi splitters): Use lowpart_subreg instead of
21515         gen_lowpart to create subreg.
21516         (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
21517         Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
21518         (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
21519         gen_lowpart to create subreg.
21520         * config/i386/i386.md (*subqi_ext<mode>_2): Move.
21522 2022-01-13  Uroš Bizjak  <ubizjak@gmail.com>
21524         PR target/104003
21525         * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
21527 2022-01-13  Martin Liska  <mliska@suse.cz>
21529         * common/config/arm/arm-common.c (arm_target_mode): Wrap
21530         keywords with %<, %> and remove trailing punctuation char.
21531         (arm_canon_arch_option_1): Likewise.
21532         (arm_asm_auto_mfpu): Likewise.
21533         * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
21534         * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
21535         (use_vfp_abi): Likewise.
21536         (aapcs_vfp_is_call_or_return_candidate): Likewise.
21537         (arm_handle_cmse_nonsecure_entry): Likewise.
21538         (arm_handle_cmse_nonsecure_call): Likewise.
21539         (thumb1_md_asm_adjust): Likewise.
21541 2022-01-13  Paul A. Clarke  <pc@us.ibm.com>
21543         * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
21544         _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
21545         _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
21546         _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
21547         _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
21548         _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
21549         (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
21550         _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
21551         macro.
21553 2022-01-13  Jakub Jelinek  <jakub@redhat.com>
21555         PR tree-optimization/103989
21556         * tree-inline.c (setup_one_parameter): Don't copy parms with
21557         empty type.
21559 2022-01-13  Thomas Schwinge  <thomas@codesourcery.com>
21561         * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
21562         'TYPE_ADDR_SPACE' for offloading.
21563         * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
21564         'TYPE_ADDR_SPACE' for offloading.
21566 2022-01-13  Julian Brown  <julian@codesourcery.com>
21567             Thomas Schwinge  <thomas@codesourcery.com>
21569         * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
21570         of...
21571         (add_async_clauses_and_wait): ...here. Call new outlined function.
21572         (decompose_kernels_region_body): Add wait at the end of
21573         explicitly-asynchronous kernels regions.
21575 2022-01-13  Thomas Schwinge  <thomas@codesourcery.com>
21577         PR middle-end/100280
21578         * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
21579         Mark variables used in synthesized data clauses as addressable.
21581 2022-01-13  Martin Liska  <mliska@suse.cz>
21583         * config/epiphany/epiphany.c (epiphany_mode_priority):
21584         Use gcc_unreachable for not handled cases.
21586 2022-01-13  Martin Liska  <mliska@suse.cz>
21588         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
21589         Use %qs format specifier.
21590         (epiphany_override_options): Wrap keyword in %<, %>.
21592 2022-01-13  Haochen Jiang  <haochen.jiang@intel.com>
21594         PR target/94790
21595         * config/i386/i386.md (*xor2andn): New define_insn_and_split.
21597 2022-01-13  Xionghu Luo  <luoxhu@linux.ibm.com>
21599         * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
21601 2022-01-12  Uroš Bizjak  <ubizjak@gmail.com>
21603         PR target/100637
21604         PR target/103861
21605         * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
21606         (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
21607         when constructing vector logic RTXes.
21608         (expand_vec_perm_pshufb2): Ditto.
21609         * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
21610         (<plusminus:insn>v2qi3): Ditto.
21611         (vcond<mode><mode>): Re-enable for TARGET_SSE2.
21612         (vcondu<mode><mode>): Ditto.
21613         (vcond_mask_<mode><mode>): Ditto.
21614         (one_cmpl<VI_32:mode>2): Remove expander.
21615         (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
21616         Use VI_16_32 mode iterator.
21617         (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
21618         Use lowpart_subreg instead of gen_lowpart to create subreg.
21619         (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
21620         "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
21621         Disparage GPR alternative a bit.  Add CC clobber.
21622         (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
21623         Use lowpart_subreg instead of gen_lowpart to create subreg.
21624         (*<any_logic:code><VI_16_32:mode>3): Merge from
21625         "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
21626         using VI_16_32 mode iterator.  Disparage GPR alternative a bit.
21627         Add CC clobber.
21628         (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
21629         iterator.  Use lowpart_subreg instead of gen_lowpart to create subreg.
21631 2022-01-12  Clément Chigot  <clement.chigot@atos.net>
21633         * configure.ac: Check sizeof ino_t and dev_t.
21634         (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
21635         syscall being able to handle 64bit inodes.
21636         * config.in: Regenerate.
21637         * configure: Regenerate.
21638         * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
21639         (remove_duplicates): Use it.
21641 2022-01-12  Andrew MacLeod  <amacleod@redhat.com>
21643         PR tree-optimization/103551
21644         * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
21646 2022-01-12  Richard Biener  <rguenther@suse.de>
21648         PR tree-optimization/103990
21649         * tree-pass.h (tail_merge_optimize): Drop unused argument.
21650         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
21651         * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
21652         and adjust call to tail_merge_optimize.
21654 2022-01-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21656         * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
21657         does not add autovectorize_vector_modes.
21659 2022-01-12  Martin Liska  <mliska@suse.cz>
21661         * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
21662         %qs where possible.
21663         (aarch64_parse_sve_width_string): Likewise.
21664         (aarch64_override_options_internal): Likewise.
21665         (aarch64_print_hint_for_extensions): Likewise.
21666         (aarch64_validate_sls_mitigation): Likewise.
21667         (aarch64_handle_attr_arch): Likewise.
21668         (aarch64_handle_attr_cpu): Likewise.
21669         (aarch64_handle_attr_tune): Likewise.
21670         (aarch64_handle_attr_isa_flags): Likewise.
21672 2022-01-12  Martin Liska  <mliska@suse.cz>
21674         * config.gcc: Include elfos.h before ${tm_file}.
21676 2022-01-12  Hans-Peter Nilsson  <hp@axis.com>
21678         * config/cris/cris.c: Quote identifiers in parameters to error
21679         and internal_error, and remove extraneous spaces with punctuation.
21680         * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
21681         expression to internal_error, pass it as a parameter instead of
21682         appending it to the format part.
21684 2022-01-12  Hans-Peter Nilsson  <hp@axis.com>
21686         * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
21687         parameter to as_a.
21689 2022-01-11  qing zhao  <qing.zhao@oracle.com>
21691         * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
21692         Change the 3rd argument of function .DEFERRED_INIT to the name of the
21693         decl.
21694         (gimplify_decl_expr): Delete the 3rd argument when call
21695         gimple_add_init_for_auto_var.
21696         * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
21697         the 3rd argument change of function .DEFERRED_INIT.
21698         * tree-cfg.c (verify_gimple_call): Update comments and verification
21699         to reflect the 3rd argument change of function .DEFERRED_INIT.
21700         * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
21701         (sra_modify_deferred_init): Change the 3rd argument of function
21702         .DEFERRED_INIT to the name of the decl.
21704 2022-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
21706         * flag-types.h (enum gfc_convert): Add flags for
21707         conversion.
21709 2022-01-11  Michael Meissner  <meissner@the-meissners.org>
21711         * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
21712         checks for only C/C++ front ends before allowing the long double
21713         format to change without a warning.
21715 2022-01-11  Richard Sandiford  <richard.sandiford@arm.com>
21717         PR rtl-optimization/103974
21718         * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
21719         extra argument, default true, that says whether old-reload
21720         targets should be excluded.
21721         * ira-color.c (color_pass): Pass false.
21723 2022-01-11  Uroš Bizjak  <ubizjak@gmail.com>
21725         PR target/103861
21726         * config/i386/mmx.md (vcond<mode><mode>):
21727         Use VI_16_32 mode iterator.  Enable for TARGET_SSE4_1.
21728         (vcondu<mode><mode>): Ditto.
21729         (vcond_mask_<mode><mode>): Ditto.
21730         (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
21731         (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
21732         Use VI_16_32 mode iterator.
21733         * config/i386/i386-expand.c (ix86_expand_sse_movcc):
21734         Update for rename.  Handle V2QImode.
21735         (expand_vec_perm_blend): Update for rename.
21737 2022-01-11  Jakub Jelinek  <jakub@redhat.com>
21739         PR c++/101597
21740         * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
21742 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
21744         PR middle-end/70090
21745         * tree-object-size.c (size_valid_p): New function.
21746         (size_for_offset): Remove OFFSET constness assertion.
21747         (addr_object_size): Build dynamic expressions for object
21748         sizes and use size_valid_p to decide if it is valid for the
21749         given OBJECT_SIZE_TYPE.
21750         (compute_builtin_object_size): Allow dynamic offsets when
21751         computing size at O0.
21752         (call_object_size): Call size_valid_p.
21753         (plus_stmt_object_size): Allow non-constant offset and use
21754         size_valid_p to decide if it is valid for the given
21755         OBJECT_SIZE_TYPE.
21757 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
21759         PR middle-end/70090
21760         * tree-object-size.c (alloc_object_size): Make and return
21761         non-constant size expression.
21762         (call_object_size): Return expression or unknown based on
21763         whether dynamic object size is requested.
21765 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
21767         PR middle-end/70090
21768         * tree-object-size.c: Include tree-dfa.h.
21769         (parm_object_size): New function.
21770         (collect_object_sizes_for): Call it.
21772 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
21774         PR middle-end/70090
21775         * builtins.c (fold_builtin_object_size): Adjust for dynamic size
21776         expressions.
21777         * tree-object-size.c: Include gimplify-me.h.
21778         (struct object_size_info): New member UNKNOWNS.
21779         (size_initval_p, size_usable_p, object_sizes_get_raw): New
21780         functions.
21781         (object_sizes_get): Return suitable gimple variable for
21782         object size.
21783         (bundle_sizes): New function.
21784         (object_sizes_set): Use it and handle dynamic object size
21785         expressions.
21786         (object_sizes_set_temp): New function.
21787         (size_for_offset): Adjust for dynamic size expressions.
21788         (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
21789         New functions.
21790         (compute_builtin_object_size): Call gimplify_size_expressions
21791         for OST_DYNAMIC.
21792         (dynamic_object_size): New function.
21793         (cond_expr_object_size): Use it.
21794         (phi_dynamic_object_size): New function.
21795         (collect_object_sizes_for): Call it for OST_DYNAMIC.  Adjust to
21796         accommodate dynamic object sizes.
21798 2022-01-11  Siddhesh Poyarekar  <siddhesh@gotplt.org>
21799             Jakub Jelinek  <jakub@redhat.com>
21801         PR tree-optimization/103961
21802         * tree-object-size.c (plus_stmt_object_size): Always avoid
21803         computing offset for -1 size.
21805 2022-01-11  Andrew MacLeod  <amacleod@redhat.com>
21807         PR tree-optimization/103821
21808         * range-op.cc (range_operator::fold_range): Only do precise ranges
21809         when there are not too many subranges.
21811 2022-01-11  Richard Sandiford  <richard.sandiford@arm.com>
21813         * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
21814         definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
21816 2022-01-11  Roger Sayle  <roger@nextmovesoftware.com>
21817             Richard Biener  <rguenther@suse.de>
21819         * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
21820         highpart_mults_inserted field.
21821         (convert_mult_to_highpart): New function to convert right shift
21822         of a widening multiply into a MULT_HIGHPART_EXPR.
21823         (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
21824         Call new convert_mult_to_highpart function.
21825         (pass_optimize_widening_mul::execute): Add a statistics counter
21826         for tracking "highpart multiplications inserted" events.
21828 2022-01-11  Xionghu Luo  <luoxhu@linux.ibm.com>
21830         PR target/102239
21831         * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
21832         declare.
21833         * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
21834         function.
21835         * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
21837 2022-01-11  Olivier Hainque  <hainque@adacore.com>
21839         * gcc.c (driver_handle_option): State --sysroot as
21840         validated.
21842 2022-01-11  Kewen Lin  <linkw@linux.ibm.com>
21844         * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
21845         useless related to option -mno-power10.
21847 2022-01-11  Haochen Jiang  <haochen.jiang@intel.com>
21849         PR target/53652
21850         * config/i386/sse.md (*andnot<mode>3): Extend predicate of
21851         operands[1] from register_operand to vector_operand.
21853 2022-01-10  Uroš Bizjak  <ubizjak@gmail.com>
21855         PR target/103861
21856         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
21857         Handle V2QImode.
21858         * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
21859         Use VI1_16_32 mode iterator.
21860         (*eq<mode>3): Ditto.
21861         (*gt<mode>3): Ditto.
21862         (*xop_maskcmp<mode>3): Ditto.
21863         (*xop_maskcmp_uns<mode>3): Ditto.
21864         (vec_cmp<mode><mode>): Ditto.
21865         (vec_cmpu<mode><mode>): Ditto.
21867 2022-01-10  Richard Biener  <rguenther@suse.de>
21869         PR tree-optimization/103948
21870         * tree-vect-generic.c (expand_vector_condition): Return true if
21871         all ones vector is returned for true, all zeros vector for false
21872         and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
21874 2022-01-10  Paul A. Clarke  <pc@us.ibm.com>
21876         * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
21877         when _ARCH_PWR10. Use signed types.
21878         (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
21879         (_mm_blendv_pd): Likewise.
21881 2022-01-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21883         * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
21884         epilogue costing.
21885         * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
21886         epilogues, unless we are guaranteed that we can't have partial vectors.
21887         * genopinit.c: (partial_vectors_supported): Generate new function.
21889 2022-01-10  Jakub Jelinek  <jakub@redhat.com>
21891         PR target/102024
21892         * config/i386/i386.c (classify_argument): Add zero_width_bitfields
21893         argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
21894         always ignore them, when seeing other zero sized bitfields, either
21895         set zero_width_bitfields to 1 and ignore it or if equal to 2 process
21896         it.  Pass it to recursive calls.  Add wrapper
21897         with old arguments and diagnose ABI differences for C structures
21898         with zero width bitfields.  Formatting fixes.
21900 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
21902         PR rtl-optimization/98782
21903         * ira-int.h (ira_soft_conflict): Declare.
21904         * ira-color.c (max_soft_conflict_loop_depth): New constant.
21905         (ira_soft_conflict): New function.
21906         (spill_soft_conflicts): Likewise.
21907         (assign_hard_reg): Use them to handle the case described by
21908         the comment above ira_soft_conflict.
21909         (improve_allocation): Likewise.
21910         * ira.c (check_allocation): Allow allocnos with "soft" conflicts
21911         to share the same register.
21913 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
21915         PR rtl-optimization/98782
21916         * ira-int.h (ira_caller_save_cost): New function.
21917         (ira_caller_save_loop_spill_p): Likewise.
21918         * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
21919         cheaper to spill a call-clobbered register throughout a loop rather
21920         than spill it around each individual call.  If so, treat all
21921         call-clobbered registers as conflicts and...
21922         (propagate_allocno_info): ...do not propagate call information
21923         from the child to the parent.
21924         * ira-color.c (move_spill_restore): Update accordingly.
21925         * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
21927 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
21929         PR rtl-optimization/98782
21930         * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
21931         (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
21932         (ira_single_region_allocno_p): New function.
21933         (ira_total_conflict_hard_regs): Likewise.
21934         * ira-build.c (ira_create_allocno): Initialize
21935         ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
21936         (ira_propagate_hard_reg_costs): New function.
21937         (propagate_allocno_info): Use it.  Try to avoid propagating
21938         hard register conflicts to parent allocnos if we can handle
21939         the conflicts by spilling instead.  Limit the propagated
21940         register costs to the cost of spilling throughout the child loop.
21941         * ira-color.c (color_pass): Use ira_single_region_allocno_p to
21942         test whether a child and parent allocno can share the same
21943         register.
21944         (move_spill_restore): Adjust for the new behavior of
21945         propagate_allocno_info.
21947 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
21949         PR rtl-optimization/98782
21950         * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
21951         extracted from...
21952         * ira-color.c (color_pass): ...here.
21954 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
21956         PR rtl-optimization/98782
21957         * ira-color.c (color_pass): Add comments to describe the spill costs.
21958         (move_spill_restore): Likewise.  Fix reversed calculation.
21960 2022-01-10  Richard Sandiford  <richard.sandiford@arm.com>
21962         PR rtl-optimization/98782
21963         * ira-int.h (ira_loop_border_costs): New class.
21964         * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
21965         New constructor.
21966         (calculate_allocno_spill_cost): Use ira_loop_border_costs.
21967         (color_pass): Likewise.
21968         (move_spill_restore): Likewise.
21970 2022-01-10  Eric Botcazou  <ebotcazou@adacore.com>
21972         PR target/103465
21973         * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
21975 2022-01-10  Richard Biener  <rguenther@suse.de>
21977         PR tree-optimization/100359
21978         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
21979         Allow non-growing peeling with !allow_peel and UL_ALL.
21981 2022-01-08  Roger Sayle  <roger@nextmovesoftware.com>
21983         * config/i386/i386-expand.c (ix86_expand_vector_move): Add
21984         special case for TImode to V1TImode moves, going via V2DImode.
21986 2022-01-08  Jakub Jelinek  <jakub@redhat.com>
21988         PR c++/89074
21989         * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
21990         simplification.
21992 2022-01-08  David Malcolm  <dmalcolm@redhat.com>
21994         * doc/analyzer.texi
21995         (Special Functions for Debugging the Analyzer): Document
21996         __analyzer_dump_escaped.
21998 2022-01-08  David Malcolm  <dmalcolm@redhat.com>
22000         * doc/analyzer.texi (Other Debugging Techniques): Document
22001         region::is_named_decl_p.
22003 2022-01-07  Andrew Pinski  <apinski@marvell.com>
22005         PR target/102941
22006         * config/arm/aarch-common.c (arm_md_asm_adjust):
22007         Use a temp if !REG_P.
22009 2022-01-07  Uroš Bizjak  <ubizjak@gmail.com>
22011         * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
22012         (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
22014 2022-01-07  liuhongt  <hongtao.liu@intel.com>
22016         PR rtl-optimization/103750
22017         * fwprop.c (forward_propagate_into): Allow propagations from
22018         inner loop to outer loop.
22020 2022-01-07  Roger Sayle  <roger@nextmovesoftware.com>
22022         * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
22024 2022-01-07  Haochen Gui  <guihaoc@gcc.gnu.org>
22026         * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
22027         (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
22028         Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
22030 2022-01-07  liuhongt  <hongtao.liu@intel.com>
22032         * config/i386/sse.md
22033         (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
22034         UNSPEC_PCMP_UNSIGNED.
22036 2022-01-07  liuhongt  <hongtao.liu@intel.com>
22038         PR target/103753
22039         * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
22040         gen_avx2_pblendph_1 when elt == 0.
22041         * config/i386/sse.md (avx2_pblendph): Rename to ..
22042         (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
22043         (*avx2_pblendw): Rename to ..
22044         (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
22045         (avx2_pblendw): Rename to ..
22046         (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
22047         (blendsuf): Removed.
22048         (sse4_1_pblend<blendsuf>): Renamed to ..
22049         (sse4_1_pblend<ssemodesuffix>): .. this.
22051 2022-01-06  H.J. Lu  <hjl.tools@gmail.com>
22053         PR target/103925
22054         * config/i386/i386.c (ix86_output_indirect_function_return):
22055         Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
22057 2022-01-06  H.J. Lu  <hjl.tools@gmail.com>
22059         PR target/102952
22060         * config/i386/i386-opts.h (harden_sls): Replace
22061         harden_sls_indirect_branch with harden_sls_indirect_jmp.
22062         * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
22063         Likewise.
22064         (ix86_output_indirect_jmp): Likewise.
22065         (ix86_output_call_insn): Likewise.
22066         * config/i386/i386.opt: Replace indirect-branch with
22067         indirect-jmp.  Replace harden_sls_indirect_branch with
22068         harden_sls_indirect_jmp.
22069         * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
22070         indirect-jmp.
22072 2022-01-06  Uroš Bizjak  <ubizjak@gmail.com>
22074         * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
22075         Add %q modifier for operands in general registers.
22076         <MODE_SI>: Add %q modifier for operands in general registers.
22077         * config/i386/i386.md (*movhi_internal): Change type attribute of
22078         xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
22079         to SImode for non-avx512fp16 targets.
22080         (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
22081         * config/i386/mmx.md (*movv2qi_internal):
22082         Ditto for xmm-gpr interunit alternatives 8,9.
22084 2022-01-06  Kito Cheng  <kito.cheng@sifive.com>
22086         * common/config/riscv/riscv-common.c (riscv_implied_info): Add
22087         vector extensions.
22088         (riscv_ext_version_table): Add version info for vector extensions.
22089         (riscv_ext_flag_table): Add option mask for vector extensions.
22090         * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
22091         (MASK_VECTOR_EEW_64): New.
22092         (MASK_VECTOR_EEW_FP_32): New.
22093         (MASK_VECTOR_EEW_FP_64): New.
22094         (MASK_ZVL32B): New.
22095         (MASK_ZVL64B): New.
22096         (MASK_ZVL128B): New.
22097         (MASK_ZVL256B): New.
22098         (MASK_ZVL512B): New.
22099         (MASK_ZVL1024B): New.
22100         (MASK_ZVL2048B): New.
22101         (MASK_ZVL4096B): New.
22102         (MASK_ZVL8192B): New.
22103         (MASK_ZVL16384B): New.
22104         (MASK_ZVL32768B): New.
22105         (MASK_ZVL65536B): New.
22106         (TARGET_ZVL32B): New.
22107         (TARGET_ZVL64B): New.
22108         (TARGET_ZVL128B): New.
22109         (TARGET_ZVL256B): New.
22110         (TARGET_ZVL512B): New.
22111         (TARGET_ZVL1024B): New.
22112         (TARGET_ZVL2048B): New.
22113         (TARGET_ZVL4096B): New.
22114         (TARGET_ZVL8192B): New.
22115         (TARGET_ZVL16384B): New.
22116         (TARGET_ZVL32768B): New.
22117         (TARGET_ZVL65536B): New.
22118         * config/riscv/riscv.opt (Mask(VECTOR)): New.
22119         (riscv_vector_eew_flags): New.
22120         (riscv_zvl_flags): New.
22122 2022-01-06  Kito Cheng  <kito.cheng@sifive.com>
22124         * common/config/riscv/riscv-common.c
22125         (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
22126         digit.
22128 2022-01-06  Jakub Jelinek  <jakub@redhat.com>
22130         PR tree-optimization/103899
22131         * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
22132         warning by moving context variable to the only spot where it is used
22133         and moving gcc_assert into if body.
22135 2022-01-06  Jakub Jelinek  <jakub@redhat.com>
22137         PR rtl-optimization/103908
22138         * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
22139         asm goto.
22141 2022-01-05  Bill Schmidt  <wschmidt@linux.ibm.com>
22143         PR target/103622
22144         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
22145         Skip over instances with undefined function types.
22147 2022-01-05  Andrew Pinski  <apinski@marvell.com>
22149         PR target/103910
22150         * config/i386/i386.h (x86_mfence): Mark with GTY.
22152 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
22154         PR target/103861
22155         * config/i386/mmx.md (VI_16_32): New mode iterator.
22156         (VI1_16_32): Ditto.
22157         (mmxvecsize): Handle V2QI mode.
22158         (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
22159         Use VI1_16_32 mode iterator.
22160         (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
22161         Use VI1_16_32 mode iterator.
22162         (abs<mode>2): Use VI_16_32 mode iterator.
22163         (uavgv2qi3_ceil): New insn pattern.
22165 2022-01-05  Martin Sebor  <msebor@redhat.com>
22167         * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
22168         %qs to avoid -Wformat-diag.
22170 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
22172         PR target/103915
22173         * config/i386/mmx.md (one_cmplv2qi2): Change
22174         alternatives 1,2 type from sselog to sselog1.
22176 2022-01-05  Uroš Bizjak  <ubizjak@gmail.com>
22178         PR target/103905
22179         * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
22180         narrow mode remapped elements for !one_operand_p case.
22182 2022-01-05  Richard Biener  <rguenther@suse.de>
22184         PR tree-optimization/103816
22185         * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
22186         check DR_GROUP_GAP compute for overflow and representability.
22188 2022-01-05  Jakub Jelinek  <jakub@redhat.com>
22190         PR fortran/103691
22191         * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
22192         for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
22193         it can do unwanted rhs folding like &a[0] into &2.0 etc.
22195 2022-01-05  Kewen Lin  <linkw@linux.ibm.com>
22197         PR ipa/102059
22198         * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
22199         (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
22200         (rs6000_need_ipa_fn_target_info): New function.
22201         (rs6000_update_ipa_fn_target_info): Likewise.
22202         (rs6000_can_inline_p): Adjust for ipa function summary target info.
22203         * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
22204         * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
22205         summary target info.
22206         (analyze_function_body): Adjust for ipa function summary target info
22207         and call hook rs6000_need_ipa_fn_target_info and
22208         rs6000_update_ipa_fn_target_info.
22209         (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
22210         target info.
22211         (inline_read_section): Likewise.
22212         (ipa_fn_summary_write): Likewise.
22213         * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
22214         * doc/tm.texi: Regenerate.
22215         * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
22216         (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
22217         * target.def (update_ipa_fn_target_info): New hook.
22218         (need_ipa_fn_target_info): Likewise.
22219         * targhooks.c (default_need_ipa_fn_target_info): New function.
22220         (default_update_ipa_fn_target_info): Likewise.
22221         * targhooks.h (default_update_ipa_fn_target_info): New declare.
22222         (default_need_ipa_fn_target_info): Likewise.
22224 2022-01-04  Martin Sebor  <msebor@redhat.com>
22226         PR middle-end/99612
22227         * builtins.c (get_memmodel): Move warning code to
22228         gimple-ssa-warn-access.cc.
22229         (expand_builtin_atomic_compare_exchange): Same.
22230         (expand_ifn_atomic_compare_exchange): Same.
22231         (expand_builtin_atomic_load): Same.
22232         (expand_builtin_atomic_store): Same.
22233         (expand_builtin_atomic_clear): Same.
22234         * doc/extend.texi (__atomic_exchange_n): Update valid memory
22235         models.
22236         * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
22237         (struct memmodel_pair): New struct.
22238         (memmodel_name): New function.
22239         (pass_waccess::maybe_warn_memmodel): New function.
22240         (pass_waccess::check_atomic_memmodel): New function.
22241         (pass_waccess::check_atomic_builtin): Handle memory model.
22242         * input.c (expansion_point_location_if_in_system_header): Return
22243         original location if expansion location is in a system header.
22245 2022-01-04  Uroš Bizjak  <ubizjak@gmail.com>
22247         PR target/103861
22248         * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
22249         (one_cmplv2qi3 splitters): New post-reload splitters.
22250         (*andnotv2qi3): New insn pattern.
22251         (andnotv2qi3 splitters): New post-reload splitters.
22252         (<any_logic:code>v2qi3): New insn pattern.
22253         (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
22255 2022-01-04  Richard Biener  <rguenther@suse.de>
22257         PR tree-optimization/103800
22258         * tree-vect-loop.c (vectorizable_phi): Remove assert and
22259         expand comment.
22261 2022-01-04  Richard Biener  <rguenther@suse.de>
22263         PR tree-optimization/103690
22264         * tree-pass.h (tail_merge_optimize): Adjust.
22265         * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
22266         to re-split critical edges, move CFG cleanup ...
22267         * tree-ssa-pre.c (pass_pre::execute): ... here, before
22268         simple_dce_from_worklist and delay freeing inserted_exprs from
22269         ...
22270         (fini_pre): .. here.
22272 2022-01-04  Roger Sayle  <roger@nextmovesoftware.com>
22274         * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
22275         * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
22276         (setcc_from_bi): Remove SImode specific pattern.
22277         (setcc<mode>_from_bi): Provide more general HSDIM pattern.
22278         (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
22279         for sign- and zero-extending BImode predicates to integers.
22280         (setcc_int<mode>): Remove previous (-1-based) instructions.
22281         (cstorebi4): Remove BImode to SImode specific expander.
22282         (cstore<mode>4): Fix indentation.  Expand using setccsi_from_bi.
22283         (cstore<mode>4): For both integer and floating point modes.
22285 2022-01-04  Olivier Hainque  <hainque@adacore.com>
22287         * gcc.c (driver_handle_option): do_save --sysroot.
22289 2022-01-04  Richard Biener  <rguenther@suse.de>
22291         PR tree-optimization/103864
22292         PR tree-optimization/103544
22293         * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
22294         reductions wrapped in conversions from SLP handling.
22295         (vect_analyze_slp): Revert PR103544 change.
22297 2022-01-04  Jakub Jelinek  <jakub@redhat.com>
22299         PR rtl-optimization/103860
22300         * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
22301         uselessly for blocks for which it has been called already.
22303 2022-01-04  Cui,Lili  <lili.cui@intel.com>
22305         * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
22306         to Alderlake and Rocketlake.
22308 2022-01-04  Chung-Lin Tang  <cltang@codesourcery.com>
22310         PR middle-end/103643
22311         * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
22312         OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
22314 2022-01-04  liuhongt  <hongtao.liu@intel.com>
22316         PR target/103895
22317         * config/i386/sse.md (*bit_and_float_vector_all_ones):
22318         Force_reg operand 1 to avoid ICE.
22320 2022-01-04  Jason Merrill  <jason@redhat.com>
22322         * tree-pretty-print.c (do_niy): Add spc parameter.
22323         (NIY): Pass it.
22324         (print_call_name): Add spc local variable.
22326 2022-01-03  Uroš Bizjak  <ubizjak@gmail.com>
22328         PR target/103894
22329         * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
22330         (mov<V_32:mode>_internal): Ditto.
22331         (*push<V_32:mode>_rex64): Ditto.
22332         (movmisalign<V_32:mode>): Ditto.
22333         (*push<V_32:mode>_rex64 splitter): Enable for
22334         TARGET_64BIT && TARGET_SSE.
22335         (*push<V_32:mode>2): Remove insn pattern.
22337 2022-01-03  Andrew Pinski  <apinski@marvell.com>
22339         PR c/33193
22340         * doc/extend.texi: Extend the documentation about Complex
22341         types for casting and also rewrite the __real__/__imag__
22342         expression portion to use tables.
22343         Move __builtin_complex to the Complex type section.
22345 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
22347         PR target/98737
22348         * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
22349         ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
22350         New internal fns.
22351         * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
22352         ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
22353         ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
22354         * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
22355         expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
22356         expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
22357         functions.
22358         * optabs.def (atomic_add_fetch_cmp_0_optab,
22359         atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
22360         atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
22361         direct optabs.
22362         * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
22363         * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
22364         * tree-ssa-ccp.c: Include internal-fn.h.
22365         (optimize_atomic_bit_test_and): Add . before internal fn call
22366         in function comment.  Change return type from void to bool and
22367         return true only if successfully replaced.
22368         (optimize_atomic_op_fetch_cmp_0): New function.
22369         (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
22370         for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
22371         BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
22372         for *XOR* ones only if optimize_atomic_bit_test_and failed.
22373         * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
22374         atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
22375         (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
22376         atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
22377         * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
22378         atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
22379         atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
22380         new named patterns.
22382 2022-01-03  Richard Biener  <rguenther@suse.de>
22384         PR middle-end/103851
22385         * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
22387 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
22389         PR c++/94716
22390         * symtab.c: Include fold-const.h.
22391         (symtab_node::equal_address_to): If folding_initializer is true,
22392         handle it like memory_accessed.  Simplify.
22394 2022-01-03  Martin Liska  <mliska@suse.cz>
22396         * doc/extend.texi: Use ; for function declarations.
22398 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
22400         PR c++/103600
22401         * symtab.c (symtab_node::equal_address_to): Return 0 if one of
22402         VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
22404 2022-01-03  Jakub Jelinek  <jakub@redhat.com>
22406         * gcc.c (process_command): Update copyright notice dates.
22407         * gcov-dump.c (print_version): Ditto.
22408         * gcov.c (print_version): Ditto.
22409         * gcov-tool.c (print_version): Ditto.
22410         * gengtype.c (create_file): Ditto.
22411         * doc/cpp.texi: Bump @copying's copyright year.
22412         * doc/cppinternals.texi: Ditto.
22413         * doc/gcc.texi: Ditto.
22414         * doc/gccint.texi: Ditto.
22415         * doc/gcov.texi: Ditto.
22416         * doc/install.texi: Ditto.
22417         * doc/invoke.texi: Ditto.
22419 2022-01-02  Uroš Bizjak  <ubizjak@gmail.com>
22421         PR target/103861
22422         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
22423         (VALID_INT_MODE_P): Ditto.
22424         * config/i386/i386.c (ix86_secondary_reload): Handle
22425         V2QImode reloads from SSE register to memory.
22426         (vector_mode_supported_p): Always return true for V2QImode.
22427         * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
22428         (*negqi_ext<mode>_2): Ditto.
22429         * config/i386/mmx.md (movv2qi): New expander.
22430         (movmisalignv2qi): Ditto.
22431         (*movv2qi_internal): New insn pattern.
22432         (*pushv2qi2): Ditto.
22433         (negv2qi2 and splitters): Ditto.
22434         (<plusminus:insn>v2qi3 and splitters): Ditto.
22436 2022-01-02  John David Anglin  <danglin@gcc.gnu.org>
22438         * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
22439         sync_lock_test_and_set libfunc. Call convert_memory_address to
22440         convert memory address to Pmode.
22441         (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
22444 Copyright (C) 2022 Free Software Foundation, Inc.
22446 Copying and distribution of this file, with or without modification,
22447 are permitted in any medium without royalty provided the copyright
22448 notice and this notice are preserved.